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;
+ }
}