Class OauthPasswordAuthenticationProvider<T>

java.lang.Object
io.micronaut.security.oauth2.endpoint.token.request.password.OauthPasswordAuthenticationProvider<T>
Type Parameters:
T - Request Context Type
All Implemented Interfaces:
AuthenticationProvider<T>

public class OauthPasswordAuthenticationProvider<T> extends Object implements AuthenticationProvider<T>
An AuthenticationProvider that delegates to an OAuth 2.0 provider using the password grant flow.
Since:
1.2.0
Author:
Sergio del Amo
  • Constructor Details

    • OauthPasswordAuthenticationProvider

      public OauthPasswordAuthenticationProvider(TokenEndpointClient tokenEndpointClient, OauthClientConfiguration clientConfiguration, OauthAuthenticationMapper authenticationMapper)
      Parameters:
      tokenEndpointClient - The token endpoint client
      clientConfiguration - The client configuration
      authenticationMapper - The user details mapper
  • Method Details

    • authenticate

      public org.reactivestreams.Publisher<AuthenticationResponse> authenticate(T requestContext, AuthenticationRequest<?,?> authenticationRequest)
      Description copied from interface: AuthenticationProvider
      Authenticates a user with the given request. If a successful authentication is returned, the object must be an instance of Authentication. Publishers MUST emit cold observables! This method will be called for all authenticators for each authentication request and it is assumed no work will be done until the publisher is subscribed to.
      Specified by:
      authenticate in interface AuthenticationProvider<T>
      Parameters:
      requestContext - The http request
      authenticationRequest - The credentials to authenticate
      Returns:
      A publisher that emits 0 or 1 responses
    • getTokenEndpoint

      protected SecureEndpoint getTokenEndpoint(OauthClientConfiguration clientConfiguration)
      Builds the secure endpoint from the client configuration.
      Parameters:
      clientConfiguration - The client configuration
      Returns:
      The token endpoint