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.

Reply via email to