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:47:56 UTC
[sling-org-apache-sling-jcr-jackrabbit-accessmanager] 12/19:
SLING-940 Applied patch from myself. Adds Javadoc to accessmanager and
usermanager servlets.
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.jcr.jackrabbit.accessmanager-2.0.4
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-jackrabbit-accessmanager.git
commit 4a672c99078afcbbd2ae430f2e5a372392dc55aa
Author: Ian Boston <ie...@apache.org>
AuthorDate: Thu Jul 16 16:54:39 2009 +0000
SLING-940
Applied patch from myself.
Adds Javadoc to accessmanager and usermanager servlets.
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/jcr/jackrabbit-accessmanager@794751 13f79535-47bb-0310-9956-ffa450edef68
---
.../post/AbstractAccessPostServlet.java | 20 +++---
.../accessmanager/post/DeleteAcesServlet.java | 39 +++++++++--
.../accessmanager/post/GetAclServlet.java | 75 ++++++++++++++++++++--
.../accessmanager/post/ModifyAceServlet.java | 49 ++++++++++++--
4 files changed, 154 insertions(+), 29 deletions(-)
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
index 1d73c6a..fe9da5b 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
@@ -48,7 +48,7 @@ public abstract class AbstractAccessPostServlet extends SlingAllMethodsServlet {
* default log
*/
private final Logger log = LoggerFactory.getLogger(getClass());
-
+
/* (non-Javadoc)
* @see org.apache.sling.api.servlets.SlingAllMethodsServlet#doPost(org.apache.sling.api.SlingHttpServletRequest, org.apache.sling.api.SlingHttpServletResponse)
*/
@@ -76,12 +76,12 @@ public abstract class AbstractAccessPostServlet extends SlingAllMethodsServlet {
Session session = request.getResourceResolver().adaptTo(Session.class);
final List<Modification> changes = new ArrayList<Modification>();
-
+
try {
handleOperation(request, htmlResponse, changes);
-
+
//TODO: maybe handle SlingAuthorizablePostProcessor handlers here
-
+
// set changes on html response
for(Modification change : changes) {
switch ( change.getType() ) {
@@ -93,7 +93,7 @@ public abstract class AbstractAccessPostServlet extends SlingAllMethodsServlet {
case ORDER : htmlResponse.onChange("ordered", change.getSource(), change.getDestination()); break;
}
}
-
+
if (session.hasPendingChanges()) {
session.save();
}
@@ -115,7 +115,7 @@ public abstract class AbstractAccessPostServlet extends SlingAllMethodsServlet {
e.getMessage(), e);
}
}
-
+
// check for redirect URL if processing succeeded
if (htmlResponse.isSuccessful()) {
String redirect = getRedirectUrl(request, htmlResponse);
@@ -131,10 +131,10 @@ public abstract class AbstractAccessPostServlet extends SlingAllMethodsServlet {
/**
* Extending Servlet should implement this operation to do the work
- *
+ *
* @param request the sling http request to process
- * @param htmlResponse the response
- * @param changes
+ * @param htmlResponse the response
+ * @param changes
*/
abstract protected void handleOperation(SlingHttpServletRequest request,
HtmlResponse htmlResponse, List<Modification> changes) throws RepositoryException;
@@ -250,5 +250,5 @@ public abstract class AbstractAccessPostServlet extends SlingAllMethodsServlet {
return ret.toString();
}
-
+
}
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
index 3c5b28d..4dc695c 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
@@ -40,14 +40,41 @@ import org.apache.sling.servlets.post.Modification;
import org.apache.sling.servlets.post.SlingPostConstants;
/**
- * Sling Post Servlet implementation for deleting the ACE for a set of principals on
- * a JCR resource.
- *
- * @scr.component immediate="true"
+ * <p>
+ * Sling Post Servlet implementation for deleting the ACE for a set of principals on a JCR
+ * resource.
+ * </p>
+ * <h2>Rest Service Description</h2>
+ * <p>
+ * Delete a set of Ace's from a node, the node is identified as a resource by the request
+ * url >resource<.deleteAce.html
+ * </p>
+ * <h4>Methods</h4>
+ * <ul>
+ * <li>POST</li>
+ * </ul>
+ * <h4>Post Parameters</h4>
+ * <dl>
+ * <dt>:applyTo</dt>
+ * <dd>An array of ace principal names to delete. Note the principal name is the primary
+ * key of the Ace in the Acl</dd>
+ * </dl>
+ *
+ * <h4>Response</h4>
+ * <dl>
+ * <dt>200</dt>
+ * <dd>Success.</dd>
+ * <dt>404</dt>
+ * <dd>The resource was not found.</dd>
+ * <dt>500</dt>
+ * <dd>Failure. HTML explains the failure.</dd>
+ * </dl>
+ *
+ * @scr.component immediate="true"
* @scr.service interface="javax.servlet.Servlet"
* @scr.property name="sling.servlet.resourceTypes" value="sling/servlet/default"
- * @scr.property name="sling.servlet.methods" value="POST"
- * @scr.property name="sling.servlet.selectors" value="deleteAce"
+ * @scr.property name="sling.servlet.methods" value="POST"
+ * @scr.property name="sling.servlet.selectors" value="deleteAce"
*/
public class DeleteAcesServlet extends AbstractAccessPostServlet {
private static final long serialVersionUID = 3784866802938282971L;
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
index 586ec57..855a966 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
@@ -47,15 +47,76 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * Sling GET servlet implementation for dumping the declared ACL of a resource
- * to JSON.
- *
- * @scr.component immediate="true"
+ * <p>
+ * Sling GET servlet implementation for dumping the declared ACL of a resource to JSON.
+ * </p>
+ * <h2>Rest Service Description</h2>
+ * <p>
+ * Mapped to the default resourceType. Gets and Acl for a resource. Get of the form
+ * >resource<.acl.json Provided the user has access to the ACL, they get a chunk of
+ * JSON of the form.
+ * </p>
+ * <h4>Methods</h4>
+ * <ul>
+ * <li>GET</li>
+ * </ul>
+ * <h4>Response</h4>
+ * <dl>
+ * <dt>200</dt>
+ * <dd>Success.</dd>
+ * <dt>404</dt>
+ * <dd>The resource was not found.</dd>
+ * <dt>500</dt>
+ * <dd>Failure. HTML explains the failure.</dd>
+ * </dl>
+ * <h4>Example Response</h4>
+ * <code>
+ * <pre>
+ * {
+ * "principalNameA":
+ * { "granted" : [
+ * "permission1",
+ * "permission2",
+ * "permission3",
+ * "permission4" ],
+ * "denied" : [
+ * "permission5",
+ * "permission6",
+ * "permission7",
+ * "permission8"]
+ * },
+ * "principalNameB":
+ * { "granted" : [
+ * "permission1",
+ * "permission2",
+ * "permission3",
+ * "permission4" ],
+ * "denied" : [
+ * "permission5",
+ * "permission6",
+ * "permission7",
+ * "permission8"] },
+ * "principalNameC":
+ * { "granted" : [
+ * "permission1",
+ * "permission2",
+ * "permission3",
+ * "permission4" ],
+ * "denied" : [
+ * "permission5",
+ * "permission6",
+ * "permission7",
+ * "permission8"] }
+ * }
+ * </pre>
+ * </code>
+ *
+ * @scr.component immediate="true"
* @scr.service interface="javax.servlet.Servlet"
* @scr.property name="sling.servlet.resourceTypes" value="sling/servlet/default"
- * @scr.property name="sling.servlet.methods" value="GET"
- * @scr.property name="sling.servlet.selectors" value="acl"
- * @scr.property name="sling.servlet.extensions " value="json"
+ * @scr.property name="sling.servlet.methods" value="GET"
+ * @scr.property name="sling.servlet.selectors" value="acl"
+ * @scr.property name="sling.servlet.extensions " value="json"
*/
public class GetAclServlet extends SlingAllMethodsServlet {
private static final long serialVersionUID = 3391376559396223184L;
diff --git a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
index b6ed930..4b37e76 100644
--- a/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
+++ b/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
@@ -43,14 +43,51 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * Sling Post Servlet implementation for modifying the ACE for a principal on
- * a JCR resource.
- *
- * @scr.component immediate="true"
+ * <p>
+ * Sling Post Servlet implementation for modifying the ACE for a principal on a JCR
+ * resource.
+ * </p>
+ * <h2>Rest Service Description</h2>
+ * <p>
+ * Delete a set of Ace's from a node, the node is identified as a resource by the request
+ * url >resource<.modifyAce.html
+ * </p>
+ * <h4>Methods</h4>
+ * <ul>
+ * <li>POST</li>
+ * </ul>
+ * <h4>Post Parameters</h4>
+ * <dl>
+ * <dt>principalId</dt>
+ * <dd>The principal of the Ace to modify in the ACL specified by the path.</dd>
+ * <dt>privilege@*</dt>
+ * <dd>One of more privileges, either granted or denied, where set the permission in the
+ * stored ACE is modified to match the request. Any permissions that are present in the
+ * stored ACE, but are not in the request are left untouched.</dd>
+ * </dl>
+ *
+ * <h4>Response</h4>
+ * <dl>
+ * <dt>200</dt>
+ * <dd>Success.</dd>
+ * <dt>404</dt>
+ * <dd>The resource was not found.</dd>
+ * <dt>500</dt>
+ * <dd>Failure. HTML explains the failure.</dd>
+ * </dl>
+ *
+ * <h4>Notes</h4>
+ * <p>
+ * The principalId is assumed to refer directly to an Authorizable, that comes direct from
+ * the UserManager. This can be a group or a user, but if its a group, denied permissions
+ * will not be added to the group. The group will only contain granted privileges.
+ * </p>
+ *
+ * @scr.component immediate="true"
* @scr.service interface="javax.servlet.Servlet"
* @scr.property name="sling.servlet.resourceTypes" value="sling/servlet/default"
- * @scr.property name="sling.servlet.methods" value="POST"
- * @scr.property name="sling.servlet.selectors" value="modifyAce"
+ * @scr.property name="sling.servlet.methods" value="POST"
+ * @scr.property name="sling.servlet.selectors" value="modifyAce"
*/
public class ModifyAceServlet extends AbstractAccessPostServlet {
private static final long serialVersionUID = -9182485466670280437L;
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.