Hi,
I am using a balancer which sends the X-Forwarded-Proto header to my Wicket
application.
I`ve added the following filters:
getFilterFactoryManager()
> .addSecuredRemoteAddressRequestWrapperFactory(null)
> .addXForwardedRequestWrapperFactory(null);
>
And the HttpsMapper:
setRootRequestMapper(new HttpsMapper(getRootRequestMapper(), new
> HttpsConfig())
>
And the following init-param into web.xml
<init-param>
> <param-name>protocolHeader</param-name>
> <param-value>X-Forwarded-Proto</param-value>
> </init-param>
>
When I debug I can see that the header is working inside a
RequestCycleListener
HttpServletRequest req = (HttpServletRequest)
> cycle.getRequest().getContainerRequest();
> System.out.println("-->" + req.getScheme() + " ==" +
> req.getHeader("X-Forwarded-Proto");
>
The problem occurs when some versioned page is created and wicket redirect
it to the same URL but with the HTTP:// instead, for example:
*https://*www.wicket.com/statefullPage
-> Response header: 302 (Location: *http://*www.wicket.com/statefullPage*?1*
)
If I change it back to HTTPS it works:
*https://*www.wicket.com/statefullPage
*?1*
*-> *Response 200 OK
I believe that in some redirection logic the original schema is being lost
somehow, during page versioning.
This problem only occurs when using the "X-Forwarded-Proto" header
Using Wicket 7.6.0
Any suggestions?
Thanks!