[ 
https://issues.apache.org/jira/browse/WICKET-3576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13012691#comment-13012691
 ] 

Bertrand Guay-Paquet commented on WICKET-3576:
----------------------------------------------

Some debugging reveals that the BufferedWebResponse is reset which has the 
effect of discarding previously added AddCookieActions. 
This happens at :
WebPageRenderer.redirectTo(Url, RequestCycle) line: 176

(partial) stack trace:
BufferedWebResponse.sendRedirect(String) line: 460      
HeaderBufferingWebResponse.sendRedirect(String) line: 111       
WebPageRenderer.redirectTo(Url, RequestCycle) line: 177 
WebPageRenderer.respond(RequestCycle) line: 254 
RenderPageRequestHandler.respond(IRequestCycle) line: 139       
RequestCycle$HandlerExecutor.respond(IRequestHandler) line: 715 
RequestCycle$HandlerExecutor(RequestHandlerStack).execute(IRequestHandler) 
line: 63     
RequestCycle$HandlerExecutor(RequestHandlerStack).execute(IRequestHandler) 
line: 96     
CustomRequestCycle(RequestCycle).processRequest() line: 212     
CustomRequestCycle(RequestCycle).processRequestAndDetach() line: 253    
WicketFilter.processRequest(ServletRequest, ServletResponse, FilterChain) line: 
138     


Execution passes by 
WebPageRenderer.respond(RequestCycle) line: 254
which has the following:
else if (!targetUrl.equals(currentUrl) //
        &&
        (getPageProvider().isNewPageInstance() || (isSessionTemporary() && 
getPage().isPageStateless())))
{
        // if target URL is different and session is temporary and page is 
stateless
        // this is special case when page is stateless but there is no session 
so we can't
        // render it to buffer

        // alternatively if URLs are different and we have a page class and not 
an instance we
        // can redirect to the url which will instantiate the instance of us

        // note: if we had session here we would render the page to buffer and 
then redirect to
        // URL generated *after* page has been rendered (the statelessness may 
change during
        // render). this would save one redirect because now we have to render 
to URL generated
        // *before* page is rendered, render the page, get URL after render and 
if the URL is
        // different (meaning page is not stateless), save the buffer and 
redirect again (which
        // is pretty much what the next step does)
        redirectTo(targetUrl, requestCycle);
}

WICKET-3161 had a similar problem.

> Cannot set a cookie on bookmarkable page
> ----------------------------------------
>
>                 Key: WICKET-3576
>                 URL: https://issues.apache.org/jira/browse/WICKET-3576
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-core, wicket-examples
>    Affects Versions: 1.5-RC2, 1.5-RC3
>         Environment: wicket-examples from rev 1086031 (March 29 2011)
>            Reporter: Bertrand Guay-Paquet
>            Priority: Critical
>              Labels: cookie
>
> Steps to reproduce:
> //////////////////////
> After starting the Wicket Examples, navigate directly to:
> http://localhost:8080/authentication2/wicket/bookmarkable/org.apache.wicket.examples.authentication2.SignIn2
> Sign in with proper user name and password. Notice that the cookie "LoggedIn" 
> is not set.
> //////////////////////
> This does not happen if navigation to the authentication2 example is done 
> through the examples home page. In that case, the URL is 
> http://localhost:8080/authentication2/.
> If I understand correctly, this means that bookmarkable pages cannot set 
> cookies when they also do a redirect. e.g. a bookmarkable sign-in page.
> Note that with the examples from 1.5-rc2, doing the steps described above 
> produces a different result. In that case, signing-in does not set a cookie 
> of actually sign-in at all. The same sign-in page is presented a second time. 
> Sign-in works on this second page.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to