4 changed files with 106 additions and 21 deletions
@ -0,0 +1,10 @@ |
|||||||
|
package org.acegisecurity.userdetails; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Luke Taylor |
||||||
|
* @version $Id$ |
||||||
|
* @since 1.0.7 |
||||||
|
*/ |
||||||
|
public interface UserDetailsChecker { |
||||||
|
void check(UserDetails toCheck); |
||||||
|
} |
||||||
@ -0,0 +1,42 @@ |
|||||||
|
package org.acegisecurity.userdetails.checker; |
||||||
|
|
||||||
|
|
||||||
|
import org.springframework.context.support.MessageSourceAccessor; |
||||||
|
|
||||||
|
import org.acegisecurity.LockedException; |
||||||
|
import org.acegisecurity.CredentialsExpiredException; |
||||||
|
import org.acegisecurity.AccountExpiredException; |
||||||
|
import org.acegisecurity.DisabledException; |
||||||
|
import org.acegisecurity.AcegiMessageSource; |
||||||
|
import org.acegisecurity.userdetails.UserDetailsChecker; |
||||||
|
import org.acegisecurity.userdetails.UserDetails; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Luke Taylor |
||||||
|
* @version $Id$ |
||||||
|
* @since 1.0.7 |
||||||
|
*/ |
||||||
|
public class AccountStatusUserDetailsChecker implements UserDetailsChecker { |
||||||
|
|
||||||
|
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); |
||||||
|
|
||||||
|
public void check(UserDetails user) { |
||||||
|
if (!user.isAccountNonLocked()) { |
||||||
|
throw new LockedException(messages.getMessage("UserDetailsService.locked", "User account is locked")); |
||||||
|
} |
||||||
|
|
||||||
|
if (!user.isEnabled()) { |
||||||
|
throw new DisabledException(messages.getMessage("UserDetailsService.disabled", "User is disabled")); |
||||||
|
} |
||||||
|
|
||||||
|
if (!user.isAccountNonExpired()) { |
||||||
|
throw new AccountExpiredException(messages.getMessage("UserDetailsService.expired", |
||||||
|
"User account has expired")); |
||||||
|
} |
||||||
|
|
||||||
|
if (!user.isCredentialsNonExpired()) { |
||||||
|
throw new CredentialsExpiredException(messages.getMessage("UserDetailsService.credentialsExpired", |
||||||
|
"User credentials have expired")); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue