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
16
17
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 }