You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Jan Treffkorn (JIRA)" <ji...@apache.org> on 2010/04/21 09:42:51 UTC
[jira] Created: (WICKET-2842) cookies are not base64 encoded by
default
cookies are not base64 encoded by default
-----------------------------------------
Key: WICKET-2842
URL: https://issues.apache.org/jira/browse/WICKET-2842
Project: Wicket
Issue Type: Bug
Components: wicket
Affects Versions: 1.4.7
Environment: Betriebsystemname Microsoft Windows Server 2008 R2 Standard
Version 6.1.7600 Build 7600
Reporter: Jan Treffkorn
The rememberMe cookie value can contain spezail chars like german umlauts (öäü..). Use the default SignInPanel and try a username with umlauts. All cookies should stored base64 encoded by default.
Stacktrace:
Unexpected RuntimeException
WicketMessage: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component [MarkupContainer [Component id = signInForm]] threw an exception
Root cause:
java.lang.IllegalArgumentException: Control character in cookie value, consider BASE64 encoding your value
at org.apache.tomcat.util.http.ServerCookie.maybeQuote2(ServerCookie.java:396)
at org.apache.tomcat.util.http.ServerCookie.maybeQuote2(ServerCookie.java:389)
at org.apache.tomcat.util.http.ServerCookie.appendCookieValue(ServerCookie.java:293)
at org.apache.catalina.connector.Response.addCookieInternal(Response.java:1010)
at org.apache.catalina.connector.Response.addCookieInternal(Response.java:979)
at org.apache.catalina.connector.Response.addCookie(Response.java:967)
at org.apache.catalina.connector.ResponseFacade.addCookie(ResponseFacade.java:343)
at org.apache.wicket.protocol.http.WebResponse.addCookie(WebResponse.java:87)
at org.apache.wicket.markup.html.form.persistence.CookieValuePersister.save(CookieValuePersister.java:260)
at org.apache.wicket.markup.html.form.persistence.CookieValuePersister.save(CookieValuePersister.java:131)
at org.apache.wicket.markup.html.form.persistence.CookieValuePersister.save(CookieValuePersister.java:139)
at org.apache.wicket.markup.html.form.Form$13.onFormComponent(Form.java:1445)
at org.apache.wicket.markup.html.form.FormComponent$AbstractVisitor.formComponent(FormComponent.java:112)
at org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper(FormComponent.java:441)
at org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper(FormComponent.java:428)
at org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrder(FormComponent.java:400)
at org.apache.wicket.markup.html.form.Form.visitFormComponentsPostOrder(Form.java:1209)
at org.apache.wicket.markup.html.form.Form.persistFormComponentData(Form.java:1433)
at org.apache.wicket.markup.html.form.Form.process(Form.java:1007)
at org.apache.wicket.markup.html.form.StatelessForm.process(StatelessForm.java:63)
at org.apache.wicket.markup.html.form.Form.process(Form.java:931)
at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:896)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182)
at org.apache.wicket.request.target.component.BookmarkableListenerInterfaceRequestTarget.processEvents(BookmarkableListenerInterfaceRequestTarget.java:161)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:312)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at de.kbs.web.filter.SessionTimeoutFilter.doFilter(SessionTimeoutFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (WICKET-2842) cookies are not base64 encoded by
default
Posted by "Igor Vaynberg (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/WICKET-2842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Igor Vaynberg resolved WICKET-2842.
-----------------------------------
Assignee: Igor Vaynberg
Resolution: Won't Fix
cannot fix it in 1.4 because it would change existing functionality and apps already deployed into prod would not be able to read their current cookies.
you can fix this yourself by overriding form#getvaluepersister() and wrapper the one returned from super by one that will encode/decode into base64
in 1.5 there is nothing to fix because the support for value persisters has been removed.
> cookies are not base64 encoded by default
> -----------------------------------------
>
> Key: WICKET-2842
> URL: https://issues.apache.org/jira/browse/WICKET-2842
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.4.7
> Environment: Betriebsystemname Microsoft Windows Server 2008 R2 Standard
> Version 6.1.7600 Build 7600
> Reporter: Jan Treffkorn
> Assignee: Igor Vaynberg
>
> The rememberMe cookie value can contain spezail chars like german umlauts (öäü..). Use the default SignInPanel and try a username with umlauts. All cookies should stored base64 encoded by default.
> Stacktrace:
> Unexpected RuntimeException
> WicketMessage: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at component [MarkupContainer [Component id = signInForm]] threw an exception
> Root cause:
> java.lang.IllegalArgumentException: Control character in cookie value, consider BASE64 encoding your value
> at org.apache.tomcat.util.http.ServerCookie.maybeQuote2(ServerCookie.java:396)
> at org.apache.tomcat.util.http.ServerCookie.maybeQuote2(ServerCookie.java:389)
> at org.apache.tomcat.util.http.ServerCookie.appendCookieValue(ServerCookie.java:293)
> at org.apache.catalina.connector.Response.addCookieInternal(Response.java:1010)
> at org.apache.catalina.connector.Response.addCookieInternal(Response.java:979)
> at org.apache.catalina.connector.Response.addCookie(Response.java:967)
> at org.apache.catalina.connector.ResponseFacade.addCookie(ResponseFacade.java:343)
> at org.apache.wicket.protocol.http.WebResponse.addCookie(WebResponse.java:87)
> at org.apache.wicket.markup.html.form.persistence.CookieValuePersister.save(CookieValuePersister.java:260)
> at org.apache.wicket.markup.html.form.persistence.CookieValuePersister.save(CookieValuePersister.java:131)
> at org.apache.wicket.markup.html.form.persistence.CookieValuePersister.save(CookieValuePersister.java:139)
> at org.apache.wicket.markup.html.form.Form$13.onFormComponent(Form.java:1445)
> at org.apache.wicket.markup.html.form.FormComponent$AbstractVisitor.formComponent(FormComponent.java:112)
> at org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper(FormComponent.java:441)
> at org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper(FormComponent.java:428)
> at org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrder(FormComponent.java:400)
> at org.apache.wicket.markup.html.form.Form.visitFormComponentsPostOrder(Form.java:1209)
> at org.apache.wicket.markup.html.form.Form.persistFormComponentData(Form.java:1433)
> at org.apache.wicket.markup.html.form.Form.process(Form.java:1007)
> at org.apache.wicket.markup.html.form.StatelessForm.process(StatelessForm.java:63)
> at org.apache.wicket.markup.html.form.Form.process(Form.java:931)
> at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:896)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182)
> at org.apache.wicket.request.target.component.BookmarkableListenerInterfaceRequestTarget.processEvents(BookmarkableListenerInterfaceRequestTarget.java:161)
> at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
> at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
> at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
> at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428)
> at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
> at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:479)
> at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:312)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at de.kbs.web.filter.SessionTimeoutFilter.doFilter(SessionTimeoutFilter.java:53)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.