Class DefaultClientDetailsService
- java.lang.Object
-
- com.broadleafcommerce.auth.user.service.DefaultClientDetailsService
-
- All Implemented Interfaces:
org.springframework.security.oauth2.provider.ClientDetailsService
public class DefaultClientDetailsService extends Object implements org.springframework.security.oauth2.provider.ClientDetailsService
- Author:
- Nick Crum (ncrum)
-
-
Constructor Summary
Constructors Constructor Description DefaultClientDetailsService(AuthorizedClientService<AuthorizedClient> authorizedClientService)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Set<org.springframework.security.core.GrantedAuthority>expandAllAuthorities(Collection<org.springframework.security.core.GrantedAuthority> initialAuthorities)org.springframework.security.oauth2.provider.ClientDetailsloadClientByClientId(String clientId)protected org.springframework.security.oauth2.provider.ClientDetailswithExpandedAuthorities(org.springframework.security.oauth2.provider.ClientDetails clientDetails)Expands the set of authorities to include any scopes derived from thePermissionScopedomain.protected AuthorizedClientwithResolvedRelativeRedirectUris(AuthorizedClient client)If this client has any relative URLs in itsAuthorizedClient.getRedirectUris(), this method will get the base URL for the client's tenant or application.
-
-
-
Constructor Detail
-
DefaultClientDetailsService
public DefaultClientDetailsService(AuthorizedClientService<AuthorizedClient> authorizedClientService)
-
-
Method Detail
-
loadClientByClientId
public org.springframework.security.oauth2.provider.ClientDetails loadClientByClientId(String clientId) throws org.springframework.security.oauth2.provider.ClientRegistrationException
- Specified by:
loadClientByClientIdin interfaceorg.springframework.security.oauth2.provider.ClientDetailsService- Throws:
org.springframework.security.oauth2.provider.ClientRegistrationException
-
withResolvedRelativeRedirectUris
protected AuthorizedClient withResolvedRelativeRedirectUris(AuthorizedClient client)
If this client has any relative URLs in itsAuthorizedClient.getRedirectUris(), this method will get the base URL for the client's tenant or application. Each relative redirect URI will then be added to the path of the resolved base URL, and this new absolute URL will replace the original relative value.If resolution of the base URL fails, or if the value is not absolute even after being appended to the base, the relative URL will be removed from the
AuthorizedClient.getRedirectUris()(just in the given POJO - the data store is not updated). This ensures the OAuth specification's requirement of absolute redirect URIs is preserved for security.- Parameters:
client- the client for which to prepend application/tenant URL to relative redirect URIs- Returns:
- the client after replacing its redirect URIs with absolute values
-
withExpandedAuthorities
protected org.springframework.security.oauth2.provider.ClientDetails withExpandedAuthorities(org.springframework.security.oauth2.provider.ClientDetails clientDetails)
Expands the set of authorities to include any scopes derived from thePermissionScopedomain. This ensures thatOAuth2RequestFactoryis able to validate the requested scopes are valid for theseClientDetails.- Parameters:
clientDetails- the client details- Returns:
- the client details with scopes as authorities
- See Also:
for how this is done for a
-
expandAllAuthorities
protected Set<org.springframework.security.core.GrantedAuthority> expandAllAuthorities(Collection<org.springframework.security.core.GrantedAuthority> initialAuthorities)
Allows aClientDetailsto include aGrantedAuthorityprefixed withPermissionType.ALL.This method expands any
GrantedAuthorityprefixed byPermissionType.ALLinto variousPermissionTypesuch asPermissionType.READorPermissionType.CREATE. The full set can be found inPermissionUtils.expandAllPermission(String).- Parameters:
initialAuthorities- the initial set of authorities without expandedPermissionType.ALLauthorities- Returns:
- authorities with additional authorities coming from expanded
PermissionType.ALLauthorities
-
-