diff --git a/core/src/main/java/org/acegisecurity/providers/dao/DaoAuthenticationProvider.java b/core/src/main/java/org/acegisecurity/providers/dao/DaoAuthenticationProvider.java index 812dd26576..9654b6912a 100644 --- a/core/src/main/java/org/acegisecurity/providers/dao/DaoAuthenticationProvider.java +++ b/core/src/main/java/org/acegisecurity/providers/dao/DaoAuthenticationProvider.java @@ -1,4 +1,4 @@ -/* Copyright 2004, 2005 Acegi Technology Pty Limited +/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,13 +18,17 @@ package org.acegisecurity.providers.dao; import org.acegisecurity.AuthenticationException; import org.acegisecurity.AuthenticationServiceException; import org.acegisecurity.BadCredentialsException; + import org.acegisecurity.providers.AuthenticationProvider; import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; import org.acegisecurity.providers.encoding.PasswordEncoder; import org.acegisecurity.providers.encoding.PlaintextPasswordEncoder; + import org.acegisecurity.userdetails.UserDetails; import org.acegisecurity.userdetails.UserDetailsService; + import org.springframework.dao.DataAccessException; + import org.springframework.util.Assert; @@ -39,9 +43,9 @@ public class DaoAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider { //~ Instance fields ======================================================== - private UserDetailsService userDetailsService; private PasswordEncoder passwordEncoder = new PlaintextPasswordEncoder(); private SaltSource saltSource; + private UserDetailsService userDetailsService; //~ Methods ================================================================ @@ -67,10 +71,6 @@ public class DaoAuthenticationProvider "An Authentication DAO must be set"); } - public UserDetailsService getUserDetailsService() { - return userDetailsService; - } - public PasswordEncoder getPasswordEncoder() { return passwordEncoder; } @@ -79,34 +79,35 @@ public class DaoAuthenticationProvider return saltSource; } + public UserDetailsService getUserDetailsService() { + return userDetailsService; + } + protected final UserDetails retrieveUser(String username, - UsernamePasswordAuthenticationToken authentication) + UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { UserDetails loadedUser; try { - loadedUser = this.userDetailsService.loadUserByUsername(username); + loadedUser = this.getUserDetailsService() + .loadUserByUsername(username); } catch (DataAccessException repositoryProblem) { - throw new AuthenticationServiceException( - repositoryProblem.getMessage(), repositoryProblem ); + throw new AuthenticationServiceException(repositoryProblem + .getMessage(), repositoryProblem); } if (loadedUser == null) { throw new AuthenticationServiceException( - "AuthenticationDao returned null, which is an interface contract violation"); + "AuthenticationDao returned null, which is an interface contract violation"); } return loadedUser; } - public void setUserDetailsService(UserDetailsService authenticationDao) { - this.userDetailsService = authenticationDao; - } - /** * Sets the PasswordEncoder instance to be used to encode and validate - * passwords. If not set, {@link PlaintextPasswordEncoder} will be - * used by default. + * passwords. If not set, {@link PlaintextPasswordEncoder} will be used by + * default. * * @param passwordEncoder The passwordEncoder to use */ @@ -115,10 +116,9 @@ public class DaoAuthenticationProvider } /** - * The source of salts to use when decoding passwords. - * null is a valid value, meaning the - * DaoAuthenticationProvider will present - * null to the relevant PasswordEncoder. + * 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 @@ -126,4 +126,8 @@ public class DaoAuthenticationProvider public void setSaltSource(SaltSource saltSource) { this.saltSource = saltSource; } + + public void setUserDetailsService(UserDetailsService authenticationDao) { + this.userDetailsService = authenticationDao; + } }