SEC-107: Rename AuthenticationDao to UserDetailsService.

This commit is contained in:
Ben Alex
2005-11-29 13:10:15 +00:00
parent c021362ebb
commit a6e23d79ae
81 changed files with 464 additions and 422 deletions

View File

@@ -17,8 +17,8 @@ package org.acegisecurity.acl.basic;
import org.acegisecurity.Authentication;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.UserDetails;
import org.acegisecurity.acl.AclEntry;
import org.acegisecurity.userdetails.UserDetails;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

View File

@@ -16,8 +16,8 @@
package org.acegisecurity.concurrent;
import org.acegisecurity.Authentication;
import org.acegisecurity.UserDetails;
import org.acegisecurity.ui.WebAuthenticationDetails;
import org.acegisecurity.userdetails.UserDetails;
import org.springframework.util.Assert;

View File

@@ -16,7 +16,7 @@
package org.acegisecurity.event.authentication;
import org.acegisecurity.Authentication;
import org.acegisecurity.UserDetails;
import org.acegisecurity.userdetails.UserDetails;
/**

View File

@@ -16,7 +16,7 @@
package org.acegisecurity.providers;
import org.acegisecurity.Authentication;
import org.acegisecurity.UserDetails;
import org.acegisecurity.userdetails.UserDetails;
/**

View File

@@ -42,7 +42,7 @@ import org.acegisecurity.event.authentication.AuthenticationFailureServiceExcept
import org.acegisecurity.event.authentication.AuthenticationSuccessEvent;
import org.acegisecurity.providers.cas.ProxyUntrustedException;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

View File

@@ -17,7 +17,7 @@ package org.acegisecurity.providers.anonymous;
import org.acegisecurity.Authentication;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.providers.dao.memory.UserAttribute;
import org.acegisecurity.userdetails.memory.UserAttribute;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

View File

@@ -18,12 +18,12 @@ package org.acegisecurity.providers.cas;
import org.acegisecurity.Authentication;
import org.acegisecurity.AuthenticationException;
import org.acegisecurity.BadCredentialsException;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.AuthenticationProvider;
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.ui.cas.CasProcessingFilter;
import org.acegisecurity.userdetails.UserDetails;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

View File

@@ -16,8 +16,8 @@
package org.acegisecurity.providers.cas;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.AbstractAuthenticationToken;
import org.acegisecurity.userdetails.UserDetails;
import org.springframework.util.Assert;

View File

@@ -16,7 +16,7 @@
package org.acegisecurity.providers.cas;
import org.acegisecurity.AuthenticationException;
import org.acegisecurity.UserDetails;
import org.acegisecurity.userdetails.UserDetails;
/**

View File

@@ -16,16 +16,16 @@
package org.acegisecurity.providers.cas.populator;
import org.acegisecurity.AuthenticationException;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.cas.CasAuthoritiesPopulator;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.UserDetails;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;
/**
* Populates the CAS authorities via an {@link AuthenticationDao}.
* Populates the CAS authorities via an {@link UserDetailsService}.
*
* <P>
* The additional information (username, password, enabled status etc) an
@@ -41,15 +41,15 @@ public class DaoCasAuthoritiesPopulator implements CasAuthoritiesPopulator,
InitializingBean {
//~ Instance fields ========================================================
private AuthenticationDao authenticationDao;
private UserDetailsService authenticationDao;
//~ Methods ================================================================
public void setAuthenticationDao(AuthenticationDao authenticationDao) {
public void setAuthenticationDao(UserDetailsService authenticationDao) {
this.authenticationDao = authenticationDao;
}
public AuthenticationDao getAuthenticationDao() {
public UserDetailsService getAuthenticationDao() {
return authenticationDao;
}

View File

@@ -21,11 +21,12 @@ import org.acegisecurity.AuthenticationException;
import org.acegisecurity.CredentialsExpiredException;
import org.acegisecurity.DisabledException;
import org.acegisecurity.LockedException;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.AuthenticationProvider;
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.providers.dao.cache.NullUserCache;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.UserDetails;
import org.springframework.beans.factory.InitializingBean;
@@ -38,7 +39,7 @@ import org.springframework.util.Assert;
/**
* A base {@link AuthenticationProvider} that allows subclasses to override and
* work with {@link org.acegisecurity.UserDetails} objects. The class is
* work with {@link org.acegisecurity.userdetails.UserDetails} objects. The class is
* designed to respond to {@link UsernamePasswordAuthenticationToken}
* authentication requests.
*
@@ -63,8 +64,8 @@ import org.springframework.util.Assert;
* Caching is handled via the <code>UserDetails</code> object being placed in
* the {@link UserCache}. This ensures that subsequent requests with the same
* username can be validated without needing to query the {@link
* AuthenticationDao}. It should be noted that if a user appears to present an
* incorrect password, the {@link AuthenticationDao} will be queried to
* UserDetailsService}. It should be noted that if a user appears to present an
* incorrect password, the {@link UserDetailsService} will be queried to
* confirm the most up-to-date password was used for comparison.
* </p>
*/

View File

@@ -18,12 +18,14 @@ package org.acegisecurity.providers.dao;
import org.acegisecurity.AuthenticationException;
import org.acegisecurity.AuthenticationServiceException;
import org.acegisecurity.BadCredentialsException;
import org.acegisecurity.UserDetails;
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.UserDetailsService;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.springframework.dao.DataAccessException;
@@ -32,13 +34,13 @@ import org.springframework.util.Assert;
/**
* An {@link AuthenticationProvider} implementation that retrieves user details
* from an {@link AuthenticationDao}.
* from an {@link UserDetailsService}.
*/
public class DaoAuthenticationProvider
extends AbstractUserDetailsAuthenticationProvider {
//~ Instance fields ========================================================
private AuthenticationDao authenticationDao;
private UserDetailsService authenticationDao;
private PasswordEncoder passwordEncoder = new PlaintextPasswordEncoder();
private SaltSource saltSource;
private boolean hideUserNotFoundExceptions = true;
@@ -67,7 +69,7 @@ public class DaoAuthenticationProvider
"An Authentication DAO must be set");
}
public AuthenticationDao getAuthenticationDao() {
public UserDetailsService getAuthenticationDao() {
return authenticationDao;
}
@@ -111,7 +113,7 @@ public class DaoAuthenticationProvider
return loadedUser;
}
public void setAuthenticationDao(AuthenticationDao authenticationDao) {
public void setAuthenticationDao(UserDetailsService authenticationDao) {
this.authenticationDao = authenticationDao;
}

View File

@@ -15,7 +15,7 @@
package org.acegisecurity.providers.dao;
import org.acegisecurity.UserDetails;
import org.acegisecurity.userdetails.UserDetails;
/**

View File

@@ -15,7 +15,8 @@
package org.acegisecurity.providers.dao;
import org.acegisecurity.UserDetails;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
/**

View File

@@ -15,8 +15,8 @@
package org.acegisecurity.providers.dao.cache;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.UserCache;
import org.acegisecurity.userdetails.UserDetails;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheException;

View File

@@ -15,8 +15,8 @@
package org.acegisecurity.providers.dao.cache;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.UserCache;
import org.acegisecurity.userdetails.UserDetails;
/**

View File

@@ -16,8 +16,8 @@
package org.acegisecurity.providers.dao.salt;
import org.acegisecurity.AuthenticationServiceException;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.SaltSource;
import org.acegisecurity.userdetails.UserDetails;
import org.springframework.beans.factory.InitializingBean;

View File

@@ -15,8 +15,8 @@
package org.acegisecurity.providers.dao.salt;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.SaltSource;
import org.acegisecurity.userdetails.UserDetails;
import org.springframework.beans.factory.InitializingBean;

View File

@@ -16,7 +16,7 @@
package org.acegisecurity.providers.jaas;
import org.acegisecurity.Authentication;
import org.acegisecurity.UserDetails;
import org.acegisecurity.userdetails.UserDetails;
import java.io.IOException;

View File

@@ -18,10 +18,10 @@ package org.acegisecurity.providers.x509;
import org.acegisecurity.Authentication;
import org.acegisecurity.AuthenticationException;
import org.acegisecurity.BadCredentialsException;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.AuthenticationProvider;
import org.acegisecurity.providers.x509.cache.NullX509UserCache;
import org.acegisecurity.userdetails.UserDetails;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

View File

@@ -15,8 +15,8 @@
package org.acegisecurity.providers.x509;
import org.acegisecurity.UserDetails;
import org.acegisecurity.AuthenticationException;
import org.acegisecurity.userdetails.UserDetails;
import java.security.cert.X509Certificate;

View File

@@ -15,7 +15,7 @@
package org.acegisecurity.providers.x509;
import org.acegisecurity.UserDetails;
import org.acegisecurity.userdetails.UserDetails;
import java.security.cert.X509Certificate;

View File

@@ -15,8 +15,8 @@
package org.acegisecurity.providers.x509.cache;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.x509.X509UserCache;
import org.acegisecurity.userdetails.UserDetails;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheException;

View File

@@ -1,7 +1,7 @@
package org.acegisecurity.providers.x509.cache;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.x509.X509UserCache;
import org.acegisecurity.userdetails.UserDetails;
import java.security.cert.X509Certificate;

View File

@@ -17,10 +17,10 @@ package org.acegisecurity.providers.x509.populator;
import org.acegisecurity.AuthenticationException;
import org.acegisecurity.BadCredentialsException;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.providers.x509.X509AuthoritiesPopulator;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.UserDetails;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -40,7 +40,7 @@ import java.security.cert.X509Certificate;
/**
* Populates the X509 authorities via an {@link
* org.acegisecurity.providers.dao.AuthenticationDao}.
* org.acegisecurity.userdetails.UserDetailsService}.
*/
public class DaoX509AuthoritiesPopulator implements X509AuthoritiesPopulator,
InitializingBean, MessageSourceAware {
@@ -50,7 +50,7 @@ public class DaoX509AuthoritiesPopulator implements X509AuthoritiesPopulator,
//~ Instance fields ========================================================
private AuthenticationDao authenticationDao;
private UserDetailsService authenticationDao;
protected MessageSourceAccessor messages;
private Pattern subjectDNPattern;
private String subjectDNRegex = "CN=(.*?),";
@@ -97,7 +97,7 @@ public class DaoX509AuthoritiesPopulator implements X509AuthoritiesPopulator,
return this.authenticationDao.loadUserByUsername(userName);
}
public void setAuthenticationDao(AuthenticationDao authenticationDao) {
public void setAuthenticationDao(UserDetailsService authenticationDao) {
this.authenticationDao = authenticationDao;
}

View File

@@ -57,7 +57,7 @@ import java.util.Vector;
* use when using preexisting role names without a prefix, and no ability
* exists to prefix them with a role prefix on reading them in, such as
* provided for example in {@link
* org.acegisecurity.providers.dao.jdbc.JdbcDaoImpl}.
* org.acegisecurity.userdetails.jdbc.JdbcDaoImpl}.
* </p>
*
* @author Ben Alex

View File

@@ -16,10 +16,10 @@
package org.acegisecurity.taglibs.authz;
import org.acegisecurity.Authentication;
import org.acegisecurity.UserDetails;
import org.acegisecurity.context.SecurityContext;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.userdetails.UserDetails;
import java.io.IOException;

View File

@@ -18,18 +18,18 @@ package org.acegisecurity.ui.digestauth;
import org.acegisecurity.AuthenticationException;
import org.acegisecurity.AuthenticationServiceException;
import org.acegisecurity.BadCredentialsException;
import org.acegisecurity.UserDetails;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.providers.dao.UserCache;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.providers.dao.cache.NullUserCache;
import org.acegisecurity.ui.WebAuthenticationDetails;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.acegisecurity.util.StringSplitUtils;
import org.apache.commons.codec.binary.Base64;
@@ -120,7 +120,7 @@ public class DigestProcessingFilter implements Filter, InitializingBean,
//~ Instance fields ========================================================
private AuthenticationDao authenticationDao;
private UserDetailsService authenticationDao;
private DigestProcessingFilterEntryPoint authenticationEntryPoint;
protected MessageSourceAccessor messages;
private UserCache userCache = new NullUserCache();
@@ -460,7 +460,7 @@ public class DigestProcessingFilter implements Filter, InitializingBean,
return digestMd5;
}
public AuthenticationDao getAuthenticationDao() {
public UserDetailsService getAuthenticationDao() {
return authenticationDao;
}
@@ -474,7 +474,7 @@ public class DigestProcessingFilter implements Filter, InitializingBean,
public void init(FilterConfig ignored) throws ServletException {}
public void setAuthenticationDao(AuthenticationDao authenticationDao) {
public void setAuthenticationDao(UserDetailsService authenticationDao) {
this.authenticationDao = authenticationDao;
}

View File

@@ -16,10 +16,10 @@
package org.acegisecurity.ui.rememberme;
import org.acegisecurity.Authentication;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.providers.rememberme.RememberMeAuthenticationToken;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
@@ -57,10 +57,10 @@ import javax.servlet.http.HttpServletResponse;
* </p>
*
* <p>
* An {@link org.acegisecurity.providers.dao.AuthenticationDao} is required
* An {@link org.acegisecurity.userdetails.UserDetailsService} is required
* by this implementation, so that it can construct a valid
* <code>Authentication</code> from the returned {@link
* org.acegisecurity.UserDetails}. This is also necessary so that the
* org.acegisecurity.userdetails.UserDetails}. This is also necessary so that the
* user's password is available and can be checked as part of the encoded
* cookie.
* </p>
@@ -112,18 +112,18 @@ public class TokenBasedRememberMeServices implements RememberMeServices,
//~ Instance fields ========================================================
private AuthenticationDao authenticationDao;
private UserDetailsService authenticationDao;
private String key;
private String parameter = DEFAULT_PARAMETER;
private long tokenValiditySeconds = 1209600; // 14 days
//~ Methods ================================================================
public void setAuthenticationDao(AuthenticationDao authenticationDao) {
public void setAuthenticationDao(UserDetailsService authenticationDao) {
this.authenticationDao = authenticationDao;
}
public AuthenticationDao getAuthenticationDao() {
public UserDetailsService getAuthenticationDao() {
return authenticationDao;
}

View File

@@ -23,17 +23,17 @@ import org.acegisecurity.CredentialsExpiredException;
import org.acegisecurity.DisabledException;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.LockedException;
import org.acegisecurity.UserDetails;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.event.authentication.AuthenticationSwitchUserEvent;
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.ui.WebAuthenticationDetails;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -131,7 +131,7 @@ public class SwitchUserProcessingFilter implements Filter, InitializingBean,
// ~ Instance fields
// ========================================================
private AuthenticationDao authenticationDao;
private UserDetailsService authenticationDao;
protected MessageSourceAccessor messages;
private String exitUserUrl = "/j_acegi_exit_user";
private String switchUserUrl = "/j_acegi_switch_user";
@@ -492,7 +492,7 @@ public class SwitchUserProcessingFilter implements Filter, InitializingBean,
* authentication dao
*/
public void setAuthenticationDao(
AuthenticationDao authenticationDao) {
UserDetailsService authenticationDao) {
this.authenticationDao = authenticationDao;
}

View File

@@ -13,230 +13,261 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao;
package org.acegisecurity.userdetails;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.DaoAuthenticationProvider;
import org.springframework.util.Assert;
/**
* Models core user information retieved by an {@link AuthenticationDao}.
* Models core user information retieved by an {@link UserDetailsService}.
*
* <P>
* Implemented with value object semantics (immutable after construction, like
* a <code>String</code>). Developers may use this class directly, subclass
* it, or write their own {@link UserDetails} implementation from scratch.
* Implemented with value object semantics (immutable after construction, like a
* <code>String</code>). Developers may use this class directly, subclass it,
* or write their own {@link UserDetails} implementation from scratch.
* </p>
*/
public class User implements UserDetails {
//~ Instance fields ========================================================
// ~ Instance fields
// ========================================================
private String password;
private String username;
private GrantedAuthority[] authorities;
private boolean accountNonExpired;
private boolean accountNonLocked;
private boolean credentialsNonExpired;
private boolean enabled;
private String password;
//~ Constructors ===========================================================
private String username;
protected User() {
throw new IllegalArgumentException("Cannot use default constructor");
}
private GrantedAuthority[] authorities;
/**
* Construct the <code>User</code> with the details required by {@link
* DaoAuthenticationProvider}.
*
* @param username the username presented to the
* <code>DaoAuthenticationProvider</code>
* @param password the password that should be presented to the
* <code>DaoAuthenticationProvider</code>
* @param enabled set to <code>true</code> if the user is enabled
* @param authorities the authorities that should be granted to the caller
* if they presented the correct username and password and the user
* is enabled
*
* @throws IllegalArgumentException if a <code>null</code> value was passed
* either as a parameter or as an element in the
* <code>GrantedAuthority[]</code> array
*
* @deprecated use new constructor with extended properties (this
* constructor will be removed from release 1.0.0)
*/
public User(String username, String password, boolean enabled,
GrantedAuthority[] authorities) throws IllegalArgumentException {
this(username, password, enabled, true, true, authorities);
}
private boolean accountNonExpired;
/**
* Construct the <code>User</code> with the details required by {@link
* DaoAuthenticationProvider}.
*
* @param username the username presented to the
* <code>DaoAuthenticationProvider</code>
* @param password the password that should be presented to the
* <code>DaoAuthenticationProvider</code>
* @param enabled set to <code>true</code> if the user is enabled
* @param accountNonExpired set to <code>true</code> if the account has not
* expired
* @param credentialsNonExpired set to <code>true</code> if the credentials
* have not expired
* @param authorities the authorities that should be granted to the caller
* if they presented the correct username and password and the user
* is enabled
*
* @throws IllegalArgumentException if a <code>null</code> value was passed
* either as a parameter or as an element in the
* <code>GrantedAuthority[]</code> array
*
* @deprecated use new constructor with extended properties (this
* constructor will be removed from release 1.0.0)
*/
public User(String username, String password, boolean enabled,
boolean accountNonExpired, boolean credentialsNonExpired,
GrantedAuthority[] authorities) throws IllegalArgumentException {
this(username, password, enabled, accountNonExpired,
credentialsNonExpired, true, authorities);
}
private boolean accountNonLocked;
/**
* Construct the <code>User</code> with the details required by {@link
* DaoAuthenticationProvider}.
*
* @param username the username presented to the
* <code>DaoAuthenticationProvider</code>
* @param password the password that should be presented to the
* <code>DaoAuthenticationProvider</code>
* @param enabled set to <code>true</code> if the user is enabled
* @param accountNonExpired set to <code>true</code> if the account has not
* expired
* @param credentialsNonExpired set to <code>true</code> if the credentials
* have not expired
* @param accountNonLocked set to <code>true</code> if the account is not
* locked
* @param authorities the authorities that should be granted to the caller
* if they presented the correct username and password and the user
* is enabled
*
* @throws IllegalArgumentException if a <code>null</code> value was passed
* either as a parameter or as an element in the
* <code>GrantedAuthority[]</code> array
*/
public User(String username, String password, boolean enabled,
boolean accountNonExpired, boolean credentialsNonExpired,
boolean accountNonLocked, GrantedAuthority[] authorities)
throws IllegalArgumentException {
if (((username == null) || "".equals(username)) || (password == null)) {
throw new IllegalArgumentException(
"Cannot pass null or empty values to constructor");
}
private boolean credentialsNonExpired;
this.username = username;
this.password = password;
this.enabled = enabled;
this.accountNonExpired = accountNonExpired;
this.credentialsNonExpired = credentialsNonExpired;
this.accountNonLocked = accountNonLocked;
setAuthorities(authorities);
}
private boolean enabled;
//~ Methods ================================================================
// ~ Constructors
// ===========================================================
public boolean equals(Object rhs) {
if (!(rhs instanceof User) || (rhs == null)) {
return false;
}
protected User() {
throw new IllegalArgumentException("Cannot use default constructor");
}
User user = (User) rhs;
/**
* Construct the <code>User</code> with the details required by {@link
* DaoAuthenticationProvider}.
*
* @param username
* the username presented to the
* <code>DaoAuthenticationProvider</code>
* @param password
* the password that should be presented to the
* <code>DaoAuthenticationProvider</code>
* @param enabled
* set to <code>true</code> if the user is enabled
* @param authorities
* the authorities that should be granted to the caller if they
* presented the correct username and password and the user is
* enabled
*
* @throws IllegalArgumentException
* if a <code>null</code> value was passed either as a
* parameter or as an element in the
* <code>GrantedAuthority[]</code> array
*
* @deprecated use new constructor with extended properties (this
* constructor will be removed from release 1.0.0)
*/
public User(String username, String password, boolean enabled,
GrantedAuthority[] authorities) throws IllegalArgumentException {
this(username, password, enabled, true, true, authorities);
}
// We rely on constructor to guarantee any User has non-null and >0 authorities
if (user.getAuthorities().length != this.getAuthorities().length) {
return false;
}
/**
* Construct the <code>User</code> with the details required by {@link
* DaoAuthenticationProvider}.
*
* @param username
* the username presented to the
* <code>DaoAuthenticationProvider</code>
* @param password
* the password that should be presented to the
* <code>DaoAuthenticationProvider</code>
* @param enabled
* set to <code>true</code> if the user is enabled
* @param accountNonExpired
* set to <code>true</code> if the account has not expired
* @param credentialsNonExpired
* set to <code>true</code> if the credentials have not expired
* @param authorities
* the authorities that should be granted to the caller if they
* presented the correct username and password and the user is
* enabled
*
* @throws IllegalArgumentException
* if a <code>null</code> value was passed either as a
* parameter or as an element in the
* <code>GrantedAuthority[]</code> array
*
* @deprecated use new constructor with extended properties (this
* constructor will be removed from release 1.0.0)
*/
public User(String username, String password, boolean enabled,
boolean accountNonExpired, boolean credentialsNonExpired,
GrantedAuthority[] authorities) throws IllegalArgumentException {
this(username, password, enabled, accountNonExpired,
credentialsNonExpired, true, authorities);
}
for (int i = 0; i < this.getAuthorities().length; i++) {
if (!this.getAuthorities()[i].equals(user.getAuthorities()[i])) {
return false;
}
}
/**
* Construct the <code>User</code> with the details required by {@link
* DaoAuthenticationProvider}.
*
* @param username
* the username presented to the
* <code>DaoAuthenticationProvider</code>
* @param password
* the password that should be presented to the
* <code>DaoAuthenticationProvider</code>
* @param enabled
* set to <code>true</code> if the user is enabled
* @param accountNonExpired
* set to <code>true</code> if the account has not expired
* @param credentialsNonExpired
* set to <code>true</code> if the credentials have not expired
* @param accountNonLocked
* set to <code>true</code> if the account is not locked
* @param authorities
* the authorities that should be granted to the caller if they
* presented the correct username and password and the user is
* enabled
*
* @throws IllegalArgumentException
* if a <code>null</code> value was passed either as a
* parameter or as an element in the
* <code>GrantedAuthority[]</code> array
*/
public User(String username, String password, boolean enabled,
boolean accountNonExpired, boolean credentialsNonExpired,
boolean accountNonLocked, GrantedAuthority[] authorities)
throws IllegalArgumentException {
if (((username == null) || "".equals(username)) || (password == null)) {
throw new IllegalArgumentException(
"Cannot pass null or empty values to constructor");
}
// We rely on constructor to guarantee non-null username and password
return (this.getPassword().equals(user.getPassword())
&& this.getUsername().equals(user.getUsername())
&& (this.isAccountNonExpired() == user.isAccountNonExpired())
&& (this.isAccountNonLocked() == user.isAccountNonLocked())
&& (this.isCredentialsNonExpired() == user.isCredentialsNonExpired())
&& (this.isEnabled() == user.isEnabled()));
}
this.username = username;
this.password = password;
this.enabled = enabled;
this.accountNonExpired = accountNonExpired;
this.credentialsNonExpired = credentialsNonExpired;
this.accountNonLocked = accountNonLocked;
setAuthorities(authorities);
}
public GrantedAuthority[] getAuthorities() {
return authorities;
}
// ~ Methods
// ================================================================
public String getPassword() {
return password;
}
public boolean equals(Object rhs) {
if (!(rhs instanceof User) || (rhs == null)) {
return false;
}
public String getUsername() {
return username;
}
User user = (User) rhs;
public boolean isAccountNonExpired() {
return accountNonExpired;
}
// We rely on constructor to guarantee any User has non-null and >0
// authorities
if (user.getAuthorities().length != this.getAuthorities().length) {
return false;
}
public boolean isAccountNonLocked() {
return this.accountNonLocked;
}
for (int i = 0; i < this.getAuthorities().length; i++) {
if (!this.getAuthorities()[i].equals(user.getAuthorities()[i])) {
return false;
}
}
public boolean isCredentialsNonExpired() {
return credentialsNonExpired;
}
// We rely on constructor to guarantee non-null username and password
return (this.getPassword().equals(user.getPassword())
&& this.getUsername().equals(user.getUsername())
&& (this.isAccountNonExpired() == user.isAccountNonExpired())
&& (this.isAccountNonLocked() == user.isAccountNonLocked())
&& (this.isCredentialsNonExpired() == user
.isCredentialsNonExpired()) && (this.isEnabled() == user
.isEnabled()));
}
public boolean isEnabled() {
return enabled;
}
public GrantedAuthority[] getAuthorities() {
return authorities;
}
protected void setAuthorities(GrantedAuthority[] authorities) {
Assert.notNull(authorities, "Cannot pass a null GrantedAuthority array");
public String getPassword() {
return password;
}
for (int i = 0; i < authorities.length; i++) {
Assert.notNull(authorities[i],
"Granted authority element " + i
+ " is null - GrantedAuthority[] cannot contain any null elements");
}
public String getUsername() {
return username;
}
this.authorities = authorities;
}
public boolean isAccountNonExpired() {
return accountNonExpired;
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(super.toString() + ": ");
sb.append("Username: " + this.username + "; ");
sb.append("Password: [PROTECTED]; ");
sb.append("Enabled: " + this.enabled + "; ");
sb.append("AccountNonExpired: " + this.accountNonExpired + "; ");
sb.append("credentialsNonExpired: " + this.credentialsNonExpired + "; ");
sb.append("AccountNonLocked: " + this.accountNonLocked + "; ");
public boolean isAccountNonLocked() {
return this.accountNonLocked;
}
if (this.getAuthorities() != null) {
sb.append("Granted Authorities: ");
public boolean isCredentialsNonExpired() {
return credentialsNonExpired;
}
for (int i = 0; i < this.getAuthorities().length; i++) {
if (i > 0) {
sb.append(", ");
}
public boolean isEnabled() {
return enabled;
}
sb.append(this.getAuthorities()[i].toString());
}
} else {
sb.append("Not granted any authorities");
}
protected void setAuthorities(GrantedAuthority[] authorities) {
Assert
.notNull(authorities,
"Cannot pass a null GrantedAuthority array");
return sb.toString();
}
for (int i = 0; i < authorities.length; i++) {
Assert
.notNull(
authorities[i],
"Granted authority element "
+ i
+ " is null - GrantedAuthority[] cannot contain any null elements");
}
this.authorities = authorities;
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(super.toString() + ": ");
sb.append("Username: " + this.username + "; ");
sb.append("Password: [PROTECTED]; ");
sb.append("Enabled: " + this.enabled + "; ");
sb.append("AccountNonExpired: " + this.accountNonExpired + "; ");
sb
.append("credentialsNonExpired: " + this.credentialsNonExpired
+ "; ");
sb.append("AccountNonLocked: " + this.accountNonLocked + "; ");
if (this.getAuthorities() != null) {
sb.append("Granted Authorities: ");
for (int i = 0; i < this.getAuthorities().length; i++) {
if (i > 0) {
sb.append(", ");
}
sb.append(this.getAuthorities()[i].toString());
}
} else {
sb.append("Not granted any authorities");
}
return sb.toString();
}
}

View File

@@ -13,10 +13,13 @@
* limitations under the License.
*/
package org.acegisecurity;
package org.acegisecurity.userdetails;
import java.io.Serializable;
import org.acegisecurity.Authentication;
import org.acegisecurity.GrantedAuthority;
/**
* Provides core user information.

View File

@@ -13,10 +13,9 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao;
import org.acegisecurity.UserDetails;
package org.acegisecurity.userdetails;
import org.acegisecurity.providers.dao.DaoAuthenticationProvider;
import org.springframework.dao.DataAccessException;
@@ -32,7 +31,7 @@ import org.springframework.dao.DataAccessException;
* @author Ben Alex
* @version $Id$
*/
public interface AuthenticationDao {
public interface UserDetailsService {
//~ Methods ================================================================
/**

View File

@@ -13,13 +13,13 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao;
package org.acegisecurity.userdetails;
import org.acegisecurity.BadCredentialsException;
/**
* Thrown if an {@link AuthenticationDao} implementation cannot locate a {@link
* Thrown if an {@link UserDetailsService} implementation cannot locate a {@link
* User} by its username.
*
* @author Ben Alex

View File

@@ -13,34 +13,29 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao.jdbc;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContextException;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.jdbc.object.MappingSqlQuery;
package org.acegisecurity.userdetails.jdbc;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.List;
import javax.sql.DataSource;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContextException;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.jdbc.object.MappingSqlQuery;
/**
* <p>
@@ -70,7 +65,7 @@ import javax.sql.DataSource;
* @author colin sampaleanu
* @version $Id$
*/
public class JdbcDaoImpl extends JdbcDaoSupport implements AuthenticationDao {
public class JdbcDaoImpl extends JdbcDaoSupport implements UserDetailsService {
//~ Static fields/initializers =============================================
public static final String DEF_USERS_BY_USERNAME_QUERY = "SELECT username,password,enabled FROM users WHERE username = ?";

View File

@@ -13,20 +13,17 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao.memory;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.dao.DataAccessException;
import org.springframework.util.Assert;
package org.acegisecurity.userdetails.memory;
import java.util.Properties;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.dao.DataAccessException;
import org.springframework.util.Assert;
/**
* Retrieves user details from an in-memory list created by the bean context.
@@ -34,7 +31,7 @@ import java.util.Properties;
* @author Ben Alex
* @version $Id$
*/
public class InMemoryDaoImpl implements AuthenticationDao, InitializingBean {
public class InMemoryDaoImpl implements UserDetailsService, InitializingBean {
//~ Instance fields ========================================================
private UserMap userMap;

View File

@@ -13,14 +13,14 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao.memory;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
package org.acegisecurity.userdetails.memory;
import java.util.List;
import java.util.Vector;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
/**
* Used by {@link InMemoryDaoImpl} to temporarily store the attributes

View File

@@ -13,14 +13,13 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao.memory;
import org.acegisecurity.GrantedAuthorityImpl;
import org.springframework.util.StringUtils;
package org.acegisecurity.userdetails.memory;
import java.beans.PropertyEditorSupport;
import org.acegisecurity.GrantedAuthorityImpl;
import org.springframework.util.StringUtils;
/**
* Property editor that creates a {@link UserAttribute} from a comma separated

View File

@@ -13,19 +13,18 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao.memory;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.util.Assert;
package org.acegisecurity.userdetails.memory;
import java.util.HashMap;
import java.util.Map;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.util.Assert;
/**
* Used by {@link InMemoryDaoImpl} to store a list of users and their

View File

@@ -13,18 +13,16 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao.memory;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.User;
import org.springframework.beans.propertyeditors.PropertiesEditor;
package org.acegisecurity.userdetails.memory;
import java.beans.PropertyEditorSupport;
import java.util.Iterator;
import java.util.Properties;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import org.springframework.beans.propertyeditors.PropertiesEditor;
/**
* Property editor to assist with the setup of a {@link UserMap}.

View File

@@ -49,7 +49,7 @@ import java.util.Iterator;
* some use when using preexisting role names without a prefix, and no ability
* exists to prefix them with a role prefix on reading them in, such as
* provided for example in {@link
* org.acegisecurity.providers.dao.jdbc.JdbcDaoImpl}.
* org.acegisecurity.userdetails.jdbc.JdbcDaoImpl}.
* </p>
*
* <p>

View File

@@ -18,8 +18,8 @@ package org.acegisecurity.wrapper;
import org.acegisecurity.Authentication;
import org.acegisecurity.AuthenticationTrustResolver;
import org.acegisecurity.AuthenticationTrustResolverImpl;
import org.acegisecurity.UserDetails;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.userdetails.UserDetails;
import java.security.Principal;

View File

@@ -21,7 +21,7 @@ import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.acl.AclEntry;
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.userdetails.User;
/**

View File

@@ -23,7 +23,7 @@ import org.acegisecurity.MockFilterConfig;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.context.SecurityContextImpl;
import org.acegisecurity.providers.TestingAuthenticationToken;
import org.acegisecurity.providers.dao.memory.UserAttribute;
import org.acegisecurity.userdetails.memory.UserAttribute;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;

View File

@@ -22,12 +22,12 @@ import org.acegisecurity.AuthenticationException;
import org.acegisecurity.BadCredentialsException;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.TestingAuthenticationToken;
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.providers.cas.ticketvalidator.AbstractTicketValidator;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.ui.cas.CasProcessingFilter;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import org.springframework.context.support.StaticMessageSource;
import java.util.HashMap;

View File

@@ -19,9 +19,9 @@ import junit.framework.TestCase;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import java.util.List;
import java.util.Vector;

View File

@@ -21,7 +21,7 @@ import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.MockApplicationContext;
import org.acegisecurity.providers.cas.CasAuthenticationToken;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.userdetails.User;
import net.sf.ehcache.Cache;

View File

@@ -19,10 +19,10 @@ import junit.framework.TestCase;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.DataRetrievalFailureException;
@@ -111,7 +111,7 @@ public class DaoCasAuthoritiesPopulatorTests extends TestCase {
public void testGettersSetters() {
DaoCasAuthoritiesPopulator populator = new DaoCasAuthoritiesPopulator();
AuthenticationDao dao = new MockAuthenticationDaoUserMarissa();
UserDetailsService dao = new MockAuthenticationDaoUserMarissa();
populator.setAuthenticationDao(dao);
assertEquals(dao, populator.getAuthenticationDao());
}
@@ -119,7 +119,7 @@ public class DaoCasAuthoritiesPopulatorTests extends TestCase {
//~ Inner Classes ==========================================================
private class MockAuthenticationDaoSimulateBackendError
implements AuthenticationDao {
implements UserDetailsService {
public long getRefreshDuration() {
return 0;
}
@@ -131,7 +131,7 @@ public class DaoCasAuthoritiesPopulatorTests extends TestCase {
}
}
private class MockAuthenticationDaoUserMarissa implements AuthenticationDao {
private class MockAuthenticationDaoUserMarissa implements UserDetailsService {
public long getRefreshDuration() {
return 0;
}

View File

@@ -26,13 +26,16 @@ import org.acegisecurity.DisabledException;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.LockedException;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.TestingAuthenticationToken;
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache;
import org.acegisecurity.providers.dao.cache.NullUserCache;
import org.acegisecurity.providers.dao.salt.SystemWideSaltSource;
import org.acegisecurity.providers.encoding.ShaPasswordEncoder;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.springframework.context.support.StaticMessageSource;
import org.springframework.dao.DataAccessException;
@@ -461,7 +464,7 @@ public class DaoAuthenticationProviderTests extends TestCase {
public void testStartupSuccess() throws Exception {
DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
provider.setMessageSource(new StaticMessageSource());
AuthenticationDao dao = new MockAuthenticationDaoUserMarissa();
UserDetailsService dao = new MockAuthenticationDaoUserMarissa();
provider.setAuthenticationDao(dao);
provider.setUserCache(new MockUserCache());
assertEquals(dao, provider.getAuthenticationDao());
@@ -478,7 +481,7 @@ public class DaoAuthenticationProviderTests extends TestCase {
//~ Inner Classes ==========================================================
private class MockAuthenticationDaoReturnsNull implements AuthenticationDao {
private class MockAuthenticationDaoReturnsNull implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
return null;
@@ -486,7 +489,7 @@ public class DaoAuthenticationProviderTests extends TestCase {
}
private class MockAuthenticationDaoSimulateBackendError
implements AuthenticationDao {
implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
throw new DataRetrievalFailureException(
@@ -494,7 +497,7 @@ public class DaoAuthenticationProviderTests extends TestCase {
}
}
private class MockAuthenticationDaoUserMarissa implements AuthenticationDao {
private class MockAuthenticationDaoUserMarissa implements UserDetailsService {
private String password = "koala";
public void setPassword(String password) {
@@ -515,7 +518,7 @@ public class DaoAuthenticationProviderTests extends TestCase {
}
private class MockAuthenticationDaoUserMarissaWithSalt
implements AuthenticationDao {
implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
if ("marissa".equals(username)) {
@@ -530,7 +533,7 @@ public class DaoAuthenticationProviderTests extends TestCase {
}
}
private class MockAuthenticationDaoUserPeter implements AuthenticationDao {
private class MockAuthenticationDaoUserPeter implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
if ("peter".equals(username)) {
@@ -545,7 +548,7 @@ public class DaoAuthenticationProviderTests extends TestCase {
}
private class MockAuthenticationDaoUserPeterAccountExpired
implements AuthenticationDao {
implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
if ("peter".equals(username)) {
@@ -560,7 +563,7 @@ public class DaoAuthenticationProviderTests extends TestCase {
}
private class MockAuthenticationDaoUserPeterAccountLocked
implements AuthenticationDao {
implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
if ("peter".equals(username)) {
@@ -575,7 +578,7 @@ public class DaoAuthenticationProviderTests extends TestCase {
}
private class MockAuthenticationDaoUserPeterCredentialsExpired
implements AuthenticationDao {
implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
if ("peter".equals(username)) {

View File

@@ -20,7 +20,7 @@ import junit.framework.TestCase;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.MockApplicationContext;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.userdetails.User;
import net.sf.ehcache.Cache;

View File

@@ -19,7 +19,7 @@ import junit.framework.TestCase;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.userdetails.User;
/**

View File

@@ -20,8 +20,8 @@ import junit.framework.TestCase;
import org.acegisecurity.AuthenticationServiceException;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
/**

View File

@@ -19,7 +19,8 @@ import junit.framework.TestCase;
import org.acegisecurity.*;
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import org.springframework.context.support.StaticMessageSource;
import java.security.cert.X509Certificate;

View File

@@ -20,9 +20,9 @@ import junit.framework.TestCase;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.MockApplicationContext;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.providers.x509.X509TestUtils;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import net.sf.ehcache.Cache;

View File

@@ -20,11 +20,11 @@ import junit.framework.TestCase;
import org.acegisecurity.BadCredentialsException;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.providers.x509.X509TestUtils;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.springframework.context.support.StaticMessageSource;
import org.springframework.dao.DataAccessException;
@@ -139,7 +139,7 @@ public class DaoX509AuthoritiesPopulatorTests extends TestCase {
//~ Inner Classes ==========================================================
private class MockAuthenticationDaoMatchesNameOrEmail
implements AuthenticationDao {
implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
if ("Luke Taylor".equals(username)

View File

@@ -21,7 +21,7 @@ import org.acegisecurity.Authentication;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.providers.TestingAuthenticationToken;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.userdetails.User;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.Tag;

View File

@@ -20,9 +20,9 @@ import junit.framework.TestCase;
import org.acegisecurity.MockAuthenticationEntryPoint;
import org.acegisecurity.MockAuthenticationManager;
import org.acegisecurity.MockFilterConfig;
import org.acegisecurity.UserDetails;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.context.SecurityContextImpl;
import org.acegisecurity.userdetails.UserDetails;
import org.apache.commons.codec.binary.Base64;

View File

@@ -19,15 +19,15 @@ import junit.framework.TestCase;
import org.acegisecurity.DisabledException;
import org.acegisecurity.MockFilterConfig;
import org.acegisecurity.UserDetails;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.context.SecurityContextImpl;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.providers.dao.UserCache;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.acegisecurity.util.StringSplitUtils;
import org.apache.commons.codec.binary.Base64;
@@ -855,7 +855,7 @@ public class DigestProcessingFilterTests extends TestCase {
//~ Inner Classes ==========================================================
private class MockAuthenticationDao implements AuthenticationDao {
private class MockAuthenticationDao implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException {
return null;

View File

@@ -22,11 +22,11 @@ import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.TestingAuthenticationToken;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
@@ -402,7 +402,7 @@ public class TokenBasedRememberMeServicesTests extends TestCase {
//~ Inner Classes ==========================================================
private class MockAuthenticationDao implements AuthenticationDao {
private class MockAuthenticationDao implements UserDetailsService {
private UserDetails toReturn;
private boolean throwException;

View File

@@ -23,12 +23,12 @@ import org.acegisecurity.CredentialsExpiredException;
import org.acegisecurity.DisabledException;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.UserDetails;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.providers.dao.AuthenticationDao;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.userdetails.UserDetailsService;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.acegisecurity.util.MockFilterChain;
import org.springframework.context.support.StaticMessageSource;
@@ -383,7 +383,7 @@ public class SwitchUserProcessingFilterTests extends TestCase {
//~ Inner Classes ==========================================================
private class MockAuthenticationDaoUserJackLord implements AuthenticationDao {
private class MockAuthenticationDaoUserJackLord implements UserDetailsService {
private String password = "hawaii50";
public void setPassword(String password) {

View File

@@ -13,13 +13,14 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao;
package org.acegisecurity.userdetails;
import junit.framework.TestCase;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.UserDetails;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
/**

View File

@@ -13,13 +13,14 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao.jdbc;
package org.acegisecurity.userdetails.jdbc;
import junit.framework.TestCase;
import org.acegisecurity.PopulatedDatabase;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.acegisecurity.userdetails.jdbc.JdbcDaoImpl;
import org.springframework.jdbc.object.MappingSqlQuery;

View File

@@ -13,11 +13,14 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao.memory;
package org.acegisecurity.userdetails.memory;
import junit.framework.TestCase;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.acegisecurity.userdetails.memory.InMemoryDaoImpl;
import org.acegisecurity.userdetails.memory.UserMap;
import org.acegisecurity.userdetails.memory.UserMapEditor;
import java.util.Properties;

View File

@@ -13,7 +13,10 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao.memory;
package org.acegisecurity.userdetails.memory;
import org.acegisecurity.userdetails.memory.UserAttribute;
import org.acegisecurity.userdetails.memory.UserAttributeEditor;
import junit.framework.TestCase;

View File

@@ -13,7 +13,10 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao.memory;
package org.acegisecurity.userdetails.memory;
import org.acegisecurity.userdetails.memory.UserMap;
import org.acegisecurity.userdetails.memory.UserMapEditor;
import junit.framework.TestCase;

View File

@@ -13,15 +13,16 @@
* limitations under the License.
*/
package org.acegisecurity.providers.dao.memory;
package org.acegisecurity.userdetails.memory;
import junit.framework.TestCase;
import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.UserDetails;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.providers.dao.UsernameNotFoundException;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.acegisecurity.userdetails.memory.UserMap;
/**

View File

@@ -22,7 +22,7 @@ import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.providers.TestingAuthenticationToken;
import org.acegisecurity.providers.dao.User;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.wrapper.SecurityContextHolderAwareRequestWrapper;
import org.springframework.mock.web.MockHttpServletRequest;

View File

@@ -22,7 +22,7 @@
<beans>
<!-- Data access object which stores authentication information -->
<bean id="inMemoryDaoImpl" class="org.acegisecurity.providers.dao.memory.InMemoryDaoImpl">
<bean id="inMemoryDaoImpl" class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">
<property name="userMap">
<value>
marissa=koala,ROLE_TELLER,ROLE_SUPERVISOR

View File

@@ -22,7 +22,7 @@
<beans>
<!-- Data access object which stores authentication information -->
<bean id="inMemoryDaoImpl" class="org.acegisecurity.providers.dao.memory.InMemoryDaoImpl">
<bean id="inMemoryDaoImpl" class="org.acegisecurity.userdetails.memory.InMemoryDaoImpl">
<property name="userMap">
<value>
marissa=koala,ROLE_TELLER,ROLE_SUPERVISOR