Class OidcAuthorizationCodeAuthenticationProvider
java.lang.Object
org.springframework.security.oauth2.client.oidc.authentication.OidcAuthorizationCodeAuthenticationProvider
- All Implemented Interfaces:
org.springframework.security.authentication.AuthenticationProvider
public class OidcAuthorizationCodeAuthenticationProvider
extends Object
implements org.springframework.security.authentication.AuthenticationProvider
An implementation of an
AuthenticationProvider for the OpenID Connect Core 1.0
Authorization Code Grant Flow.
This AuthenticationProvider is responsible for authenticating an Authorization
Code credential with the Authorization Server's Token Endpoint and if valid, exchanging
it for an Access Token credential.
It will also obtain the user attributes of the End-User (Resource Owner) from the
UserInfo Endpoint using an OAuth2UserService, which will create a
Principal in the form of an OidcUser. The OidcUser is then
associated to the OAuth2LoginAuthenticationToken to complete the
authentication.
-
Constructor Summary
ConstructorsConstructorDescriptionOidcAuthorizationCodeAuthenticationProvider(OAuth2AccessTokenResponseClient<OAuth2AuthorizationCodeGrantRequest> accessTokenResponseClient, OAuth2UserService<OidcUserRequest, org.springframework.security.oauth2.core.oidc.user.OidcUser> userService) Constructs anOidcAuthorizationCodeAuthenticationProviderusing the provided parameters. -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.security.core.Authenticationauthenticate(org.springframework.security.core.Authentication authentication) final voidsetAuthoritiesMapper(org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper authoritiesMapper) Sets theGrantedAuthoritiesMapperused for mappingOAuth2AuthenticatedPrincipal.getAuthorities()} to a new set of authorities which will be associated to theOAuth2LoginAuthenticationToken.final voidsetJwtDecoderFactory(org.springframework.security.oauth2.jwt.JwtDecoderFactory<ClientRegistration> jwtDecoderFactory) Sets theJwtDecoderFactoryused forOidcIdTokensignature verification.boolean
-
Constructor Details
-
OidcAuthorizationCodeAuthenticationProvider
public OidcAuthorizationCodeAuthenticationProvider(OAuth2AccessTokenResponseClient<OAuth2AuthorizationCodeGrantRequest> accessTokenResponseClient, OAuth2UserService<OidcUserRequest, org.springframework.security.oauth2.core.oidc.user.OidcUser> userService) Constructs anOidcAuthorizationCodeAuthenticationProviderusing the provided parameters.- Parameters:
accessTokenResponseClient- the client used for requesting the access token credential from the Token EndpointuserService- the service used for obtaining the user attributes of the End-User from the UserInfo Endpoint
-
-
Method Details
-
authenticate
public org.springframework.security.core.Authentication authenticate(org.springframework.security.core.Authentication authentication) throws org.springframework.security.core.AuthenticationException - Specified by:
authenticatein interfaceorg.springframework.security.authentication.AuthenticationProvider- Throws:
org.springframework.security.core.AuthenticationException
-
setJwtDecoderFactory
public final void setJwtDecoderFactory(org.springframework.security.oauth2.jwt.JwtDecoderFactory<ClientRegistration> jwtDecoderFactory) Sets theJwtDecoderFactoryused forOidcIdTokensignature verification. The factory returns aJwtDecoderassociated to the providedClientRegistration.- Parameters:
jwtDecoderFactory- theJwtDecoderFactoryused forOidcIdTokensignature verification- Since:
- 5.2
-
setAuthoritiesMapper
public final void setAuthoritiesMapper(org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper authoritiesMapper) Sets theGrantedAuthoritiesMapperused for mappingOAuth2AuthenticatedPrincipal.getAuthorities()} to a new set of authorities which will be associated to theOAuth2LoginAuthenticationToken.- Parameters:
authoritiesMapper- theGrantedAuthoritiesMapperused for mapping the user's authorities
-
supports
- Specified by:
supportsin interfaceorg.springframework.security.authentication.AuthenticationProvider
-