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 Details

    • SpringAddonsServerOAuth2AuthorizationRequestResolver

      public SpringAddonsServerOAuth2AuthorizationRequestResolver(org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientProperties bootClientProperties, org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository clientRegistrationRepository, SpringAddonsOidcClientProperties addonsClientProperties)
  • 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