View Javadoc

1   package org.acegisecurity.userdetails.checker;
2   
3   
4   import org.springframework.context.support.MessageSourceAccessor;
5   
6   import org.acegisecurity.LockedException;
7   import org.acegisecurity.CredentialsExpiredException;
8   import org.acegisecurity.AccountExpiredException;
9   import org.acegisecurity.DisabledException;
10  import org.acegisecurity.AcegiMessageSource;
11  import org.acegisecurity.userdetails.UserDetailsChecker;
12  import org.acegisecurity.userdetails.UserDetails;
13  
14  /**
15   * @author Luke Taylor
16   * @version $Id: AccountStatusUserDetailsChecker.java 2654 2008-02-18 20:44:09Z luke_t $
17   * @since 1.0.7
18   */
19  public class AccountStatusUserDetailsChecker implements UserDetailsChecker {
20  
21      protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor();
22  
23      public void check(UserDetails user) {
24          if (!user.isAccountNonLocked()) {
25              throw new LockedException(messages.getMessage("UserDetailsService.locked", "User account is locked"), user);
26          }
27  
28          if (!user.isEnabled()) {
29              throw new DisabledException(messages.getMessage("UserDetailsService.disabled", "User is disabled"), user);
30          }
31  
32          if (!user.isAccountNonExpired()) {
33              throw new AccountExpiredException(messages.getMessage("UserDetailsService.expired",
34                      "User account has expired"), user);
35          }
36  
37          if (!user.isCredentialsNonExpired()) {
38              throw new CredentialsExpiredException(messages.getMessage("UserDetailsService.credentialsExpired",
39                      "User credentials have expired"), user);
40          }
41      }
42  }