[
https://issues.apache.org/jira/browse/WICKET-2007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sven Meier updated WICKET-2007:
-------------------------------
Description:
A redirect does not contain encoding information - contentType seems to be
ignored by IE and Firefox.
Neither does Wicket encode the URL of a redirect according to
IRequestCycle#responseRequestEncoding.
Thus the browser cannot correctly decode umlauts in a redirect's target.
Thus I propose, that WebResponse#redirect(String) should always encode the
given URL.
I'm currently using a subclass of WebResponse which utiilizes a tweaked
WicketURLEncoder to encode all umlauts:
public void redirect(String url) {
url = redirectEncoder.encode(url);
super.redirect(url);
}
// don't encode any delimiter
private static final WicketURLEncoder redirectEncoder = new
WicketURLEncoder(-1) {
{
dontNeedEncoding.set(' ');
dontNeedEncoding.set('/');
dontNeedEncoding.set('?');
dontNeedEncoding.set('&');
dontNeedEncoding.set('=');
dontNeedEncoding.set('+');
dontNeedEncoding.set(';');
}
};
Note that specifying the URIEncoding on the Tomcat connector does *not* solve
the problem.
(http://wiki.apache.org/tomcat/FAQ/Connectors#Q8)
was:
A redirect does not contain encoding information - contentType seems to be
ignored by IE and Firefox.
Neither does Wicket encode the URL of a redirect according to
IRequestCycle#responseRequestEncoding.
Thus the browser cannot correctly decode umlauts in a redirect's target.
Thus I propose, that WebResponse#redirect(String) should always encode the
given URL.
I'm currently using a subclass of WebResponse which utiilizes a tweaked
WicketURLEncoder to encode all umlauts:
public void redirect(String url) {
url = redirectEncoder.encode(url);
super.redirect(url);
}
// don't encode any delimiter
private static final WicketURLEncoder redirectEncoder = new
WicketURLEncoder(-1) {
{
dontNeedEncoding.set(' ');
dontNeedEncoding.set('/');
dontNeedEncoding.set('?');
dontNeedEncoding.set('&');
dontNeedEncoding.set('=');
dontNeedEncoding.set('+');
}
};
> redirect with umlauts fails
> ---------------------------
>
> Key: WICKET-2007
> URL: https://issues.apache.org/jira/browse/WICKET-2007
> Project: Wicket
> Issue Type: Improvement
> Components: wicket
> Affects Versions: 1.3.5, 1.4-RC1
> Reporter: Sven Meier
>
> A redirect does not contain encoding information - contentType seems to be
> ignored by IE and Firefox.
> Neither does Wicket encode the URL of a redirect according to
> IRequestCycle#responseRequestEncoding.
> Thus the browser cannot correctly decode umlauts in a redirect's target.
> Thus I propose, that WebResponse#redirect(String) should always encode the
> given URL.
> I'm currently using a subclass of WebResponse which utiilizes a tweaked
> WicketURLEncoder to encode all umlauts:
> public void redirect(String url) {
> url = redirectEncoder.encode(url);
> super.redirect(url);
> }
> // don't encode any delimiter
> private static final WicketURLEncoder redirectEncoder = new
> WicketURLEncoder(-1) {
> {
> dontNeedEncoding.set(' ');
> dontNeedEncoding.set('/');
> dontNeedEncoding.set('?');
> dontNeedEncoding.set('&');
> dontNeedEncoding.set('=');
> dontNeedEncoding.set('+');
> dontNeedEncoding.set(';');
> }
> };
> Note that specifying the URIEncoding on the Tomcat connector does *not* solve
> the problem.
> (http://wiki.apache.org/tomcat/FAQ/Connectors#Q8)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.