]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/JcrUserDetails.java
Improvet doc
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / jcr / JcrUserDetails.java
index 3815b843b18c447650f2de9be7e45a322528b389..11e463d349a7a7f86cf30d953e0636ef342ea8db 100644 (file)
@@ -3,15 +3,11 @@ package org.argeo.security.jcr;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-
-import org.argeo.ArgeoException;
 import org.springframework.security.GrantedAuthority;
 import org.springframework.security.GrantedAuthorityImpl;
 import org.springframework.security.userdetails.User;
 
+/** User details wrapping a home node. */
 public class JcrUserDetails extends User {
        private static final long serialVersionUID = -3594542993773402380L;
        private final String homePath;
@@ -25,48 +21,7 @@ public class JcrUserDetails extends User {
                this.homePath = homePath;
        }
 
-       public String getHomePath() {
-               return homePath;
-       }
-
-       public static JcrUserDetails argeoUserToJcrUserDetails(
-                       JcrArgeoUser argeoUser) {
-               try {
-                       List<GrantedAuthority> gas = new ArrayList<GrantedAuthority>();
-                       for (String role : argeoUser.getRoles())
-                               gas.add(new GrantedAuthorityImpl(role));
-                       return new JcrUserDetails(argeoUser.getHome().getPath(),
-                                       argeoUser.getUsername(), argeoUser.getPassword(),
-                                       argeoUser.getEnabled(), true, true, true,
-                                       gas.toArray(new GrantedAuthority[gas.size()]));
-               } catch (Exception e) {
-                       throw new ArgeoException("Cannot convert " + argeoUser
-                                       + " to JCR user details", e);
-               }
-       }
-
-       public static JcrArgeoUser jcrUserDetailsToArgeoUser(Session userSession,
-                       JcrUserDetails jcrUserDetails) {
-               if (!userSession.getUserID().equals(jcrUserDetails.getUsername()))
-                       throw new ArgeoException("User session has user id "
-                                       + userSession.getUserID() + " while details has username "
-                                       + jcrUserDetails.getUsername());
-
-               Node userHome;
-               try {
-                       userHome = userSession.getNode(jcrUserDetails.getHomePath());
-               } catch (RepositoryException e) {
-                       throw new ArgeoException("Cannot retrieve user home with path "
-                                       + jcrUserDetails.getHomePath(), e);
-               }
-               List<String> roles = new ArrayList<String>();
-               for (GrantedAuthority ga : jcrUserDetails.getAuthorities())
-                       roles.add(ga.getAuthority());
-               return new JcrArgeoUser(userHome, jcrUserDetails.getPassword(), roles,
-                               jcrUserDetails.isEnabled());
-
-       }
-
+       /** Clone immutable with new roles */
        public JcrUserDetails cloneWithNewRoles(List<String> roles) {
                List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
                for (String role : roles) {
@@ -78,9 +33,15 @@ public class JcrUserDetails extends User {
                                authorities.toArray(new GrantedAuthority[authorities.size()]));
        }
 
+       /** Clone immutable with new password */
        public JcrUserDetails cloneWithNewPassword(String password) {
                return new JcrUserDetails(homePath, getUsername(), password,
                                isEnabled(), isAccountNonExpired(), isAccountNonExpired(),
                                isAccountNonLocked(), getAuthorities());
        }
+
+       public String getHomePath() {
+               return homePath;
+       }
+
 }