Guest User

Untitled

a guest
May 16th, 2012
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.04 KB | None | 0 0
  1. diff --git a/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java b/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apac
  2. index 638bcbd..ad6a69c 100644
  3. --- a/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
  4. +++ b/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
  5. @@ -22,6 +22,7 @@ import java.util.Map;
  6.  
  7.  import javax.jcr.RepositoryException;
  8.  import javax.jcr.Session;
  9. +import javax.jcr.SimpleCredentials;
  10.  import javax.servlet.Servlet;
  11.  
  12.  import org.apache.felix.scr.annotations.Component;
  13. @@ -207,8 +208,12 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create
  14.                              request.getRequestParameterMap(),
  15.                              changes);
  16.          
  17. -        String userPath = AuthorizableResourceProvider.SYSTEM_USER_MANAGER_USER_PREFIX
  18. -                + user.getID();
  19. +        String userPath = AuthorizableResourceProvider.SYSTEM_USER_MANAGER_USER_PREFIX;
  20. +        if (user != null) {
  21. +            userPath += user.getID();
  22. +        } else {
  23. +            userPath += "<null user>";
  24. +        }
  25.          response.setPath(userPath);
  26.          response.setLocation(externalizePath(request, userPath));
  27.          response.setParentLocation(externalizePath(request,
  28. @@ -310,13 +315,22 @@ public class CreateUserServlet extends AbstractUserPostServlet implements Create
  29.                  }
  30.                  
  31.                  if (useAdminSession) {
  32. -                    //lookup the user from the user session so we can return a live object
  33. -                    UserManager userManager2 = AccessControlUtil.getUserManager(jcrSession);
  34. -                    Authorizable authorizable2 = userManager2.getAuthorizable(user.getID());
  35. -                    if (authorizable2 instanceof User) {
  36. -                        user = (User)authorizable2;
  37. -                    } else {
  38. -                        user = null;
  39. +                    Session userSession = null;
  40. +                    try {
  41. +                        userSession = selfRegSession.impersonate(new SimpleCredentials(name,
  42. +                                password.toCharArray()));
  43. +                        //lookup the user from the user session so we can return a live object
  44. +                        UserManager userManager2 = AccessControlUtil.getUserManager(userSession);
  45. +                        Authorizable authorizable2 = userManager2.getAuthorizable(user.getID());
  46.  
  47. +                        if (authorizable2 instanceof User) {
  48. +                            user = (User)authorizable2;
  49. +                        } else {
  50. +                            user = null;
  51. +                        }
  52. +                    } finally {
  53. +                        if (userSession != null) {
  54. +                            userSession.logout();
  55. +                        }
  56.                      }
  57.                  }                
  58.              }
Advertisement
Add Comment
Please, Sign In to add comment