Class OAuth2AuthorizationCodeGrantWebFilter

java.lang.Object
org.springframework.security.oauth2.client.web.server.OAuth2AuthorizationCodeGrantWebFilter
All Implemented Interfaces:
org.springframework.web.server.WebFilter

public class OAuth2AuthorizationCodeGrantWebFilter extends Object implements org.springframework.web.server.WebFilter
A Filter for the OAuth 2.0 Authorization Code Grant, which handles the processing of the OAuth 2.0 Authorization Response.

The OAuth 2.0 Authorization Response is processed as follows:

  • Assuming the End-User (Resource Owner) has granted access to the Client, the Authorization Server will append the code and state parameters to the redirect_uri (provided in the Authorization Request) and redirect the End-User's user-agent back to this Filter (the Client).
  • This Filter will then create an OAuth2AuthorizationCodeAuthenticationToken with the code received and delegate it to the ReactiveAuthenticationManager to authenticate.
  • Upon a successful authentication, an Authorized Client is created by associating the client to the access token and current Principal and saving it via the ServerOAuth2AuthorizedClientRepository.
Since:
5.1
See Also:
  • Constructor Details

    • OAuth2AuthorizationCodeGrantWebFilter

      public OAuth2AuthorizationCodeGrantWebFilter(org.springframework.security.authentication.ReactiveAuthenticationManager authenticationManager, ReactiveClientRegistrationRepository clientRegistrationRepository, ServerOAuth2AuthorizedClientRepository authorizedClientRepository)
    • OAuth2AuthorizationCodeGrantWebFilter

      public OAuth2AuthorizationCodeGrantWebFilter(org.springframework.security.authentication.ReactiveAuthenticationManager authenticationManager, org.springframework.security.web.server.authentication.ServerAuthenticationConverter authenticationConverter, ServerOAuth2AuthorizedClientRepository authorizedClientRepository)
  • Method Details

    • setAuthorizationRequestRepository

      public final void setAuthorizationRequestRepository(ServerAuthorizationRequestRepository<org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest> authorizationRequestRepository)
      Sets the repository used for storing OAuth2AuthorizationRequest's. The default is WebSessionOAuth2ServerAuthorizationRequestRepository.
      Parameters:
      authorizationRequestRepository - the repository used for storing OAuth2AuthorizationRequest's
      Since:
      5.2
    • setRequestCache

      public final void setRequestCache(org.springframework.security.web.server.savedrequest.ServerRequestCache requestCache)
      Sets the ServerRequestCache used for loading a previously saved request (if available) and replaying it after completing the processing of the OAuth 2.0 Authorization Response.
      Parameters:
      requestCache - the cache used for loading a previously saved request (if available)
      Since:
      5.4
    • filter

      public reactor.core.publisher.Mono<Void> filter(org.springframework.web.server.ServerWebExchange exchange, org.springframework.web.server.WebFilterChain chain)
      Specified by:
      filter in interface org.springframework.web.server.WebFilter