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]

Reply via email to