Class SpringAddonsServerOAuth2AuthorizationRequestResolver

java.lang.Object
com.c4_soft.springaddons.security.oidc.starter.reactive.client.SpringAddonsServerOAuth2AuthorizationRequestResolver
All Implemented Interfaces:
org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizationRequestResolver

public class SpringAddonsServerOAuth2AuthorizationRequestResolver extends Object implements org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizationRequestResolver
Serves three purposes: The post-login URIs are used by the default ServerAuthenticationSuccessHandler and ServerAuthenticationFailureHandler

When needing fancy request customizers (for instance to add parameters with name or value computed at runtime), you may extend this class and override getOAuth2AuthorizationRequestCustomizer(ServerWebExchange, String)

Author:
Jerome Wacongne ch4mp@c4-soft.com
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    SpringAddonsServerOAuth2AuthorizationRequestResolver(org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientProperties bootClientProperties, org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository clientRegistrationRepository, SpringAddonsOidcClientProperties addonsClientProperties, org.springframework.boot.autoconfigure.web.reactive.WebFluxProperties serverProperties)
     
  • Method Summary

    Modifier and Type
    Method
    Description
     
    protected Consumer<org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest.Builder>
    getOAuth2AuthorizationRequestCustomizer(org.springframework.web.server.ServerWebExchange exchange, String clientRegistrationId)
    Override this to use a "dynamic" request customizer.
    protected org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizationRequestResolver
    getRequestResolver(org.springframework.web.server.ServerWebExchange exchange, String clientRegistrationId)
    You probably don't need to override this.
    reactor.core.publisher.Mono<org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest>
    resolve(org.springframework.web.server.ServerWebExchange exchange)
     
    reactor.core.publisher.Mono<org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest>
    resolve(org.springframework.web.server.ServerWebExchange exchange, String clientRegistrationId)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SpringAddonsServerOAuth2AuthorizationRequestResolver

      public SpringAddonsServerOAuth2AuthorizationRequestResolver(org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientProperties bootClientProperties, org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository clientRegistrationRepository, SpringAddonsOidcClientProperties addonsClientProperties, org.springframework.boot.autoconfigure.web.reactive.WebFluxProperties serverProperties)
  • Method Details

    • resolve

      public reactor.core.publisher.Mono<org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest> resolve(org.springframework.web.server.ServerWebExchange exchange)
      Specified by:
      resolve in interface org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizationRequestResolver
    • resolve

      public reactor.core.publisher.Mono<org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest> resolve(org.springframework.web.server.ServerWebExchange exchange, String clientRegistrationId)
      Specified by:
      resolve in interface org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizationRequestResolver
    • getRequestResolver

      protected org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizationRequestResolver getRequestResolver(org.springframework.web.server.ServerWebExchange exchange, String clientRegistrationId)
      You probably don't need to override this. See getOAuth2AuthorizationRequestCustomizer to add advanced request customizer(s)
      Parameters:
      exchange -
      clientRegistrationId -
      Returns:
    • getOAuth2AuthorizationRequestCustomizer

      protected Consumer<org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest.Builder> getOAuth2AuthorizationRequestCustomizer(org.springframework.web.server.ServerWebExchange exchange, String clientRegistrationId)
      Override this to use a "dynamic" request customizer. Something like:
       return new CompositeOAuth2AuthorizationRequestCustomizer(getCompositeOAuth2AuthorizationRequestCustomizer(clientRegistrationId), new MyDynamicCustomizer(request), ...);
       
      Returns:
    • getCompositeOAuth2AuthorizationRequestCustomizer

      protected CompositeOAuth2AuthorizationRequestCustomizer getCompositeOAuth2AuthorizationRequestCustomizer(String clientRegistrationId)
      Returns:
      a request customizer adding PKCE token (if activated) and "static" parameters defined in spring-addons properties