Re: How to set Cookie on Redirect to URL

2011-09-29 Thread Martin Grigorov
Here is what I use to keep the cookies (headers):

public class NonResettingRestartException extends ReplaceHandlerException {

public NonResettingRestartException(final Class? extends Page?
pageClass, final PageParameters params, final RequestCycle cycle) {
super(createRequestHandler(pageClass, params), true);

Response response = cycle.getResponse();
if (response instanceof IMetaDataBufferingWebResponse) {
IMetaDataBufferingWebResponse bufferingWebResponse =
(IMetaDataBufferingWebResponse) response;
bufferingWebResponse.writeMetaData((WebResponse)
cycle.getOriginalResponse());
}
}

private static IRequestHandler createRequestHandler(Class?
extends Page? pageClass, PageParameters params) {
return new RenderPageRequestHandler(new
PageProvider(pageClass, params));
}

}

On Thu, Sep 29, 2011 at 12:01 AM,  b...@actrix.gen.nz wrote:
 Hi,

 How do I add a cookie to a URL redirect response? I started with the
 following class:

 public class RedirectToUrlWithHandlerException extends
 ReplaceHandlerException {
 ...

    public RedirectToUrlWithHandlerException(final String redirectUrl,
 final int statusCode, final IRequestHandler handler) {
        super(new RedirectRequestHandler(redirectUrl, statusCode){
            @Override
            public void detach(IRequestCycle requestCycle) {
                super.detach(requestCycle);
                handler.detach(requestCycle);
            }
            @Override
            public void respond(IRequestCycle requestCycle) {
                super.respond(requestCycle);
                handler.respond(requestCycle);
            }
        }, true);
    }
 }


 and in the page:

        throw new RedirectToUrlWithHandlerException(targetUrl, new
 IRequestHandler(){
            @Override
            public void respond(IRequestCycle requestCycle) {
                // Set cookie
                cookieUtils.save(name, value);
            }

            @Override
            public void detach(IRequestCycle requestCycle) { }
        });

 with cookieUtils:

        instance.cookieUtils = new CookieUtils(cookieDefaults){
            @Override
            protected void initializeCookie(Cookie cookie) {
                super.initializeCookie(cookie);
                cookie.setPath(/);
            }
        };


 Still no cookie in the response.

 I know this is a tricky issue where older browsers don't always
 cooperate, but the page being redirected to can't set the cookie
 because the cookie is used to transfer information to it.

 Many thanks,

 Bernard

 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
 For additional commands, e-mail: users-h...@wicket.apache.org





-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



How to set Cookie on Redirect to URL

2011-09-28 Thread bht
Hi,

How do I add a cookie to a URL redirect response? I started with the
following class:

public class RedirectToUrlWithHandlerException extends
ReplaceHandlerException {
...

public RedirectToUrlWithHandlerException(final String redirectUrl,
final int statusCode, final IRequestHandler handler) {
super(new RedirectRequestHandler(redirectUrl, statusCode){
@Override
public void detach(IRequestCycle requestCycle) {
super.detach(requestCycle);
handler.detach(requestCycle);
}
@Override
public void respond(IRequestCycle requestCycle) {
super.respond(requestCycle);
handler.respond(requestCycle);
}
}, true);
}
}


and in the page:

throw new RedirectToUrlWithHandlerException(targetUrl, new
IRequestHandler(){
@Override
public void respond(IRequestCycle requestCycle) {
// Set cookie
cookieUtils.save(name, value);
}

@Override
public void detach(IRequestCycle requestCycle) { }
});

with cookieUtils:

instance.cookieUtils = new CookieUtils(cookieDefaults){
@Override
protected void initializeCookie(Cookie cookie) {
super.initializeCookie(cookie);
cookie.setPath(/);
}
};


Still no cookie in the response.

I know this is a tricky issue where older browsers don't always
cooperate, but the page being redirected to can't set the cookie
because the cookie is used to transfer information to it.

Many thanks,

Bernard

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org