FormComponent.setPersistent doesn't support Asian characters
------------------------------------------------------------
Key: WICKET-1552
URL: https://issues.apache.org/jira/browse/WICKET-1552
Project: Wicket
Issue Type: Bug
Components: wicket
Affects Versions: 1.3.3
Environment: Tomcat 6.0.16, Windows 2003, JDK 6U5
Reporter: Xiaoyu Huang
Tomcat doesn't support Control characters in cookie value. But Asian characters
in UTF-8 do have many such characters. So if a form is going to save Asian
characters in text field into cookies, tomcat will through an exception:
java.lang.IllegalArgumentException: Control character in cookie value, consider
BASE64 encoding your value
at
org.apache.tomcat.util.http.ServerCookie.maybeQuote2(ServerCookie.java:336)
at
org.apache.tomcat.util.http.ServerCookie.appendCookieValue(ServerCookie.java:251)
at
org.apache.catalina.connector.Response.addCookieInternal(Response.java:976)
at org.apache.catalina.connector.Response.addCookie(Response.java:945)
at
org.apache.catalina.connector.ResponseFacade.addCookie(ResponseFacade.java:343)
at
org.apache.wicket.protocol.http.WebResponse.addCookie(WebResponse.java:86)
at
org.apache.wicket.markup.html.form.persistence.CookieValuePersister.save(CookieValuePersister.java:271)
at
org.apache.wicket.markup.html.form.persistence.CookieValuePersister.save(CookieValuePersister.java:96)
at
org.apache.wicket.markup.html.form.Form$11.onFormComponent(Form.java:1228)
at
org.apache.wicket.markup.html.form.FormComponent$AbstractVisitor.formComponent(FormComponent.java:107)
at
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper(FormComponent.java:421)
at
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper(FormComponent.java:408)
at
org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrder(FormComponent.java:385)
at
org.apache.wicket.markup.html.form.Form.visitFormComponentsPostOrder(Form.java:1026)
at
org.apache.wicket.markup.html.form.Form.persistFormComponentData(Form.java:1217)
at org.apache.wicket.markup.html.form.Form.process(Form.java:834)
at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:773)
So i think wicket should BASE64 encode form field values before saving to
cookies.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.