Class AbstractAccessPostServlet
java.lang.Object
javax.servlet.GenericServlet
org.apache.sling.api.servlets.SlingSafeMethodsServlet
org.apache.sling.api.servlets.SlingAllMethodsServlet
org.apache.sling.jcr.jackrabbit.accessmanager.post.AbstractAccessServlet
org.apache.sling.jcr.jackrabbit.accessmanager.post.AbstractAccessPostServlet
- All Implemented Interfaces:
Serializable
,javax.servlet.Servlet
,javax.servlet.ServletConfig
- Direct Known Subclasses:
DeleteAcesServlet
,ModifyAceServlet
Base class for all the POST servlets for the AccessManager operations
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
Returns whether this operation can operate on paths that do not exist yetprotected void
bindPostResponseCreator
(PostResponseCreator creator, Map<String, Object> properties) Bind a new post response creatorprotected AbstractPostResponse
Deprecated.protected void
doPost
(SlingHttpServletRequest request, SlingHttpServletResponse httpResponse) Called by theSlingAllMethodsServlet.mayService(SlingHttpServletRequest, SlingHttpServletResponse)
method to handle an HTTP POST request.protected String
externalizePath
(SlingHttpServletRequest request, String path) Returns an external form of the given path prepending the context path and appending a display extension.protected javax.jcr.security.AccessControlList
getAccessControlList
(javax.jcr.security.AccessControlManager accessControlManager, String resourcePath, boolean mayCreate) Returns anAccessControlList
to edit for the node at the givenresourcePath
.protected javax.jcr.security.AccessControlList
getAccessControlListOrNull
(javax.jcr.security.AccessControlManager accessControlManager, String resourcePath, boolean mayCreate) Returns anAccessControlList
to edit for the node at the givenresourcePath
.protected String
getItemPath
(SlingHttpServletRequest request) Returns the path of the resource of the request as the item path.protected @Nullable String
getParentPath
(String path) Returns an external form of the parent pathprotected String
getRedirectUrl
(javax.servlet.http.HttpServletRequest request, AbstractPostResponse ctx) Deprecated.usegetRedirectUrl(HttpServletRequest, PostResponse)
insteadprotected String
getRedirectUrl
(javax.servlet.http.HttpServletRequest request, PostResponse ctx) compute redirect URL (SLING-126)protected void
handleOperation
(SlingHttpServletRequest request, AbstractPostResponse response, List<Modification> changes) Deprecated.protected abstract void
handleOperation
(SlingHttpServletRequest request, PostResponse response, List<Modification> changes) Extending Servlet should implement this operation to do the workprotected boolean
isSetStatus
(SlingHttpServletRequest request) protected void
unbindPostResponseCreator
(PostResponseCreator creator, Map<String, Object> properties) Unbind a post response creatorprotected void
validateResourcePath
(javax.jcr.Session jcrSession, String resourcePath) Override if the path does not need to existMethods inherited from class org.apache.sling.jcr.jackrabbit.accessmanager.post.AbstractAccessServlet
bindRestrictionProvider, getRestrictionProvider, unbindRestrictionProvider
Methods inherited from class org.apache.sling.api.servlets.SlingAllMethodsServlet
doDelete, doPut, getAllowedRequestMethods, isMethodValid, mayService
Methods inherited from class org.apache.sling.api.servlets.SlingSafeMethodsServlet
doGeneric, doGet, doHead, doOptions, doTrace, getServletInfo, handleMethodNotImplemented, service, service
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletName, init, init, log, log
-
Constructor Details
-
AbstractAccessPostServlet
public AbstractAccessPostServlet()
-
-
Method Details
-
doPost
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse httpResponse) throws javax.servlet.ServletException, IOException Description copied from class:SlingAllMethodsServlet
Called by theSlingAllMethodsServlet.mayService(SlingHttpServletRequest, SlingHttpServletResponse)
method to handle an HTTP POST request.This default implementation reports back to the client that the method is not supported.
Implementations of this class should overwrite this method with their implementation for the HTTP POST method support.
- Overrides:
doPost
in classSlingAllMethodsServlet
- Parameters:
request
- The HTTP requesthttpResponse
- The HTTP response- Throws:
javax.servlet.ServletException
- Not thrown by this implementation.IOException
- If the error status cannot be reported back to the client.
-
validateResourcePath
protected void validateResourcePath(javax.jcr.Session jcrSession, String resourcePath) throws javax.jcr.RepositoryException Override if the path does not need to exist- Throws:
javax.jcr.RepositoryException
-
createHtmlResponse
Deprecated.usecreatePostResponse(SlingHttpServletRequest)
insteadCreates an instance of a HtmlResponse.- Parameters:
req
- The request being serviced- Returns:
- a
JSONResponse
if any of these conditions are true:- the response content type is application/json
HtmlResponse
otherwise
-
handleOperation
@Deprecated protected void handleOperation(SlingHttpServletRequest request, AbstractPostResponse response, List<Modification> changes) throws javax.jcr.RepositoryException Deprecated.Extending Servlet should implement this operation to do the work- Parameters:
request
- the sling http request to processresponse
- the responsechanges
- the changes to report- Throws:
javax.jcr.RepositoryException
- if any errors applying the changes
-
handleOperation
protected abstract void handleOperation(SlingHttpServletRequest request, PostResponse response, List<Modification> changes) throws javax.jcr.RepositoryException Extending Servlet should implement this operation to do the work- Parameters:
request
- the sling http request to processresponse
- the responsechanges
- the changes to report- Throws:
javax.jcr.RepositoryException
- if any errors applying the changes
-
getRedirectUrl
@Deprecated protected String getRedirectUrl(javax.servlet.http.HttpServletRequest request, AbstractPostResponse ctx) throws IOException Deprecated.usegetRedirectUrl(HttpServletRequest, PostResponse)
insteadcompute redirect URL (SLING-126)- Parameters:
request
- the sling http request to processctx
- the post processor- Returns:
- the redirect location or
null
- Throws:
IOException
- if there is something invalid with the :redirect value
-
getRedirectUrl
protected String getRedirectUrl(javax.servlet.http.HttpServletRequest request, PostResponse ctx) throws IOException compute redirect URL (SLING-126)- Parameters:
request
- the sling http request to processctx
- the post processor- Returns:
- the redirect location or
null
- Throws:
IOException
- if there is something invalid with the :redirect value
-
isSetStatus
-
getItemPath
Returns the path of the resource of the request as the item path.This method may be overwritten by extension if the operation has different requirements on path processing.
- Parameters:
request
- the sling http request to process- Returns:
- the resolved path of the found item
-
externalizePath
Returns an external form of the given path prepending the context path and appending a display extension.- Parameters:
request
- the sling http request to processpath
- the path to externalize- Returns:
- the url
-
allowNonExistingPaths
protected boolean allowNonExistingPaths()Returns whether this operation can operate on paths that do not exist yet- Returns:
- true if the resourcePath must exist, false otherwise
-
getParentPath
Returns an external form of the parent path- Parameters:
path
- the resource path- Returns:
- parent path
-
getAccessControlList
protected javax.jcr.security.AccessControlList getAccessControlList(javax.jcr.security.AccessControlManager accessControlManager, String resourcePath, boolean mayCreate) throws javax.jcr.RepositoryException Returns anAccessControlList
to edit for the node at the givenresourcePath
.- Parameters:
accessControlManager
- The manager providing access control listsresourcePath
- The node path for which to return an access control listmayCreate
-true
if an access control list should be created if the node does not have one yet.- Returns:
- The
AccessControlList
to modify to control access to the node. - Throws:
javax.jcr.RepositoryException
- If the access control manager does not provide aAccessControlPolicy
which is anAccessControlList
.
-
getAccessControlListOrNull
protected javax.jcr.security.AccessControlList getAccessControlListOrNull(javax.jcr.security.AccessControlManager accessControlManager, String resourcePath, boolean mayCreate) throws javax.jcr.RepositoryException Returns anAccessControlList
to edit for the node at the givenresourcePath
.- Parameters:
accessControlManager
- The manager providing access control listsresourcePath
- The node path for which to return an access control listmayCreate
-true
if an access control list should be created if the node does not have one yet.- Returns:
- The
AccessControlList
to modify to control access to the node or null if one could not be located or created - Throws:
javax.jcr.RepositoryException
- if any errors reading the information
-
bindPostResponseCreator
Bind a new post response creator- Parameters:
creator
- the response creator service referenceproperties
- the component properties for the service reference
-
unbindPostResponseCreator
protected void unbindPostResponseCreator(PostResponseCreator creator, Map<String, Object> properties) Unbind a post response creator- Parameters:
creator
- the response creator service referenceproperties
- the component properties for the service reference
-
createPostResponse(SlingHttpServletRequest)
instead