Thanks for the follow up Martijn, i will look into this...
though I just discovered something which i cant comprehend, but before that
below is what i do in my logout page..
----
String identityToken = MySession.get().getIdentityToken();
Cookie cookie = new Cookie("_JSESSIONID","");
cookie.setPath("/xyz");
((WebResponse)RequestCycle.get().getResponse()).addCookie(cookie);
// invalidating session
getSession().invalidate();
RequestCycle.get().setRequestTarget(
new RedirectRequestTarget(Host.getHttpsUrl()
+ utils.getLogoutURL(identityToken)));
----
Now calling the above code on LogoutLink.onClick() { setResponse(new
LogoutPage()) } does invoke the page, does the session invalidation, but
instead of taking to the external logout url (as in the last line), it takes
me to the session-expiry page, BUT if i invoke the above page using lets say
ExternalLink("logoutLink",logout") (where the logout page is mounted as
/logout) the above code works like a charm and does take me to the external
logout page...Can you please explain as to why this is the case...
Also, If this works i can avoid creating/throwing the new exception, unless
there are any issues u see with it? I certainly dont have a problem using
ExternalLink since i already have to expose the logout page to an external
app...
Please comment..
Martijn Dashorst wrote:
>
> I think we need a RedirectToExternalException extends
> AbortRestartResponseException that sets the RedirectRequestTarget to
> an external page. Isn't too hard to implement I suppose...
>
> public class RedirectToExternalException extends
> AbstractRestartResponseException
> {
> private static final long serialVersionUID = 1L;
>
> public RedirectToExternalException(String url)
> {
>
> RequestCycle rc = RequestCycle.get();
> if (rc == null)
> {
> throw new IllegalStateException(
> "This exception can only be thrown from
> within request processing
> cycle");
> }
> else
> {
> Response r = rc.getResponse();
> if (!(r instanceof WebResponse))
> {
> throw new IllegalStateException(
> "This exception can only be
> thrown when wicket is processing an
> http request");
> }
>
> // abort any further response processing
> rc.setRequestTarget(new RedirectRequestTarget(url));
> }
> }
> }
>
>
> Martijn
>
> On 5/4/08, mfs <[EMAIL PROTECTED]> wrote:
>>
>> Also my major problem is that when i do an invalidate() in the
>> constructor
>> (with or without any redirection) i am taken to the session-expiry
>> page..I
>> wonder why is that happening...can you please explain that behavior
>> please ?
>> ..the reason as i explained earlier i had to do the same in the in the
>> LogoutPage Constructor is because i need to expose this page to an
>> external
>> non-wicket app (which on logout) would be redirecting to this page (if a
>> wicket session exists)..so as to invalidate my wicket session app..
>>
>>
>>
>>
>> Johan Compagner wrote:
>> >
>> > In a constructor of another page is just fine, but use an
>> > RestartXxxException. Else you have 2 things that wants to be the
>> > response, the redirect and the page you are in.
>> >
>> > On 5/4/08, mfs <[EMAIL PROTECTED]> wrote:
>> >>
>> >> Looking for some follow up on this..
>> >>
>> >> 1) Just wondering as to why isnt a constructor a good place to do the
>> >> redirection to an external url , ?
>> >> 2) What should be the right place for it, given my use-case..
>> >>
>> >> Thanks in advance..
>> >>
>> >> Johan Compagner wrote:
>> >> >
>> >> > I think this usecase should be supported but isnt the best way, you
>> >> > should throw an AbortException when you want to redirect in the
>> >> > constructor. Dont know from top of my head if we have one just for
>> an
>> >> > url but that is easily made
>> >> >
>> >> > On 4/30/08, mfs <[EMAIL PROTECTED]> wrote:
>> >> >>
>> >> >> Guys,
>> >> >>
>> >> >> I have a LogoutPage which does the following in its constructor
>> >> >>
>> >> >> LogoutPage()
>> >> >> {
>> >> >> getSession().invalidate();
>> >> >>
>> >> >> // redirecting to the external app logout page
>> >> >> RequestCycle.get().setRequestTarget(
>> >> >> new RedirectRequestTarget(Host.getHttpsUrl()
>> >> >> + xyz.getLogoutURL()));
>> >> >>
>> >> >> getRequestCycle().setRedirect(true);
>> >> >> }
>> >> >>
>> >> >> Now, for some reasons the redirect to the specified external app
>> page
>> >> >> doesnt
>> >> >> happen, infact i am taken to the session-expired page (which is
>> >> because
>> >> >> the
>> >> >> request comes to wicket app, instead of redirection to this
>> external
>> >> app)
>> >> >> .
>> >> >> Let me add that i am using wiket-auth-roles for authorization...
>> >> >>
>> >> >> Also the reason i am doing this inside the Page itself (and not in
>> the
>> >> >> onClick or some other event as suggested in another other thread)
>> is
>> >> >> because
>> >> >> i need to expose this LogoutPage to an external app as well, which
>> >> will
>> >> >> redirect to this page after invalidating the session....This part
>> of
>> >> >> Interoperability/SingleSignon Support.
>> >> >>
>> >> >> Thanks in advance.
>> >> >>
>> >> >> --
>> >> >> View this message in context:
>> >> >>
>> >>
>> http://www.nabble.com/LogoutPage---Responsible-for-invalidation-and-redirection-to-non-wicket-page-tp16974119p16974119.html
>> >> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>> >> >>
>> >> >>
>> >> >>
>> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >> >>
>> >> >>
>> >> >
>> >> >
>> ---------------------------------------------------------------------
>> >> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >> >
>> >> >
>> >> >
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/LogoutPage---Responsible-for-invalidation-and-redirection-to-non-wicket-page-tp16974119p17042343.html
>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >>
>> >>
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> >
>> >
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/LogoutPage---Responsible-for-invalidation-and-redirection-to-non-wicket-page-tp16974119p17050703.html
>>
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
> --
> Buy Wicket in Action: http://manning.com/dashorst
> Apache Wicket 1.3.3 is released
> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.3
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
--
View this message in context:
http://www.nabble.com/LogoutPage---Responsible-for-invalidation-and-redirection-to-non-wicket-page-tp16974119p17052158.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]