]> git.argeo.org Git - lgpl/argeo-commons.git/blob - security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/JcrUserDetails.java
Introduce AsyncSystemTaskExecutor
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / jcr / JcrUserDetails.java
1 package org.argeo.security.jcr;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.springframework.security.GrantedAuthority;
7 import org.springframework.security.GrantedAuthorityImpl;
8 import org.springframework.security.userdetails.User;
9
10 public class JcrUserDetails extends User {
11 private static final long serialVersionUID = -3594542993773402380L;
12 private final String homePath;
13
14 public JcrUserDetails(String homePath, String username, String password,
15 boolean enabled, boolean accountNonExpired,
16 boolean credentialsNonExpired, boolean accountNonLocked,
17 GrantedAuthority[] authorities) throws IllegalArgumentException {
18 super(username, password, enabled, accountNonExpired,
19 credentialsNonExpired, accountNonLocked, authorities);
20 this.homePath = homePath;
21 }
22
23 public String getHomePath() {
24 return homePath;
25 }
26
27 public JcrUserDetails cloneWithNewRoles(List<String> roles) {
28 List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
29 for (String role : roles) {
30 authorities.add(new GrantedAuthorityImpl(role));
31 }
32 return new JcrUserDetails(homePath, getUsername(), getPassword(),
33 isEnabled(), isAccountNonExpired(), isAccountNonExpired(),
34 isAccountNonLocked(),
35 authorities.toArray(new GrantedAuthority[authorities.size()]));
36 }
37
38 public JcrUserDetails cloneWithNewPassword(String password) {
39 return new JcrUserDetails(homePath, getUsername(), password,
40 isEnabled(), isAccountNonExpired(), isAccountNonExpired(),
41 isAccountNonLocked(), getAuthorities());
42 }
43 }