Package org.apache.catalina.filters

## Class RemoteIpFilter.XForwardedRequest

- java.lang.Object
- - javax.servlet.ServletRequestWrapper
  - - javax.servlet.http.HttpServletRequestWrapper
    - - org.apache.catalina.filters.RemoteIpFilter.XForwardedRequest

All Implemented Interfaces:
  `HttpServletRequest`, `ServletRequest`

Enclosing class:
  RemoteIpFilter

    public static class RemoteIpFilter.XForwardedRequest
    extends HttpServletRequestWrapper

### Field Summary

Fields
`protected java.util.Map<java.lang.String,​java.util.List<java.lang.String>>` `headers`
`protected java.lang.String` `localName`
`protected int` `localPort`
`protected java.lang.String` `remoteAddr`
`protected java.lang.String` `remoteHost`
`protected java.lang.String` `scheme`
`protected boolean` `secure`
`protected java.lang.String` `serverName`
`protected int` `serverPort`

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

`BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH`

### Constructor Summary

Constructors
`XForwardedRequest​(HttpServletRequest request)`

### Method Summary

All Methods Instance Methods Concrete Methods
`long` `getDateHeader​(java.lang.String name)` The default behavior of this method is to return getDateHeader(String name) on the wrapped request object.
`java.lang.String` `getHeader​(java.lang.String name)` The default behavior of this method is to return getHeader(String name) on the wrapped request object.
`protected java.util.Map.Entry<java.lang.String,​java.util.List<java.lang.String>>` `getHeaderEntry​(java.lang.String name)`
`java.util.Enumeration<java.lang.String>` `getHeaderNames()` The default behavior of this method is to return getHeaderNames() on the wrapped request object.
`java.util.Enumeration<java.lang.String>` `getHeaders​(java.lang.String name)` The default behavior of this method is to return getHeaders(String name) on the wrapped request object.
`int` `getIntHeader​(java.lang.String name)` The default behavior of this method is to return getIntHeader(String name) on the wrapped request object.
`java.lang.String` `getLocalName()` The default behavior of this method is to return getLocalName() on the wrapped request object.
`int` `getLocalPort()` The default behavior of this method is to return getLocalPort() on the wrapped request object.
`java.lang.String` `getRemoteAddr()` The default behavior of this method is to return getRemoteAddr() on the wrapped request object.
`java.lang.String` `getRemoteHost()` The default behavior of this method is to return getRemoteHost() on the wrapped request object.
`java.lang.StringBuffer` `getRequestURL()` The default behavior of this method is to return getRequestURL() on the wrapped request object.
`java.lang.String` `getScheme()` The default behavior of this method is to return getScheme() on the wrapped request object.
`java.lang.String` `getServerName()` The default behavior of this method is to return getServerName() on the wrapped request object.
`int` `getServerPort()` The default behavior of this method is to return getServerPort() on the wrapped request object.
`void` `removeHeader​(java.lang.String name)`
`void` `setHeader​(java.lang.String name, java.lang.String value)`
`void` `setLocalName​(java.lang.String localName)`
`void` `setLocalPort​(int localPort)`
`void` `setRemoteAddr​(java.lang.String remoteAddr)`
`void` `setRemoteHost​(java.lang.String remoteHost)`
`void` `setScheme​(java.lang.String scheme)`
`void` `setSecure​(boolean secure)`
`void` `setServerName​(java.lang.String serverName)`
`void` `setServerPort​(int serverPort)`

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

`authenticate, changeSessionId, getAuthType, getContextPath, getCookies, getMethod, getPart, getParts, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getServletPath, getSession, getSession, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromUrl, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isUserInRole, login, logout, upgrade`

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

`getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getReader, getRealPath, getRemotePort, getRequest, getRequestDispatcher, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, isWrapperFor, isWrapperFor, removeAttribute, setAttribute, 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 javax.servlet.ServletRequest

`getAsyncContext, getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getReader, getRealPath, getRemotePort, getRequestDispatcher, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, removeAttribute, setAttribute, setCharacterEncoding, startAsync, startAsync`

### Field Detail

#### headers

    protected final java.util.Map<java.lang.String,​java.util.List<java.lang.String>> headers

#### localName

    protected java.lang.String localName

#### localPort

    protected int localPort

#### remoteAddr

    protected java.lang.String remoteAddr

#### remoteHost

    protected java.lang.String remoteHost

#### scheme

    protected java.lang.String scheme

#### secure

    protected boolean secure

#### serverName

    protected java.lang.String serverName

#### serverPort

    protected int serverPort

### Constructor Detail

#### XForwardedRequest

    public XForwardedRequest​(HttpServletRequest request)

### Method Detail

#### getDateHeader

    public long getDateHeader​(java.lang.String name)

Description copied from class: `javax.servlet.http.HttpServletRequestWrapper`
The default behavior of this method is to return getDateHeader(String name) on the wrapped request object.

Specified by:
  `getDateHeader` in interface `HttpServletRequest`
Overrides:
  `getDateHeader` in class `HttpServletRequestWrapper`
Parameters:
  `name` - a `String` specifying the name of the header
Returns:
  a `long` value representing the date specified in the header expressed as the number of milliseconds since January 1, 1970 GMT, or -1 if the named header was not included with the request

#### getHeader

    public java.lang.String getHeader​(java.lang.String name)

Description copied from class: `javax.servlet.http.HttpServletRequestWrapper`
The default behavior of this method is to return getHeader(String name) on the wrapped request object.

Specified by:
  `getHeader` in interface `HttpServletRequest`
Overrides:
  `getHeader` in class `HttpServletRequestWrapper`
Parameters:
  `name` - a `String` specifying the header name
Returns:
  a `String` containing the value of the requested header, or `null` if the request does not have a header of that name

#### getHeaderEntry

    protected java.util.Map.Entry<java.lang.String,​java.util.List<java.lang.String>> getHeaderEntry​(java.lang.String name)

#### getHeaderNames

    public java.util.Enumeration<java.lang.String> getHeaderNames()

Description copied from class: `javax.servlet.http.HttpServletRequestWrapper`
The default behavior of this method is to return getHeaderNames() on the wrapped request object.

Specified by:
  `getHeaderNames` in interface `HttpServletRequest`
Overrides:
  `getHeaderNames` in class `HttpServletRequestWrapper`
Returns:
  an enumeration of all the header names sent with this request; if the request has no headers, an empty enumeration; if the servlet container does not allow servlets to use this method, `null`

#### getHeaders

    public java.util.Enumeration<java.lang.String> getHeaders​(java.lang.String name)

Description copied from class: `javax.servlet.http.HttpServletRequestWrapper`
The default behavior of this method is to return getHeaders(String name) on the wrapped request object.

Specified by:
  `getHeaders` in interface `HttpServletRequest`
Overrides:
  `getHeaders` in class `HttpServletRequestWrapper`
Parameters:
  `name` - a `String` specifying the header name
Returns:
  an `Enumeration` containing the values of the requested header. If the request does not have any headers of that name return an empty enumeration. If the container does not allow access to header information, return null

#### getIntHeader

    public int getIntHeader​(java.lang.String name)

Description copied from class: `javax.servlet.http.HttpServletRequestWrapper`
The default behavior of this method is to return getIntHeader(String name) on the wrapped request object.

Specified by:
  `getIntHeader` in interface `HttpServletRequest`
Overrides:
  `getIntHeader` in class `HttpServletRequestWrapper`
Parameters:
  `name` - a `String` specifying the name of a request header
Returns:
  an integer expressing the value of the request header or -1 if the request doesn't have a header of this name

#### getLocalName

    public java.lang.String getLocalName()

Description copied from class: `javax.servlet.ServletRequestWrapper`
The default behavior of this method is to return getLocalName() on the wrapped request object.

Specified by:
  `getLocalName` in interface `ServletRequest`
Overrides:
  `getLocalName` in class `ServletRequestWrapper`
Returns:
  a `String` containing the host name of the IP on which the request was received.

#### getLocalPort

    public int getLocalPort()

Description copied from class: `javax.servlet.ServletRequestWrapper`
The default behavior of this method is to return getLocalPort() on the wrapped request object.

Specified by:
  `getLocalPort` in interface `ServletRequest`
Overrides:
  `getLocalPort` in class `ServletRequestWrapper`
Returns:
  an integer specifying the port number

#### getRemoteAddr

    public java.lang.String getRemoteAddr()

Description copied from class: `javax.servlet.ServletRequestWrapper`
The default behavior of this method is to return getRemoteAddr() on the wrapped request object.

Specified by:
  `getRemoteAddr` in interface `ServletRequest`
Overrides:
  `getRemoteAddr` in class `ServletRequestWrapper`
Returns:
  a `String` containing the IP address of the client that sent the request

#### getRemoteHost

    public java.lang.String getRemoteHost()

Description copied from class: `javax.servlet.ServletRequestWrapper`
The default behavior of this method is to return getRemoteHost() on the wrapped request object.

Specified by:
  `getRemoteHost` in interface `ServletRequest`
Overrides:
  `getRemoteHost` in class `ServletRequestWrapper`
Returns:
  a `String` containing the fully qualified name of the client

#### getScheme

    public java.lang.String getScheme()

Description copied from class: `javax.servlet.ServletRequestWrapper`
The default behavior of this method is to return getScheme() on the wrapped request object.

Specified by:
  `getScheme` in interface `ServletRequest`
Overrides:
  `getScheme` in class `ServletRequestWrapper`
Returns:
  a `String` containing the name of the scheme used to make this request

#### getServerName

    public java.lang.String getServerName()

Description copied from class: `javax.servlet.ServletRequestWrapper`
The default behavior of this method is to return getServerName() on the wrapped request object.

Specified by:
  `getServerName` in interface `ServletRequest`
Overrides:
  `getServerName` in class `ServletRequestWrapper`
Returns:
  a `String` containing the name of the server

#### getServerPort

    public int getServerPort()

Description copied from class: `javax.servlet.ServletRequestWrapper`
The default behavior of this method is to return getServerPort() on the wrapped request object.

Specified by:
  `getServerPort` in interface `ServletRequest`
Overrides:
  `getServerPort` in class `ServletRequestWrapper`
Returns:
  an integer specifying the port number

#### removeHeader

    public void removeHeader​(java.lang.String name)

#### setHeader

    public void setHeader​(java.lang.String name,
                          java.lang.String value)

#### setLocalName

    public void setLocalName​(java.lang.String localName)

#### setLocalPort

    public void setLocalPort​(int localPort)

#### setRemoteAddr

    public void setRemoteAddr​(java.lang.String remoteAddr)

#### setRemoteHost

    public void setRemoteHost​(java.lang.String remoteHost)

#### setScheme

    public void setScheme​(java.lang.String scheme)

#### setSecure

    public void setSecure​(boolean secure)

#### setServerName

    public void setServerName​(java.lang.String serverName)

#### setServerPort

    public void setServerPort​(int serverPort)

#### getRequestURL

    public java.lang.StringBuffer getRequestURL()

Description copied from class: `javax.servlet.http.HttpServletRequestWrapper`
The default behavior of this method is to return getRequestURL() on the wrapped request object.

Specified by:
  `getRequestURL` in interface `HttpServletRequest`
Overrides:
  `getRequestURL` in class `HttpServletRequestWrapper`
Returns:
  a `StringBuffer` object containing the reconstructed URL