package org.argeo.security.jcr;
+import java.util.ArrayList;
+import java.util.List;
+
import org.springframework.security.GrantedAuthority;
+import org.springframework.security.GrantedAuthorityImpl;
import org.springframework.security.userdetails.User;
public class JcrUserDetails extends User {
return homePath;
}
+ public JcrUserDetails cloneWithNewRoles(List<String> roles) {
+ List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
+ 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());
+ }
}