You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:48:41 UTC

[sling-org-apache-sling-jcr-jackrabbit-usermanager] 12/24: SLING-1577 - using full property path instead of simple property name in creation of RequestProperty object

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.jcr.jackrabbit.usermanager-2.1.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-jackrabbit-usermanager.git

commit 0a4869d31a49dec4268c8bfdf625c270b5c808e2
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Mon Jun 28 19:43:11 2010 +0000

    SLING-1577 - using full property path instead of simple property name in creation of RequestProperty object
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/jackrabbit-usermanager@958690 13f79535-47bb-0310-9956-ffa450edef68
---
 .../impl/post/AbstractAuthorizablePostServlet.java    | 19 +++++++++++--------
 .../usermanager/impl/post/CreateGroupServlet.java     |  6 +++---
 .../usermanager/impl/post/CreateUserServlet.java      |  6 +++---
 .../usermanager/impl/post/UpdateGroupServlet.java     |  6 +++++-
 .../usermanager/impl/post/UpdateUserServlet.java      |  6 +++++-
 5 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java
index ba6b288..fccf282 100644
--- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java
+++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java
@@ -287,7 +287,8 @@ public abstract class AbstractAuthorizablePostServlet extends
      * @throws ServletException if an internal error occurs
      */
     protected Map<String, RequestProperty> collectContent(
-            SlingHttpServletRequest request, HtmlResponse response) {
+            SlingHttpServletRequest request, HtmlResponse response,
+            String authorizablePath) {
 
         boolean requireItemPrefix = requireItemPathPrefix(request);
 
@@ -321,6 +322,8 @@ public abstract class AbstractAuthorizablePostServlet extends
                 // be used.
                 continue; // skip it.
             }
+            
+            propPath = authorizablePath + "/" + propPath;
 
             // @TypeHint example
             // <input type="text" name="./age" />
@@ -421,23 +424,23 @@ public abstract class AbstractAuthorizablePostServlet extends
      * <code>props</code>.
      * 
      * @param props The map of already seen request properties.
-     * @param paramName The absolute path of the property including the
+     * @param paramPath The absolute path of the property including the
      *            <code>suffix</code> to be looked up.
      * @param suffix The (optional) suffix to remove from the
      *            <code>paramName</code> before looking it up.
      * @return The {@link RequestProperty} for the <code>paramName</code>.
      */
     private RequestProperty getOrCreateRequestProperty(
-            Map<String, RequestProperty> props, String paramName, String suffix) {
-        if (suffix != null && paramName.endsWith(suffix)) {
-            paramName = paramName.substring(0, paramName.length()
+            Map<String, RequestProperty> props, String paramPath, String suffix) {
+        if (suffix != null && paramPath.endsWith(suffix)) {
+            paramPath = paramPath.substring(0, paramPath.length()
                 - suffix.length());
         }
 
-        RequestProperty prop = props.get(paramName);
+        RequestProperty prop = props.get(paramPath);
         if (prop == null) {
-            prop = new RequestProperty(paramName);
-            props.put(paramName, prop);
+            prop = new RequestProperty(paramPath);
+            props.put(paramPath, prop);
         }
 
         return prop;
diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java
index cc87d05..5a63b07 100644
--- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java
+++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java
@@ -114,9 +114,6 @@ public class CreateGroupServlet extends AbstractGroupPostServlet {
                     "A principal already exists with the requested name: "
                         + principalName);
             } else {
-                Map<String, RequestProperty> reqProperties = collectContent(
-                    request, response);
-
                 Group group = userManager.createGroup(new Principal() {
                     public String getName() {
                         return principalName;
@@ -125,6 +122,9 @@ public class CreateGroupServlet extends AbstractGroupPostServlet {
 
                 String groupPath = AuthorizableResourceProvider.SYSTEM_USER_MANAGER_GROUP_PREFIX
                     + group.getID();
+                
+                Map<String, RequestProperty> reqProperties = collectContent(
+                    request, response, groupPath);
                 response.setPath(groupPath);
                 response.setLocation(externalizePath(request, groupPath));
                 response.setParentLocation(externalizePath(request,
diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
index f591e5b..f983d15 100644
--- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
+++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
@@ -219,13 +219,13 @@ public class CreateUserServlet extends AbstractUserPostServlet {
                     "A principal already exists with the requested name: "
                         + principalName);
             } else {
-                Map<String, RequestProperty> reqProperties = collectContent(
-                    request, response);
-
                 User user = userManager.createUser(principalName,
                     digestPassword(pwd));
                 String userPath = AuthorizableResourceProvider.SYSTEM_USER_MANAGER_USER_PREFIX
                     + user.getID();
+                
+                Map<String, RequestProperty> reqProperties = collectContent(
+                    request, response, userPath);
 
                 response.setPath(userPath);
                 response.setLocation(externalizePath(request, userPath));
diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateGroupServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateGroupServlet.java
index 42a7971..c4ed8f2 100644
--- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateGroupServlet.java
+++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateGroupServlet.java
@@ -28,6 +28,7 @@ import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceNotFoundException;
 import org.apache.sling.api.servlets.HtmlResponse;
 import org.apache.sling.jackrabbit.usermanager.impl.helper.RequestProperty;
+import org.apache.sling.jackrabbit.usermanager.impl.resource.AuthorizableResourceProvider;
 import org.apache.sling.servlets.post.Modification;
 
 /**
@@ -105,9 +106,12 @@ public class UpdateGroupServlet extends AbstractGroupPostServlet {
         if (session == null) {
             throw new RepositoryException("JCR Session not found");
         }
+        
+        String groupPath = AuthorizableResourceProvider.SYSTEM_USER_MANAGER_GROUP_PREFIX
+            + authorizable.getID();
 
         Map<String, RequestProperty> reqProperties = collectContent(request,
-            htmlResponse);
+            htmlResponse, groupPath);
         try {
             // cleanup any old content (@Delete parameters)
             processDeletes(authorizable, reqProperties, changes);
diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateUserServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateUserServlet.java
index 3d60769..a65dfbd 100644
--- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateUserServlet.java
+++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateUserServlet.java
@@ -28,6 +28,7 @@ import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceNotFoundException;
 import org.apache.sling.api.servlets.HtmlResponse;
 import org.apache.sling.jackrabbit.usermanager.impl.helper.RequestProperty;
+import org.apache.sling.jackrabbit.usermanager.impl.resource.AuthorizableResourceProvider;
 import org.apache.sling.servlets.post.Modification;
 
 /**
@@ -106,9 +107,12 @@ public class UpdateUserServlet extends AbstractUserPostServlet {
         if (session == null) {
             throw new RepositoryException("JCR Session not found");
         }
+        
+        String userPath = AuthorizableResourceProvider.SYSTEM_USER_MANAGER_GROUP_PREFIX
+            + authorizable.getID();
 
         Map<String, RequestProperty> reqProperties = collectContent(request,
-            htmlResponse);
+            htmlResponse, userPath);
         try {
             // cleanup any old content (@Delete parameters)
             processDeletes(authorizable, reqProperties, changes);

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.