From 380b22f50dc8fd0d9ade438712577cfe8e5c08df Mon Sep 17 00:00:00 2001 From: Luke Taylor Date: Thu, 18 Oct 2007 16:50:31 +0000 Subject: [PATCH] Removed unused autodetect method and reformatted code. --- .../dao/DaoAuthenticationProvider.java | 191 ++++++++---------- 1 file changed, 79 insertions(+), 112 deletions(-) diff --git a/core/src/main/java/org/springframework/security/providers/dao/DaoAuthenticationProvider.java b/core/src/main/java/org/springframework/security/providers/dao/DaoAuthenticationProvider.java index 6bd06aa28f..ee22b39894 100644 --- a/core/src/main/java/org/springframework/security/providers/dao/DaoAuthenticationProvider.java +++ b/core/src/main/java/org/springframework/security/providers/dao/DaoAuthenticationProvider.java @@ -15,8 +15,6 @@ package org.springframework.security.providers.dao; -import java.util.Map; - import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationServiceException; import org.springframework.security.BadCredentialsException; @@ -26,7 +24,6 @@ import org.springframework.security.providers.encoding.PasswordEncoder; import org.springframework.security.providers.encoding.PlaintextPasswordEncoder; import org.springframework.security.userdetails.UserDetails; import org.springframework.security.userdetails.UserDetailsService; -import org.springframework.context.ApplicationContext; import org.springframework.dao.DataAccessException; import org.springframework.util.Assert; @@ -36,141 +33,111 @@ import org.springframework.util.Assert; * * @author Ben Alex * @version $Id: DaoAuthenticationProvider.java 1857 2007-05-24 00:47:12Z - * benalex $ + * benalex $ */ public class DaoAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider { - // ~ Instance fields - // ================================================================================================ + //~ Instance fields ================================================================================================ - private PasswordEncoder passwordEncoder = new PlaintextPasswordEncoder(); + private PasswordEncoder passwordEncoder = new PlaintextPasswordEncoder(); - private SaltSource saltSource; + private SaltSource saltSource; - private UserDetailsService userDetailsService; + private UserDetailsService userDetailsService; - private boolean includeDetailsObject = true; + private boolean includeDetailsObject = true; - // ~ Methods - // ======================================================================================================== + //~ Methods ======================================================================================================== - protected void additionalAuthenticationChecks(UserDetails userDetails, - UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { + protected void additionalAuthenticationChecks(UserDetails userDetails, + UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { Object salt = null; - if (this.saltSource != null) { - salt = this.saltSource.getSalt(userDetails); - } + if (this.saltSource != null) { + salt = this.saltSource.getSalt(userDetails); + } - if (authentication.getCredentials() == null) { - throw new BadCredentialsException(messages.getMessage( - "AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials"), - includeDetailsObject ? userDetails : null); - } + if (authentication.getCredentials() == null) { + throw new BadCredentialsException(messages.getMessage( + "AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials"), + includeDetailsObject ? userDetails : null); + } - String presentedPassword = authentication.getCredentials() == null ? "" : authentication.getCredentials() - .toString(); + String presentedPassword = authentication.getCredentials() == null ? "" : authentication.getCredentials() + .toString(); - if (!passwordEncoder.isPasswordValid(userDetails.getPassword(), presentedPassword, salt)) { - throw new BadCredentialsException(messages.getMessage( - "AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials"), - includeDetailsObject ? userDetails : null); - } - } + if (!passwordEncoder.isPasswordValid(userDetails.getPassword(), presentedPassword, salt)) { + throw new BadCredentialsException(messages.getMessage( + "AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials"), + includeDetailsObject ? userDetails : null); + } + } - protected void doAfterPropertiesSet() throws Exception { - Assert.notNull(this.userDetailsService, "A UserDetailsService must be set"); - } + protected void doAfterPropertiesSet() throws Exception { + Assert.notNull(this.userDetailsService, "A UserDetailsService must be set"); + } - /** - * Introspects the Applicationcontext for the single instance - * of {@link AccessDeniedHandler}. If found invoke - * setAccessDeniedHandler(AccessDeniedHandler accessDeniedHandler) method by - * providing the found instance of accessDeniedHandler as a method - * parameter. If more than one instance of AccessDeniedHandler - * is found, the method throws IllegalStateException. - * - * @param applicationContext to locate the instance - */ - private void autoDetectAnyUserDetailsServiceAndUseIt(ApplicationContext applicationContext) { - if (applicationContext != null) { - Map map = applicationContext.getBeansOfType(UserDetailsService.class); + public PasswordEncoder getPasswordEncoder() { + return passwordEncoder; + } - if (map.size() > 1) { - throw new IllegalArgumentException( - "More than one UserDetailsService beans detected please refer to the one using " - + " [ principalRepositoryBeanRef ] " + "attribute"); - } - else if (map.size() == 1) { - setUserDetailsService((UserDetailsService) map.values().iterator().next()); - } - } - } + public SaltSource getSaltSource() { + return saltSource; + } - public PasswordEncoder getPasswordEncoder() { - return passwordEncoder; - } + public UserDetailsService getUserDetailsService() { + return userDetailsService; + } - public SaltSource getSaltSource() { - return saltSource; - } + protected final UserDetails retrieveUser(String username, UsernamePasswordAuthenticationToken authentication) + throws AuthenticationException { + UserDetails loadedUser; - public UserDetailsService getUserDetailsService() { - return userDetailsService; - } + try { + loadedUser = this.getUserDetailsService().loadUserByUsername(username); + } + catch (DataAccessException repositoryProblem) { + throw new AuthenticationServiceException(repositoryProblem.getMessage(), repositoryProblem); + } - protected final UserDetails retrieveUser(String username, UsernamePasswordAuthenticationToken authentication) - throws AuthenticationException { - UserDetails loadedUser; + if (loadedUser == null) { + throw new AuthenticationServiceException( + "UserDetailsService returned null, which is an interface contract violation"); + } + return loadedUser; + } - try { - loadedUser = this.getUserDetailsService().loadUserByUsername(username); - } - catch (DataAccessException repositoryProblem) { - throw new AuthenticationServiceException(repositoryProblem.getMessage(), repositoryProblem); - } + /** + * Sets the PasswordEncoder instance to be used to encode and validate passwords. + * If not set, {@link PlaintextPasswordEncoder} will be used by default. + * + * @param passwordEncoder The passwordEncoder to use + */ + public void setPasswordEncoder(PasswordEncoder passwordEncoder) { + this.passwordEncoder = passwordEncoder; + } - if (loadedUser == null) { - throw new AuthenticationServiceException( - "UserDetailsService returned null, which is an interface contract violation"); - } - return loadedUser; - } + /** + * The source of salts to use when decoding passwords. null + * is a valid value, meaning the DaoAuthenticationProvider + * will present null to the relevant PasswordEncoder. + * + * @param saltSource to use when attempting to decode passwords via the PasswordEncoder + */ + public void setSaltSource(SaltSource saltSource) { + this.saltSource = saltSource; + } - /** - * Sets the PasswordEncoder instance to be used to encode and validate - * passwords. If not set, {@link PlaintextPasswordEncoder} will be used by - * default. - * - * @param passwordEncoder The passwordEncoder to use - */ - public void setPasswordEncoder(PasswordEncoder passwordEncoder) { - this.passwordEncoder = passwordEncoder; - } + public void setUserDetailsService(UserDetailsService userDetailsService) { + this.userDetailsService = userDetailsService; + } - /** - * The source of salts to use when decoding passwords. null - * is a valid value, meaning the DaoAuthenticationProvider - * will present null to the relevant - * PasswordEncoder. - * - * @param saltSource to use when attempting to decode passwords via the - * PasswordEncoder - */ - public void setSaltSource(SaltSource saltSource) { - this.saltSource = saltSource; - } + public boolean isIncludeDetailsObject() { + return includeDetailsObject; + } - public void setUserDetailsService(UserDetailsService userDetailsService) { - this.userDetailsService = userDetailsService; - } - - public boolean isIncludeDetailsObject() { - return includeDetailsObject; - } - - public void setIncludeDetailsObject(boolean includeDetailsObject) { - this.includeDetailsObject = includeDetailsObject; + public void setIncludeDetailsObject(boolean includeDetailsObject) { + this.includeDetailsObject = includeDetailsObject; } }