Package org.apache.sling.api.wrappers

# Class SlingJakartaHttpServletRequestWrapper

java.lang.Object
jakarta.servlet.ServletRequestWrapper
jakarta.servlet.http.HttpServletRequestWrapper
org.apache.sling.api.wrappers.SlingJakartaHttpServletRequestWrapper

All Implemented Interfaces:
  `jakarta.servlet.http.HttpServletRequest`, `jakarta.servlet.ServletRequest`, `Adaptable`, `SlingJakartaHttpServletRequest`

public class SlingJakartaHttpServletRequestWrapper extends jakarta.servlet.http.HttpServletRequestWrapper implements SlingJakartaHttpServletRequest
The `SlingJakartaHttpServletRequestWrapper` class is a default wrapper class around a `SlingJakartaHttpServletRequest` which may be extended to amend the functionality of the original request object.

Since:
  2.9.0

## Field Summary

### Fields inherited from interface jakarta.servlet.http.HttpServletRequest

`BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH`

## Constructor Summary

Constructors
Constructor
Description
`SlingJakartaHttpServletRequestWrapper(SlingJakartaHttpServletRequest wrappedRequest)`
Create a wrapper for the supplied wrappedRequest

## Method Summary

Modifier and Type
Method
Description
`<AdapterType>
AdapterType`
`adaptTo(Class<AdapterType> type)`
Adapts the adaptable to another type.
`jakarta.servlet.http.Cookie`
`getCookie(String name)`
Returns the named cookie from the HTTP request or `null` if no such cookie exists in the request.
`jakarta.servlet.RequestDispatcher`
`getRequestDispatcher(String path, RequestDispatcherOptions options)`
Returns a `RequestDispatcher` object that acts as a wrapper for the resource located at the given path.
`jakarta.servlet.RequestDispatcher`
`getRequestDispatcher(Resource resource)`
Same as `SlingJakartaHttpServletRequest.getRequestDispatcher(Resource,RequestDispatcherOptions)` but using empty options.
`jakarta.servlet.RequestDispatcher`
`getRequestDispatcher(Resource resource, RequestDispatcherOptions options)`
Returns a `RequestDispatcher` object that acts as a wrapper for the resource located at the given resource.
`RequestParameter`
`getRequestParameter(String name)`
Returns the value of a request parameter as a `RequestParameter`, or `null` if the parameter does not exist.
`List<RequestParameter>`
`getRequestParameterList()`
Returns the request parameters as instances of the `RequestParameter` interface in the order or the request where the query string parameters are first and the POST request parameters are second.
`RequestParameterMap`
`getRequestParameterMap()`
Returns a `Map` of the parameters of this request.
`RequestParameter[]`
`getRequestParameters(String name)`
Returns an array of `RequestParameter` objects containing all of the values the given request parameter has, or `null` if the parameter does not exist.
`RequestPathInfo`
`getRequestPathInfo()`
Returns the `RequestPathInfo` pertaining to this request.
`RequestProgressTracker`
`getRequestProgressTracker()`
Returns the `RequestProgressTracker` of this request.
`Resource`
`getResource()`
Returns the `Resource` object on whose behalf the servlet acts.
`ResourceBundle`
`getResourceBundle(String baseName, Locale locale)`
Returns the resource bundle of the given base name for the given locale.
`ResourceBundle`
`getResourceBundle(Locale locale)`
Returns the resource bundle for the given locale.
`ResourceResolver`
`getResourceResolver()`
Returns the `ResourceResolver` which resolved the `resource` of this request.
`String`
`getResponseContentType()`
Returns the framework preferred content type for the response.
`Enumeration<String>`
`getResponseContentTypes()`
Gets a list of content types which the framework accepts for the response.
`SlingJakartaHttpServletRequest`
`getSlingRequest()`
Return the original `SlingJakartaHttpServletRequest` object wrapped by this.

### Methods inherited from class jakarta.servlet.http.HttpServletRequestWrapper

`authenticate, changeSessionId, getAuthType, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getHttpServletMapping, getIntHeader, getMethod, getPart, getParts, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getTrailerFields, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isTrailerFieldsReady, isUserInRole, login, logout, newPushBuilder, upgrade`

### Methods inherited from class jakarta.servlet.ServletRequestWrapper

`getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getProtocolRequestId, getReader, getRemoteAddr, getRemoteHost, getRemotePort, getRequest, getRequestDispatcher, getRequestId, getScheme, getServerName, getServerPort, getServletConnection, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, isWrapperFor, isWrapperFor, removeAttribute, setAttribute, setCharacterEncoding, setCharacterEncoding, setRequest, startAsync, startAsync`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface jakarta.servlet.http.HttpServletRequest

`authenticate, changeSessionId, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getHttpServletMapping, getIntHeader, getMethod, getPart, getParts, getPathInfo, getPathTranslated, getQueryString, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getTrailerFields, isRequestedSessionIdFromCookie, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isTrailerFieldsReady, isUserInRole, login, logout, newPushBuilder, upgrade`

### Methods inherited from interface jakarta.servlet.ServletRequest

`getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getProtocolRequestId, getReader, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getRequestId, getScheme, getServerName, getServerPort, getServletConnection, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, removeAttribute, setAttribute, setCharacterEncoding, setCharacterEncoding, startAsync, startAsync`

### Methods inherited from interface org.apache.sling.api.SlingJakartaHttpServletRequest

`getAuthType, getRemoteUser, getUserPrincipal`

## Constructor Details

### SlingJakartaHttpServletRequestWrapper

public SlingJakartaHttpServletRequestWrapper(SlingJakartaHttpServletRequest wrappedRequest)
Create a wrapper for the supplied wrappedRequest

Parameters:
  `wrappedRequest` - The request.

## Method Details

### getSlingRequest

public SlingJakartaHttpServletRequest getSlingRequest()
Return the original `SlingJakartaHttpServletRequest` object wrapped by this.

Returns:
  The wrapped request.

### getCookie

public jakarta.servlet.http.Cookie getCookie(String name)
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns the named cookie from the HTTP request or `null` if no such cookie exists in the request.

Specified by:
  `getCookie` in interface `SlingJakartaHttpServletRequest`
Parameters:
  `name` - The name of the cookie to return.
Returns:
  The named cookie or `null` if no such cookie exists.

### getRequestProgressTracker

public RequestProgressTracker getRequestProgressTracker()
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns the `RequestProgressTracker` of this request.

Specified by:
  `getRequestProgressTracker` in interface `SlingJakartaHttpServletRequest`
Returns:
  The request progress tracker.

### getRequestDispatcher

public jakarta.servlet.RequestDispatcher getRequestDispatcher(Resource resource)
Description copied from interface: `SlingJakartaHttpServletRequest`
Same as `SlingJakartaHttpServletRequest.getRequestDispatcher(Resource,RequestDispatcherOptions)` but using empty options.

Specified by:
  `getRequestDispatcher` in interface `SlingJakartaHttpServletRequest`
Parameters:
  `resource` - The `Resource` instance whose response content may be included by the returned dispatcher.
Returns:
  a `RequestDispatcher` object that acts as a wrapper for the `resource` or `null` if an error occurs preparing the dispatcher.

### getRequestDispatcher

public jakarta.servlet.RequestDispatcher getRequestDispatcher(Resource resource, RequestDispatcherOptions options)
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns a `RequestDispatcher` object that acts as a wrapper for the resource located at the given resource. A `RequestDispatcher` object can be used to include the resource in a response.

Returns `null` if a `RequestDispatcher` cannot be returned for any reason.

Specified by:
  `getRequestDispatcher` in interface `SlingJakartaHttpServletRequest`
Parameters:
  `resource` - The `Resource` instance whose response content may be included by the returned dispatcher.
  `options` - influence the rendering of the included Resource
Returns:
  a `RequestDispatcher` object that acts as a wrapper for the `resource` or `null` if an error occurs preparing the dispatcher.

### getRequestDispatcher

public jakarta.servlet.RequestDispatcher getRequestDispatcher(String path, RequestDispatcherOptions options)
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns a `RequestDispatcher` object that acts as a wrapper for the resource located at the given path. A `RequestDispatcher` object can be used to include the resource in a response.

Returns `null` if a `RequestDispatcher` cannot be returned for any reason.

Specified by:
  `getRequestDispatcher` in interface `SlingJakartaHttpServletRequest`
Parameters:
  `path` - a `String` specifying the pathname to the resource. If it is relative, it must be relative against the current servlet.
  `options` - influence the rendering of the included Resource
Returns:
  a `RequestDispatcher` object that acts as a wrapper for the `resource` or `null` if an error occurs preparing the dispatcher.

### getRequestParameter

public RequestParameter getRequestParameter(String name)
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns the value of a request parameter as a `RequestParameter`, or `null` if the parameter does not exist.

This method should only be used if the parameter has only one value. If the parameter might have more than one value, use `SlingJakartaHttpServletRequest.getRequestParameters(String)`.

If this method is used with a multivalued parameter, the value returned is equal to the first value in the array returned by `getRequestParameters`.

This method is a shortcut for `getRequestParameterMap().getValue(String)`.

Specified by:
  `getRequestParameter` in interface `SlingJakartaHttpServletRequest`
Parameters:
  `name` - a `String` specifying the name of the parameter
Returns:
  a `RequestParameter` representing the single value of the parameter
See Also:
  - `SlingJakartaHttpServletRequest.getRequestParameters(String)`
  - `RequestParameterMap.getValue(String)`

### getRequestParameterMap

public RequestParameterMap getRequestParameterMap()
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns a `Map` of the parameters of this request.

The values in the returned `Map` are from type `RequestParameter` array (`RequestParameter[]`).

If no parameters exist this method returns an empty `Map`.

Specified by:
  `getRequestParameterMap` in interface `SlingJakartaHttpServletRequest`
Returns:
  an immutable `Map` containing parameter names as keys and parameter values as map values, or an empty `Map` if no parameters exist. The keys in the parameter map are of type String. The values in the parameter map are of type `RequestParameter` array (`RequestParameter[]`).

### getRequestParameterList

public List<RequestParameter> getRequestParameterList()
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns the request parameters as instances of the `RequestParameter` interface in the order or the request where the query string parameters are first and the POST request parameters are second.

Specified by:
  `getRequestParameterList` in interface `SlingJakartaHttpServletRequest`
Returns:
  The list of `RequestParameter` in request declaration order.

### getRequestParameters

public RequestParameter[] getRequestParameters(String name)
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns an array of `RequestParameter` objects containing all of the values the given request parameter has, or `null` if the parameter does not exist.

If the parameter has a single value, the array has a length of 1.

This method is a shortcut for `getRequestParameterMap().getValues(String)`.

Specified by:
  `getRequestParameters` in interface `SlingJakartaHttpServletRequest`
Parameters:
  `name` - a `String` containing the name of the parameter the value of which is requested
Returns:
  an array of `RequestParameter` objects containing the parameter values.
See Also:
  - `SlingJakartaHttpServletRequest.getRequestParameter(String)`
  - `RequestParameterMap.getValues(String)`

### getRequestPathInfo

public RequestPathInfo getRequestPathInfo()
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns the `RequestPathInfo` pertaining to this request.

Specified by:
  `getRequestPathInfo` in interface `SlingJakartaHttpServletRequest`
Returns:
  the request path info.

### getResource

public Resource getResource()
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns the `Resource` object on whose behalf the servlet acts.

Specified by:
  `getResource` in interface `SlingJakartaHttpServletRequest`
Returns:
  The `Resource` object of this request.

### getResourceResolver

public ResourceResolver getResourceResolver()
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns the `ResourceResolver` which resolved the `resource` of this request.

Specified by:
  `getResourceResolver` in interface `SlingJakartaHttpServletRequest`
Returns:
  The resource resolver

### getResourceBundle

public ResourceBundle getResourceBundle(Locale locale)
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns the resource bundle for the given locale.

Specified by:
  `getResourceBundle` in interface `SlingJakartaHttpServletRequest`
Parameters:
  `locale` - the locale for which to retrieve the resource bundle. If this is `null`, the locale returned by `ServletRequest.getLocale()` is used to select the resource bundle.
Returns:
  the resource bundle for the given locale

### getResourceBundle

public ResourceBundle getResourceBundle(String baseName, Locale locale)
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns the resource bundle of the given base name for the given locale.

Specified by:
  `getResourceBundle` in interface `SlingJakartaHttpServletRequest`
Parameters:
  `baseName` - The base name of the resource bundle to returned. If this parameter is `null`, the same resource bundle must be returned as if the `SlingJakartaHttpServletRequest.getResourceBundle(Locale)` method is called.
  `locale` - the locale for which to retrieve the resource bundle. If this is `null`, the locale returned by `ServletRequest.getLocale()` is used to select the resource bundle.
Returns:
  the resource bundle for the given locale

### getResponseContentType

public String getResponseContentType()
Description copied from interface: `SlingJakartaHttpServletRequest`
Returns the framework preferred content type for the response. The content type only includes the MIME type, not the character set.

For included resources this method will returned the same string as returned by the `ServletResponse.getContentType()` without the character set.

Specified by:
  `getResponseContentType` in interface `SlingJakartaHttpServletRequest`
Returns:
  preferred MIME type of the response

### getResponseContentTypes

public Enumeration<String> getResponseContentTypes()
Description copied from interface: `SlingJakartaHttpServletRequest`
Gets a list of content types which the framework accepts for the response. This list is ordered with the most preferable types listed first. The content type only includes the MIME type, not the character set.

For included resources this method will returned an enumeration containing a single entry which is the same string as returned by the `ServletResponse.getContentType()` without the character set.

Specified by:
  `getResponseContentTypes` in interface `SlingJakartaHttpServletRequest`
Returns:
  ordered list of MIME types for the response

### adaptTo

public <AdapterType> AdapterType adaptTo(Class<AdapterType> type)
Description copied from interface: `Adaptable`
Adapts the adaptable to another type.

Please note that it is explicitly left as an implementation detail whether each call to this method with the same `type` yields the same object or a new object on each call.

Implementations of this method should document their adapted types as well as their behaviour with respect to returning newly created or same instances on each call.

Specified by:
  `adaptTo` in interface `Adaptable`
Type Parameters:
  `AdapterType` - The generic type to which this object is adapted to
Parameters:
  `type` - The Class object of the target type, such as `javax.jcr.Node.class` or `java.io.File.class`
Returns:
  The adapter target or `null` if the object cannot adapt to the requested type