X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fjcr%2FJcrUserDetails.java;h=3815b843b18c447650f2de9be7e45a322528b389;hb=2f510fb09e18bc3d3e902c8131d0037763c5f279;hp=ea66b5ff74e529f03d2bb97b766253b51e227f7d;hpb=04680d8fdd4964546c8691cb9da8bba7ac99a014;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/JcrUserDetails.java b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/JcrUserDetails.java index ea66b5ff7..3815b843b 100644 --- a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/JcrUserDetails.java +++ b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/JcrUserDetails.java @@ -66,4 +66,21 @@ public class JcrUserDetails extends User { jcrUserDetails.isEnabled()); } + + public JcrUserDetails cloneWithNewRoles(List roles) { + List authorities = new ArrayList(); + for (String role : roles) { + authorities.add(new GrantedAuthorityImpl(role)); + } + return new JcrUserDetails(homePath, getUsername(), getPassword(), + isEnabled(), isAccountNonExpired(), isAccountNonExpired(), + isAccountNonLocked(), + authorities.toArray(new GrantedAuthority[authorities.size()])); + } + + public JcrUserDetails cloneWithNewPassword(String password) { + return new JcrUserDetails(homePath, getUsername(), password, + isEnabled(), isAccountNonExpired(), isAccountNonExpired(), + isAccountNonLocked(), getAuthorities()); + } }