Package org.eclipse.jetty.server
Class ForwardedRequestCustomizer
- java.lang.Object
-
- org.eclipse.jetty.server.ForwardedRequestCustomizer
-
- All Implemented Interfaces:
HttpConfiguration.Customizer
public class ForwardedRequestCustomizer extends Object implements HttpConfiguration.Customizer
Customize Requests for Proxy Forwarding.This customizer looks at at HTTP request for headers that indicate it has been forwarded by one or more proxies. Specifically handled are
Forwarded, as defined by rfc7239X-Forwarded-HostX-Forwarded-ServerX-Forwarded-ForX-Forwarded-ProtoX-Proxied-Https
If these headers are present, then the
Requestobject is updated so that the proxy is not seen as the other end point of the connection on which the request cameHeaders can also be defined so that forwarded SSL Session IDs and Cipher suites may be customised
- See Also:
- Wikipedia: X-Forwarded-For
-
-
Constructor Summary
Constructors Constructor Description ForwardedRequestCustomizer()
-
Method Summary
-
-
-
Method Detail
-
getProxyAsAuthority
public boolean getProxyAsAuthority()
- Returns:
- true if the proxy address obtained via
X-Forwarded-Serveror RFC7239 "by" is used as the request authority. Default false
-
setProxyAsAuthority
public void setProxyAsAuthority(boolean proxyAsAuthority)
- Parameters:
proxyAsAuthority- if true, use the proxy address obtained viaX-Forwarded-Serveror RFC7239 "by" as the request authority.
-
setForwardedOnly
public void setForwardedOnly(boolean rfc7239only)
- Parameters:
rfc7239only- Configure to only support the RFC7239 Forwarded header and to not support anyX-Forwarded-headers. This convenience method clears all the non RFC headers if passed true and sets them to the default values (if not already set) if passed false.
-
getForcedHost
public String getForcedHost()
-
setForcedHost
public void setForcedHost(String hostAndPort)
Set a forced valued for the host header to control what is returned byServletRequest.getServerName()andServletRequest.getServerPort().- Parameters:
hostAndPort- The value of the host header to force.
-
getForwardedHeader
public String getForwardedHeader()
- Returns:
- The header name for RFC forwarded (default Forwarded)
-
setForwardedHeader
public void setForwardedHeader(String forwardedHeader)
- Parameters:
forwardedHeader- The header name for RFC forwarded (default Forwarded)
-
getForwardedHostHeader
public String getForwardedHostHeader()
-
setForwardedHostHeader
public void setForwardedHostHeader(String forwardedHostHeader)
- Parameters:
forwardedHostHeader- The header name for forwarded hosts (defaultX-Forwarded-Host)
-
getForwardedServerHeader
public String getForwardedServerHeader()
- Returns:
- the header name for forwarded server.
-
setForwardedServerHeader
public void setForwardedServerHeader(String forwardedServerHeader)
- Parameters:
forwardedServerHeader- The header name for forwarded server (defaultX-Forwarded-Server)
-
getForwardedForHeader
public String getForwardedForHeader()
- Returns:
- the forwarded for header
-
setForwardedForHeader
public void setForwardedForHeader(String forwardedRemoteAddressHeader)
- Parameters:
forwardedRemoteAddressHeader- The header name for forwarded for (defaultX-Forwarded-For)
-
getForwardedProtoHeader
public String getForwardedProtoHeader()
Get the forwardedProtoHeader.- Returns:
- the forwardedProtoHeader (default
X-Forwarded-Proto)
-
setForwardedProtoHeader
public void setForwardedProtoHeader(String forwardedProtoHeader)
Set the forwardedProtoHeader.- Parameters:
forwardedProtoHeader- the forwardedProtoHeader to set (defaultX-Forwarded-Proto)
-
getForwardedCipherSuiteHeader
public String getForwardedCipherSuiteHeader()
- Returns:
- The header name holding a forwarded cipher suite (default
Proxy-auth-cert)
-
setForwardedCipherSuiteHeader
public void setForwardedCipherSuiteHeader(String forwardedCipherSuite)
- Parameters:
forwardedCipherSuite- The header name holding a forwarded cipher suite (defaultProxy-auth-cert)
-
getForwardedSslSessionIdHeader
public String getForwardedSslSessionIdHeader()
- Returns:
- The header name holding a forwarded SSL Session ID (default
Proxy-ssl-id)
-
setForwardedSslSessionIdHeader
public void setForwardedSslSessionIdHeader(String forwardedSslSessionId)
- Parameters:
forwardedSslSessionId- The header name holding a forwarded SSL Session ID (defaultProxy-ssl-id)
-
getForwardedHttpsHeader
public String getForwardedHttpsHeader()
- Returns:
- The header name holding a forwarded Https status indicator (on|off true|false) (default
X-Proxied-Https)
-
setForwardedHttpsHeader
public void setForwardedHttpsHeader(String forwardedHttpsHeader)
- Parameters:
forwardedHttpsHeader- the header name holding a forwarded Https status indicator(defaultX-Proxied-Https)
-
isSslIsSecure
public boolean isSslIsSecure()
- Returns:
- true if the presence of a SSL session or certificate header is sufficient to indicate a secure request (default is true)
-
setSslIsSecure
public void setSslIsSecure(boolean sslIsSecure)
- Parameters:
sslIsSecure- true if the presence of a SSL session or certificate header is sufficient to indicate a secure request (default is true)
-
customize
public void customize(Connector connector, HttpConfiguration config, Request request)
- Specified by:
customizein interfaceHttpConfiguration.Customizer
-
getHostHeader
@Deprecated public String getHostHeader()
Deprecated.
-
setHostHeader
@Deprecated public void setHostHeader(String hostHeader)
Deprecated.Set a forced valued for the host header to control what is returned byServletRequest.getServerName()andServletRequest.getServerPort().- Parameters:
hostHeader- The value of the host header to force.
-
-