SEC-1037: Made LdapAuthenticationProvider implement MessageSourceAware.

This commit is contained in:
Luke Taylor 2008-11-27 21:12:43 +00:00
parent 843d0e6910
commit d508adbf8b
1 changed files with 8 additions and 2 deletions

View File

@ -32,6 +32,8 @@ import org.springframework.security.userdetails.UsernameNotFoundException;
import org.springframework.security.userdetails.ldap.LdapUserDetailsMapper;
import org.springframework.security.userdetails.ldap.UserDetailsContextMapper;
import org.springframework.security.util.AuthorityUtils;
import org.springframework.context.MessageSource;
import org.springframework.context.MessageSourceAware;
import org.springframework.context.support.MessageSourceAccessor;
import org.springframework.ldap.NamingException;
import org.springframework.ldap.core.DirContextOperations;
@ -100,7 +102,7 @@ import org.apache.commons.logging.LogFactory;
* </bean>
* </constructor-arg>
* </bean>
* </pre>
*</pre>
*
* <p>
* This would set up the provider to access an LDAP server with URL
@ -125,7 +127,7 @@ import org.apache.commons.logging.LogFactory;
* @see org.springframework.security.providers.ldap.authenticator.BindAuthenticator
* @see DefaultLdapAuthoritiesPopulator
*/
public class LdapAuthenticationProvider implements AuthenticationProvider {
public class LdapAuthenticationProvider implements AuthenticationProvider, MessageSourceAware {
//~ Static fields/initializers =====================================================================================
private static final Log logger = LogFactory.getLog(LdapAuthenticationProvider.class);
@ -211,6 +213,10 @@ public class LdapAuthenticationProvider implements AuthenticationProvider {
this.useAuthenticationRequestCredentials = useAuthenticationRequestCredentials;
}
public void setMessageSource(MessageSource messageSource) {
this.messages = new MessageSourceAccessor(messageSource);
}
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
Assert.isInstanceOf(UsernamePasswordAuthenticationToken.class, authentication,
messages.getMessage("AbstractUserDetailsAuthenticationProvider.onlySupports",