|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectfr.xebia.servlet.filter.SecuredRemoteAddressFilter
public class SecuredRemoteAddressFilter
Sets RequestFacade#isSecure() to true if
ServletRequest.getRemoteAddr() matches one of the
securedRemoteAddresses of this filter.
This filter is often preceded by the XForwardedFilter to get the
remote address of the client even if the request goes through load balancers
(e.g. F5 Big IP, Nortel Alteon) or proxies (e.g. Apache mod_proxy_http)
Configuration parameters:
| XForwardedFilter property | Description | Format | Default value |
|---|---|---|---|
| securedRemoteAddresses | IP addresses for which ServletRequest.isSecure() must return
true |
Comma delimited list of regular expressions (in the syntax supported by
the Pattern library) |
Class A, B and C private network IP address blocks : 10\.\d{1,3}\.\d{1,3}\.\d{1,3}, 192\.168\.\d{1,3}\.\d{1,3}, 172\\.(?:1[6-9]|2\\d|3[0-1]).\\d{1,3}.\\d{1,3}, 169\.254\.\d{1,3}\.\d{1,3}, 127\.\d{1,3}\.\d{1,3}\.\d{1,3} |
Sample with secured remote addresses limited to 192.168.0.10 and 192.168.0.11
SecuredRemoteAddressFilter configuration sample :
<filter>
<filter-name>SecuredRemoteAddressFilter</filter-name>
<filter-class>fr.xebia.servlet.filter.SecuredRemoteAddressFilter</filter-class>
<init-param>
<param-name>securedRemoteAddresses</param-name><param-value>192\.168\.0\.10, 192\.168\.0\.11</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SecuredRemoteAddressFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
A request with
will be seen as ServletRequest.getRemoteAddr() = 192.168.0.10 or 192.168.0.11 even if
ServletRequest.isSecure() == true.
ServletRequest.getScheme() == "http"
| Field Summary | |
|---|---|
protected static String |
SECURED_REMOTE_ADDRESSES_PARAMETER
|
| Constructor Summary | |
|---|---|
SecuredRemoteAddressFilter()
|
|
| Method Summary | |
|---|---|
protected static Pattern[] |
commaDelimitedListToPatternArray(String commaDelimitedPatterns)
Convert a given comma delimited list of regular expressions into an array of compiled Pattern |
protected static String[] |
commaDelimitedListToStringArray(String commaDelimitedStrings)
Convert a given comma delimited list of regular expressions into an array of String |
void |
destroy()
Nothing to do. |
void |
doFilter(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain chain)
If incoming remote address matches one of the declared IP pattern, wraps the incoming HttpServletRequest to override
ServletRequest.isSecure() to set it to true. |
void |
init(javax.servlet.FilterConfig filterConfig)
Compile the secured remote addresses patterns. |
protected static boolean |
matchesOne(String str,
Pattern... patterns)
Return true if the given str matches at least
one of the given patterns. |
void |
setSecuredRemoteAdresses(String comaDelimitedSecuredRemoteAddresses)
Comma delimited list of secured remote addresses. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final String SECURED_REMOTE_ADDRESSES_PARAMETER
| Constructor Detail |
|---|
public SecuredRemoteAddressFilter()
| Method Detail |
|---|
protected static Pattern[] commaDelimitedListToPatternArray(String commaDelimitedPatterns)
Pattern
protected static String[] commaDelimitedListToStringArray(String commaDelimitedStrings)
protected static boolean matchesOne(String str,
Pattern... patterns)
true if the given str matches at least
one of the given patterns.
public void destroy()
destroy in interface javax.servlet.Filter
public void doFilter(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain chain)
throws IOException,
javax.servlet.ServletException
HttpServletRequest to override
ServletRequest.isSecure() to set it to true.
doFilter in interface javax.servlet.FilterIOException
javax.servlet.ServletException
public void init(javax.servlet.FilterConfig filterConfig)
throws javax.servlet.ServletException
init in interface javax.servlet.Filterjavax.servlet.ServletExceptionpublic void setSecuredRemoteAdresses(String comaDelimitedSecuredRemoteAddresses)
Comma delimited list of secured remote addresses. Expressed with regular expressions.
Default value : 10\.\d{1,3}\.\d{1,3}\.\d{1,3}, 192\.168\.\d{1,3}\.\d{1,3}, 172\\.(?:1[6-9]|2\\d|3[0-1]).\\d{1,3}.\\d{1,3}, 169\.254\.\d{1,3}\.\d{1,3}, 127\.\d{1,3}\.\d{1,3}\.\d{1,3}
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||