01: package org.andromda.timetracker.web.security;
02:
03: import org.acegisecurity.GrantedAuthority;
04: import org.acegisecurity.GrantedAuthorityImpl;
05: import org.acegisecurity.userdetails.UserDetails;
06: import org.andromda.timetracker.vo.UserDetailsVO;
07: import org.andromda.timetracker.vo.UserRoleVO;
08:
09: public class UserDetailsImpl implements UserDetails {
10:
11: private UserDetailsVO userDetailsVO;
12: private GrantedAuthority[] authorities;
13:
14: public UserDetailsImpl(UserDetailsVO userDetailsVO) {
15: this .userDetailsVO = userDetailsVO;
16: this .authorities = null; // lazily initialized
17: }
18:
19: public UserDetailsVO getUserDetailsVO() {
20: return userDetailsVO;
21: }
22:
23: public String getUsername() {
24: return userDetailsVO.getUsername();
25: }
26:
27: public String getPassword() {
28: return userDetailsVO.getPassword();
29: }
30:
31: public boolean isAccountNonExpired() {
32: return userDetailsVO.isIsActive();
33: }
34:
35: public boolean isAccountNonLocked() {
36: return userDetailsVO.isIsActive();
37: }
38:
39: public boolean isCredentialsNonExpired() {
40: return userDetailsVO.isIsActive();
41: }
42:
43: public boolean isEnabled() {
44: return userDetailsVO.isIsActive();
45: }
46:
47: public GrantedAuthority[] getAuthorities() {
48:
49: // Authorities are initialized lazily
50: if (authorities == null) {
51: UserRoleVO[] roles = userDetailsVO.getRoles();
52: authorities = new GrantedAuthorityImpl[roles.length];
53: for (int i = 0; i < roles.length; i++) {
54: authorities[i] = new GrantedAuthorityImpl(roles[i]
55: .toString());
56: }
57: }
58: return authorities;
59: }
60: }
|