You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Xiaoyu Huang (JIRA)" <ji...@apache.org> on 2008/04/18 19:44:21 UTC

[jira] Created: (WICKET-1552) FormComponent.setPersistent doesn't support Asian characters

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.


[jira] Resolved: (WICKET-1552) FormComponent.setPersistent doesn't support Asian characters

Posted by "Igor Vaynberg (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-1552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Igor Vaynberg resolved WICKET-1552.
-----------------------------------

    Resolution: Won't Fix
      Assignee: Igor Vaynberg

we are removing support for formcomponent.setpersistent in the coming version. you are better off implementing this yourself.

> 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
>            Assignee: Igor Vaynberg
>
> 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.