Class RequestData

java.lang.Object
org.apache.sling.engine.impl.request.RequestData

public class RequestData extends Object
The RequestData class provides access to objects which are set on a Servlet Request wide basis such as the repository session, the persistence manager, etc. The setup order is:
  1. Invoke constructor
  2. Invoke initResource()
  3. Invoke initServlet()
See Also:
  • Field Details

    • REQUEST_RESOURCE_PATH_ATTR

      public static final String REQUEST_RESOURCE_PATH_ATTR
      The name of the request attribute providing the resource addressed by the request URL.
      See Also:
  • Constructor Details

    • RequestData

      public RequestData(org.apache.sling.engine.impl.SlingRequestProcessorImpl slingRequestProcessor, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, boolean protectHeadersOnInclude, boolean checkContentTypeOnInclude, boolean disableCheckCompliantGetUserPrincipal)
  • Method Details

    • initResource

      public Resource initResource(ResourceResolver resourceResolver)
    • initServlet

      public void initServlet(Resource resource, ServletResolver sr)
    • getSlingRequestProcessor

      public org.apache.sling.engine.impl.SlingRequestProcessorImpl getSlingRequestProcessor()
    • getServletRequest

      public javax.servlet.http.HttpServletRequest getServletRequest()
    • getServletResponse

      public javax.servlet.http.HttpServletResponse getServletResponse()
    • getSlingRequest

      public SlingHttpServletRequest getSlingRequest()
    • getSlingResponse

      public SlingHttpServletResponse getSlingResponse()
    • getDispatchingInfo

      public DispatchingInfo getDispatchingInfo()
    • setDispatchingInfo

      public void setDispatchingInfo(DispatchingInfo dispatchingInfo)
    • unwrap

      public static SlingHttpServletRequest unwrap(javax.servlet.ServletRequest request)
      Unwraps the ServletRequest to a SlingHttpServletRequest.
      Parameters:
      request - the request
      Returns:
      the unwrapped request
      Throws:
      IllegalArgumentException - If the request is not a SlingHttpServletRequest and not a ServletRequestWrapper wrapping a SlingHttpServletRequest.
    • unwrap

      public static org.apache.sling.engine.impl.SlingHttpServletRequestImpl unwrap(SlingHttpServletRequest request)
      Unwraps the SlingHttpServletRequest to a SlingHttpServletRequestImpl
      Parameters:
      request - the request
      Returns:
      the unwrapped request
      Throws:
      IllegalArgumentException - If request is not a SlingHttpServletRequestImpl and not SlingHttpServletRequestWrapper wrapping a SlingHttpServletRequestImpl.
    • unwrap

      public static SlingHttpServletResponse unwrap(javax.servlet.ServletResponse response)
      Unwraps the ServletRequest to a SlingHttpServletRequest.
      Parameters:
      response - the response
      Returns:
      the unwrapped response
      Throws:
      IllegalArgumentException - If the response is not a SlingHttpServletResponse and not a ServletResponseWrapper wrapping a SlingHttpServletResponse.
    • unwrap

      public static org.apache.sling.engine.impl.SlingHttpServletResponseImpl unwrap(SlingHttpServletResponse response)
      Unwraps a SlingHttpServletResponse to a SlingHttpServletResponseImpl
      Parameters:
      response - the response
      Returns:
      the unwrapped response
      Throws:
      IllegalArgumentException - If response is not a SlingHttpServletResponseImpl and not SlingHttpServletResponseWrapper wrapping a SlingHttpServletResponseImpl.
    • getRequestData

      public static RequestData getRequestData(javax.servlet.ServletRequest request)
      Parameters:
      request - the request
      Returns:
      the request data
      Throws:
      IllegalArgumentException - If the request is not a SlingHttpServletRequest and not a ServletRequestWrapper wrapping a SlingHttpServletRequest.
    • getRequestData

      public static RequestData getRequestData(SlingHttpServletRequest request)
      Parameters:
      request - the request
      Returns:
      the request data
      Throws:
      IllegalArgumentException - If request is not a SlingHttpServletRequestImpl and not SlingHttpServletRequestWrapper wrapping a SlingHttpServletRequestImpl.
    • toSlingHttpServletRequest

      public static SlingHttpServletRequest toSlingHttpServletRequest(javax.servlet.ServletRequest request)
      Parameters:
      request - the request
      Returns:
      the sling http servlet request
      Throws:
      IllegalArgumentException - if request is not a HttpServletRequest of if request is not backed by SlingHttpServletRequestImpl.
    • toSlingHttpServletResponse

      public static SlingHttpServletResponse toSlingHttpServletResponse(javax.servlet.ServletResponse response)
      Parameters:
      response - the response
      Returns:
      the sling http servlet response
      Throws:
      IllegalArgumentException - if response is not a HttpServletResponse of if response is not backed by SlingHttpServletResponseImpl.
    • service

      public static void service(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException, javax.servlet.ServletException
      Helper method to call the servlet for the current content data. If the current content data has no servlet, NOT_FOUND (404) error is sent and the method terminates.

      If the the servlet exists, the SlingConstants.SLING_CURRENT_SERVLET_NAME request attribute is set to the name of that servlet and that servlet name is also set as the currently active servlet. After the termination of the servlet (normal or throwing a Throwable) the request attribute is reset to the previous value. The name of the currently active servlet is only reset to the previous value if the servlet terminates normally. In case of a Throwable, the active servlet name is not reset and indicates which servlet caused the potential abort of the request.

      Parameters:
      request - The request object for the service method
      response - The response object for the service method
      Throws:
      IOException - May be thrown by the servlet's service method
      javax.servlet.ServletException - May be thrown by the servlet's service method
    • setContent

      public ContentData setContent(Resource resource, RequestPathInfo requestPathInfo)
    • resetContent

      public void resetContent(ContentData data)
    • getContentData

      public ContentData getContentData()
    • getResourceResolver

      public ResourceResolver getResourceResolver()
    • getRequestProgressTracker

      public RequestProgressTracker getRequestProgressTracker()
    • getPeakRecusionDepth

      public int getPeakRecusionDepth()
    • getServletCallCount

      public int getServletCallCount()
    • protectHeadersOnInclude

      public boolean protectHeadersOnInclude()
    • checkContentTypeOnInclude

      public boolean checkContentTypeOnInclude()
    • getElapsedTimeMsec

      public long getElapsedTimeMsec()
    • setActiveServletName

      public String setActiveServletName(String servletName)
      Sets the name of the currently active servlet and returns the name of the previously active servlet.
      Parameters:
      servletName - the servlet name
      Returns:
      the previous servlet name
    • getActiveServletName

      public String getActiveServletName()
      Returns the name of the currently active servlet. If this name is not null at the end of request processing, more precisly in the case of an uncaught Throwable at the end of request processing, this is the name of the servlet causing the uncaught Throwable.
      Returns:
      the current servlet name
    • getInputStream

      public javax.servlet.ServletInputStream getInputStream() throws IOException
      Throws:
      IOException
    • getReader

      Throws:
      UnsupportedEncodingException
      IOException
    • getParameterSupport

      public ParameterSupport getParameterSupport()
    • isDisableCheckCompliantGetUserPrincipal

      public boolean isDisableCheckCompliantGetUserPrincipal()
    • logNonCompliantGetUserPrincipalWarning

      public void logNonCompliantGetUserPrincipalWarning()