Class OAuth2SessionAuthenticationProvider
java.lang.Object
com.broadleafcommerce.auth.user.session.OAuth2SessionAuthenticationProvider
- All Implemented Interfaces:
org.springframework.security.authentication.AuthenticationProvider
public class OAuth2SessionAuthenticationProvider
extends Object
implements org.springframework.security.authentication.AuthenticationProvider
An
AuthenticationProvider that authenticates a user using a
OAuth2SessionAuthenticationToken.- Author:
- Nick Crum (ncrum)
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionOAuth2SessionAuthenticationProvider(OAuth2UserDetailsService userDetailsService, StatelessUtil util) -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.security.core.Authenticationauthenticate(org.springframework.security.core.Authentication authentication) protected org.springframework.security.core.AuthenticationcreateSuccessAuthentication(OAuth2UserDetails user, OAuth2SessionToken sessionToken) protected Collection<org.springframework.security.core.GrantedAuthority>getAuthorities(OAuth2UserDetails user, OAuth2SessionToken sessionToken) protected OAuth2UserDetailsServiceprotected UserDetailsValidationPropertiesprotected StatelessUtilgetUtil()protected booleanisSessionTokenFromThirdPartyLogin(OAuth2SessionToken sessionToken) protected OAuth2UserDetailsloadUser(com.nimbusds.jwt.SignedJWT jwt, OAuth2SessionToken sessionToken, String clientId) Loads the appropriateuserfor the request.voidsetUserDetailsValidationProperties(UserDetailsValidationProperties userDetailsValidationProperties) booleanprotected voidvalidateCredentialsNonExpired(OAuth2UserDetails userDetails, String clientId, OAuth2SessionToken sessionToken) Validate that for the provided session token, the associated user's credentials are not considered expired.protected voidvalidateJWT(com.nimbusds.jwt.SignedJWT jwt) protected voidvalidateUserDetails(OAuth2UserDetails userDetails, String clientId, OAuth2SessionToken sessionToken)
-
Constructor Details
-
OAuth2SessionAuthenticationProvider
public OAuth2SessionAuthenticationProvider(OAuth2UserDetailsService userDetailsService, StatelessUtil util)
-
-
Method Details
-
supports
- Specified by:
supportsin interfaceorg.springframework.security.authentication.AuthenticationProvider
-
authenticate
public org.springframework.security.core.Authentication authenticate(org.springframework.security.core.Authentication authentication) - Specified by:
authenticatein interfaceorg.springframework.security.authentication.AuthenticationProvider
-
loadUser
protected OAuth2UserDetails loadUser(com.nimbusds.jwt.SignedJWT jwt, OAuth2SessionToken sessionToken, String clientId) throws ParseException Loads the appropriateuserfor the request. Generally, this will rely on the "sub" claim in the JWT, but if the session is impersonated or anonymous CSR, those users will be loaded instead.- Parameters:
jwt- the verified JWTsessionToken- the session tokenclientId- the current client ID- Returns:
- the user details
- Throws:
ParseException- if there is an issue extracting claims from the JWT- Since:
- Authentication Service 2.3.0, Release Train 2.3.0
-
createSuccessAuthentication
protected org.springframework.security.core.Authentication createSuccessAuthentication(OAuth2UserDetails user, OAuth2SessionToken sessionToken) -
getAuthorities
protected Collection<org.springframework.security.core.GrantedAuthority> getAuthorities(OAuth2UserDetails user, OAuth2SessionToken sessionToken) -
validateJWT
- Throws:
ParseException
-
validateUserDetails
protected void validateUserDetails(OAuth2UserDetails userDetails, String clientId, OAuth2SessionToken sessionToken) -
validateCredentialsNonExpired
protected void validateCredentialsNonExpired(OAuth2UserDetails userDetails, String clientId, OAuth2SessionToken sessionToken) Validate that for the provided session token, the associated user's credentials are not considered expired.- Parameters:
userDetails- the user details to validateclientId- the client ID this session authentication is happening forsessionToken- the session token received in the request
-
isSessionTokenFromThirdPartyLogin
-
getUserDetailsService
-
getUtil
-
getUserDetailsValidationProperties
-
setUserDetailsValidationProperties
@Autowired public void setUserDetailsValidationProperties(UserDetailsValidationProperties userDetailsValidationProperties)
-