Class AbstractLdapAuthenticationProvider
java.lang.Object
org.springframework.security.ldap.authentication.AbstractLdapAuthenticationProvider
- All Implemented Interfaces:
org.springframework.beans.factory.Aware,org.springframework.context.MessageSourceAware,AuthenticationProvider
- Direct Known Subclasses:
ActiveDirectoryLdapAuthenticationProvider,LdapAuthenticationProvider
public abstract class AbstractLdapAuthenticationProvider
extends Object
implements AuthenticationProvider, org.springframework.context.MessageSourceAware
Base class for the standard
LdapAuthenticationProvider and the
ActiveDirectoryLdapAuthenticationProvider.- Since:
- 3.1
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final org.apache.commons.logging.Logprotected org.springframework.context.support.MessageSourceAccessorprotected UserDetailsContextMapper -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionauthenticate(Authentication authentication) Performs authentication with the same contract asAuthenticationManager.authenticate(Authentication).protected AuthenticationcreateSuccessfulAuthentication(UsernamePasswordAuthenticationToken authentication, UserDetails user) Creates the finalAuthenticationobject which will be returned from theauthenticatemethod.protected abstract org.springframework.ldap.core.DirContextOperationsprotected UserDetailsContextMapperProvides access to the injectedUserDetailsContextMapperstrategy for use by subclasses.protected abstract Collection<? extends GrantedAuthority>loadUserAuthorities(org.springframework.ldap.core.DirContextOperations userData, String username, String password) voidsetAuthoritiesMapper(GrantedAuthoritiesMapper authoritiesMapper) Sets theGrantedAuthoritiesMapperused for converting the authorities loaded from storage to a new set of authorities which will be associated to theUsernamePasswordAuthenticationToken.voidsetMessageSource(org.springframework.context.MessageSource messageSource) voidsetUseAuthenticationRequestCredentials(boolean useAuthenticationRequestCredentials) Determines whether the supplied password will be used as the credentials in the successful authentication token.voidsetUserDetailsContextMapper(UserDetailsContextMapper userDetailsContextMapper) Allows a custom strategy to be used for creating the UserDetails which will be stored as the principal in the Authentication returned by thecreateSuccessfulAuthentication(org.springframework.security.authentication.UsernamePasswordAuthenticationToken, org.springframework.security.core.userdetails.UserDetails)method.booleanReturnstrueif thisAuthenticationProvidersupports the indicatedAuthenticationobject.
-
Field Details
-
logger
protected final org.apache.commons.logging.Log logger -
messages
protected org.springframework.context.support.MessageSourceAccessor messages -
userDetailsContextMapper
-
-
Constructor Details
-
AbstractLdapAuthenticationProvider
public AbstractLdapAuthenticationProvider()
-
-
Method Details
-
authenticate
Description copied from interface:AuthenticationProviderPerforms authentication with the same contract asAuthenticationManager.authenticate(Authentication).- Specified by:
authenticatein interfaceAuthenticationProvider- Parameters:
authentication- the authentication request object.- Returns:
- a fully authenticated object including credentials. May return
nullif theAuthenticationProvideris unable to support authentication of the passedAuthenticationobject. In such a case, the nextAuthenticationProviderthat supports the presentedAuthenticationclass will be tried. - Throws:
AuthenticationException- if authentication fails.
-
doAuthentication
protected abstract org.springframework.ldap.core.DirContextOperations doAuthentication(UsernamePasswordAuthenticationToken auth) -
loadUserAuthorities
protected abstract Collection<? extends GrantedAuthority> loadUserAuthorities(org.springframework.ldap.core.DirContextOperations userData, String username, String password) -
createSuccessfulAuthentication
protected Authentication createSuccessfulAuthentication(UsernamePasswordAuthenticationToken authentication, UserDetails user) Creates the finalAuthenticationobject which will be returned from theauthenticatemethod.- Parameters:
authentication- the original authentication request tokenuser- the UserDetails instance returned by the configured UserDetailsContextMapper.- Returns:
- the Authentication object for the fully authenticated user.
-
supports
Description copied from interface:AuthenticationProviderReturnstrueif thisAuthenticationProvidersupports the indicatedAuthenticationobject.Returning
truedoes not guarantee anAuthenticationProviderwill be able to authenticate the presented instance of theAuthenticationclass. It simply indicates it can support closer evaluation of it. AnAuthenticationProvidercan still returnnullfrom theAuthenticationProvider.authenticate(Authentication)method to indicate anotherAuthenticationProvidershould be tried.Selection of an
AuthenticationProvidercapable of performing authentication is conducted at runtime theProviderManager.- Specified by:
supportsin interfaceAuthenticationProvider- Returns:
trueif the implementation can more closely evaluate theAuthenticationclass presented
-
setUseAuthenticationRequestCredentials
public void setUseAuthenticationRequestCredentials(boolean useAuthenticationRequestCredentials) Determines whether the supplied password will be used as the credentials in the successful authentication token. If set to false, then the password will be obtained from the UserDetails object created by the configuredUserDetailsContextMapper. Often it will not be possible to read the password from the directory, so defaults to true.- Parameters:
useAuthenticationRequestCredentials-
-
setMessageSource
public void setMessageSource(org.springframework.context.MessageSource messageSource) - Specified by:
setMessageSourcein interfaceorg.springframework.context.MessageSourceAware
-
setAuthoritiesMapper
Sets theGrantedAuthoritiesMapperused for converting the authorities loaded from storage to a new set of authorities which will be associated to theUsernamePasswordAuthenticationToken. If not set, defaults to aNullAuthoritiesMapper.- Parameters:
authoritiesMapper- theGrantedAuthoritiesMapperused for mapping the user's authorities
-
setUserDetailsContextMapper
Allows a custom strategy to be used for creating the UserDetails which will be stored as the principal in the Authentication returned by thecreateSuccessfulAuthentication(org.springframework.security.authentication.UsernamePasswordAuthenticationToken, org.springframework.security.core.userdetails.UserDetails)method.- Parameters:
userDetailsContextMapper- the strategy instance. If not set, defaults to a simple LdapUserDetailsMapper.
-
getUserDetailsContextMapper
Provides access to the injectedUserDetailsContextMapperstrategy for use by subclasses.
-