You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2010/11/28 20:18:02 UTC
svn commit: r1039923 -
/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/
Author: jdonnerstag
Date: Sun Nov 28 19:18:01 2010
New Revision: 1039923
URL: http://svn.apache.org/viewvc?rev=1039923&view=rev
Log:
WICKET-3015 some more changes
Issue: WICKET-3015
Added:
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/SecuredRemoteAddressRequestWrapperFactory.java
- copied, changed from r1039920, wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/SecuredRemoteAddressRequestWrapper.java
Removed:
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/IRequestWrapperFactory.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/SecuredRemoteAddressRequestWrapper.java
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/AbstractRequestWrapperFactory.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/XForwardedRequestWrapperFactory.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/AbstractRequestWrapperFactory.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/AbstractRequestWrapperFactory.java?rev=1039923&r1=1039922&r2=1039923&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/AbstractRequestWrapperFactory.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/AbstractRequestWrapperFactory.java Sun Nov 28 19:18:01 2010
@@ -28,9 +28,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
+ * Abstract base class for HttpServletRequestWrapper
+ *
* @author Juergen Donnerstag
*/
-public abstract class AbstractRequestWrapperFactory implements IRequestWrapperFactory
+public abstract class AbstractRequestWrapperFactory
{
/** Logger */
private static final Logger log = LoggerFactory.getLogger(AbstractRequestWrapperFactory.class);
@@ -62,29 +64,28 @@ public abstract class AbstractRequestWra
}
/**
- * @see org.apache.wicket.protocol.http.servlet.IRequestWrapperFactory#getWrapper(javax.servlet.HttpServletRequest)
+ * @param request
+ * @return Either return the request itself, or if needed a wrapper for the request
*/
- public HttpServletRequest getWrapper(final HttpServletRequest servletRequest)
+ public HttpServletRequest getWrapper(final HttpServletRequest request)
{
- HttpServletRequest xRequest = servletRequest;
- if (isEnabled() && needsWrapper(servletRequest))
+ HttpServletRequest xRequest = request;
+ if (isEnabled() && needsWrapper(request))
{
- return newRequestWrapper(servletRequest);
+ return newRequestWrapper(request);
}
return xRequest;
}
/**
- *
* @param request
* @return True, if a wrapper is needed
*/
abstract boolean needsWrapper(final HttpServletRequest request);
/**
- *
* @param request
- * @return Either the original request or a wrapper
+ * @return Create a wrapper for the request
*/
abstract public HttpServletRequest newRequestWrapper(HttpServletRequest request);
Copied: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/SecuredRemoteAddressRequestWrapperFactory.java (from r1039920, wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/SecuredRemoteAddressRequestWrapper.java)
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/SecuredRemoteAddressRequestWrapperFactory.java?p2=wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/SecuredRemoteAddressRequestWrapperFactory.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/SecuredRemoteAddressRequestWrapper.java&r1=1039920&r2=1039923&rev=1039923&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/SecuredRemoteAddressRequestWrapper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/SecuredRemoteAddressRequestWrapperFactory.java Sun Nov 28 19:18:01 2010
@@ -23,21 +23,17 @@ import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
-import org.apache.wicket.Application;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * <p>
* Sets {@link RequestFacade#isSecure()} to <code>true</code> if
* {@link ServletRequest#getRemoteAddr()} matches one of the <code>securedRemoteAddresses</code> of
* this filter.
- * </p>
* <p>
- * This filter is often preceded by the {@link XForwardedWicketFilterExtension} 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)
- * </p>
+ * This filter is often used in combination with {@link XForwardedRequestWrapperFactory} 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)
* <p>
* <strong>Configuration parameters:</strong>
* <table border="1">
@@ -90,10 +86,10 @@ import org.slf4j.LoggerFactory;
* @author <a href="mailto:cyrille@cyrilleleclerc.com">Cyrille Le Clerc</a>
* @author Juergen Donnerstag
*/
-public class SecuredRemoteAddressRequestWrapper extends AbstractRequestWrapperFactory
+public class SecuredRemoteAddressRequestWrapperFactory extends AbstractRequestWrapperFactory
{
/** Logger */
- private static final Logger log = LoggerFactory.getLogger(SecuredRemoteAddressRequestWrapper.class);
+ private static final Logger log = LoggerFactory.getLogger(SecuredRemoteAddressRequestWrapperFactory.class);
private final static String SECURED_REMOTE_ADDRESSES_PARAMETER = "securedRemoteAddresses";
@@ -193,11 +189,9 @@ public class SecuredRemoteAddressRequest
}
/**
- * @see org.apache.wicket.protocol.http.servlet.IRequestWrapperFactory#init(org.apache.wicket.Application,
- * boolean, javax.servlet.FilterConfig)
+ * @param filterConfig
*/
- public void init(final Application application, final boolean isServlet,
- final FilterConfig filterConfig)
+ public void init(final FilterConfig filterConfig)
{
String comaDelimitedSecuredRemoteAddresses = filterConfig.getInitParameter(SECURED_REMOTE_ADDRESSES_PARAMETER);
if (comaDelimitedSecuredRemoteAddresses != null)
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/XForwardedRequestWrapperFactory.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/XForwardedRequestWrapperFactory.java?rev=1039923&r1=1039922&r2=1039923&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/XForwardedRequestWrapperFactory.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/XForwardedRequestWrapperFactory.java Sun Nov 28 19:18:01 2010
@@ -20,31 +20,26 @@ import java.util.LinkedList;
import java.util.regex.Pattern;
import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
-import org.apache.wicket.Application;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * Servlet filter to integrate "X-Forwarded-For" and "X-Forwarded-Proto" HTTP headers. </p>
+ * Request wrapper factory to integrate "X-Forwarded-For" and "X-Forwarded-Proto" HTTP headers.
* <p>
* Most of the design of this Servlet Filter is a port of <a
* href="http://httpd.apache.org/docs/trunk/mod/mod_remoteip.html">mod_remoteip</a>, this servlet
* filter replaces the apparent client remote IP address and hostname for the request with the IP
* address list presented by a proxy or a load balancer via a request headers (e.g.
* "X-Forwarded-For").
- * </p>
* <p>
* Another feature of this servlet filter is to replace the apparent scheme (http/https) and server
* port with the scheme presented by a proxy or a load balancer via a request header (e.g.
* "X-Forwarded-Proto").
- * </p>
* <p>
- * This servlet filter proceeds as follows:
- * </p>
+ * This wrapper proceeds as follows:
* <p>
* If the incoming <code>request.getRemoteAddr()</code> matches the servlet filter's list of
* internal proxies :
@@ -655,6 +650,7 @@ public class XForwardedRequestWrapperFac
public HttpServletRequest newRequestWrapper(final HttpServletRequest request)
{
String remoteIp = null;
+
// In java 6, proxiesHeaderValue should be declared as a java.util.Deque
LinkedList<String> proxiesHeaderValue = new LinkedList<String>();
@@ -755,14 +751,10 @@ public class XForwardedRequestWrapperFac
}
/**
- * Get xforwarded specific config from web.xml filter config
*
- * @param isServlet
* @param filterConfig
- * @throws ServletException
*/
- public void init(final Application application, final boolean isServlet,
- final FilterConfig filterConfig)
+ public void init(final FilterConfig filterConfig)
{
if (filterConfig.getInitParameter(INTERNAL_PROXIES_PARAMETER) != null)
{