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 java.lang.Object implements org.springframework.security.authentication.AuthenticationProviderAn implementation of anAuthenticationProviderfor the OpenID Connect Core 1.0 Authorization Code Grant Flow.This
AuthenticationProvideris 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 aPrincipalin the form of anOidcUser. TheOidcUseris then associated to theOAuth2LoginAuthenticationTokento complete the authentication.
-
-
Constructor Summary
Constructors Constructor Description OidcAuthorizationCodeAuthenticationProvider(OAuth2AccessTokenResponseClient<OAuth2AuthorizationCodeGrantRequest> accessTokenResponseClient, OAuth2UserService<OidcUserRequest,org.springframework.security.oauth2.core.oidc.user.OidcUser> userService)Constructs anOidcAuthorizationCodeAuthenticationProviderusing the provided parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.springframework.security.core.Authenticationauthenticate(org.springframework.security.core.Authentication authentication)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.voidsetJwtDecoderFactory(org.springframework.security.oauth2.jwt.JwtDecoderFactory<ClientRegistration> jwtDecoderFactory)Sets theJwtDecoderFactoryused forOidcIdTokensignature verification.booleansupports(java.lang.Class<?> authentication)
-
-
-
Constructor Detail
-
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 Detail
-
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
public boolean supports(java.lang.Class<?> authentication)
- Specified by:
supportsin interfaceorg.springframework.security.authentication.AuthenticationProvider
-
-