RE: Expired Session message
I still have been unable to get this to work unfortunately and it's been thrown in the "Low priority" pile :( -Original Message- From: karthik.nar [mailto:[EMAIL PROTECTED] Sent: Friday, September 22, 2006 1:35 AM To: users@tapestry.apache.org Subject: Re: Expired Session message Hey Greg, Just curious - did you eventually solve this? If so can you paste your solution? Thanks, Karthik. -- View this message in context: http://www.nabble.com/Asynchronous-form-submission-tf2253801.html#a6441359 Sent from the Tapestry - 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]
Re: Expired Session message
Hey Greg, Just curious - did you eventually solve this? If so can you paste your solution? Thanks, Karthik. -- View this message in context: http://www.nabble.com/Asynchronous-form-submission-tf2253801.html#a6441359 Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Expired Session message
Is the Engine method being called first? Is a StaleSessionException in fact happening? I'm not sure you can rely on that exception happening any time the session has timed out, for all possible sequences of user actions. Thoughts... * You could make your StaleSession page not do the validation, not derive it from your validating page class, if the problem is that the StaleSession page is being invoked. Not sure about that. * You could check directly whether the session has expired. @InjectObject("infrastructure:request") public abstract WebRequest getWebRequest(); WebSession session = getWebRequest().getSession(false); if (session == null) { log.debug("-- null session"); } else if (session.isNew()) { log.debug("-- session isNew"); } * You could make validate() do something different if the user has *no* permissions, or define a special permission that a new visit gets initialized with before login. * You could add a sessionDestroyed() event listener method that would get called by your servlet container when the session times out, and set some sort of ThreadLocal variable that your page could check. [EMAIL PROTECTED] wrote: > Sorry Bryan, you're correct - it IS in my BorderEngine.class : (public class > BorderEngine extends BaseEngine). > > My application has 1 menu item, Login. Once you log-in, it's replaced with > your real menu containing a dozen items. > > Basically when I time-out my session (anyone know a quicker way to test this > then waiting 20 minutes?!), the next menu item I click on, the menu goes back > to the single "Login" item, and I get the message "You don't have permission > to do that." > > This is because the validate() method of the page I suppose. It's checking > what permissions are stored in the Visit object, which is nothing when it's > expired. So you have no permissions to view any pages. > > I've tried checking the methods in BasePage, but I see no way to determine if > a session is expired (and skip the error checking). Perhaps this validate is > somehow overriding the Engine, although you would think the Engine method is > called first? > > I've attached my validate() code below. > > Thanks, > Greg > > > // Validates the permission of the page. > public void validate(IRequestCycle cycle) > { > if (requiredPermission != null) > { > AdminVisit theVisit = (AdminVisit) getVisit(); > if (!theVisit.hasPermission(requiredPermission)) > { > IPage permDenied = cycle.getPage("PermissionDenied"); > PropertyUtils.write(permDenied, "permissionRequired", > requiredPermission); > throw new PageRedirectException(permDenied); > } > } > super.validate(cycle); > } > // > > > -Original Message- > From: Bryan Lewis [mailto:[EMAIL PROTECTED] > Sent: Thursday, September 14, 2006 8:49 AM > To: Tapestry users > Subject: Re: Expired Session message > > > Hmm, I thought from your previous post that this method was in your > custom Engine class. The handleStaleSessionException() method in the > Engine is what gets called when the exception occurs. If this method is > in a page or component it won't be called. > > Still, if you named your exception-reporting page "StaleSession", it > should've been invoked by the built-in error reporter even if this new > method wasn't being called. > > What do you mean by "doesn't work"? > > > > [EMAIL PROTECTED] wrote: > >> Okay, I've taken both suggestions. I've renamed my page to "StaleSession", >> and altered my code slightly. It still doesn't seem to work. >> >> protected void handleStaleSessionException(IRequestCycle cycle, >> StaleSessionException exception) throws IOException >> { >> cycle.activate("StaleSession"); >> renderResponse(cycle); >> } >> >> >> This is in my Border.java file. >> >> >> However, all of my pages subclass an abstract class I've made for BasePage. >> This overrides the validate() method of the page to check if the user has >> permissions for that particular page. Could that be messing something up? >> Should I put something in the validate() method? Is there some sort of >> getExpired() function? >> >> Thanks, >> Greg >> >> - >> 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] > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
RE: Expired Session message
In your web.xml: 30 You probably want something less... Mark J. Stang Senior Engineer/Architect office: +1 303.468.2900 mobile: +1 303.507.2833 Ping Identity -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Thu 9/14/2006 7:00 AM To: users@tapestry.apache.org Subject: RE: Expired Session message Sorry Bryan, you're correct - it IS in my BorderEngine.class : (public class BorderEngine extends BaseEngine). My application has 1 menu item, Login. Once you log-in, it's replaced with your real menu containing a dozen items. Basically when I time-out my session (anyone know a quicker way to test this then waiting 20 minutes?!), the next menu item I click on, the menu goes back to the single "Login" item, and I get the message "You don't have permission to do that." This is because the validate() method of the page I suppose. It's checking what permissions are stored in the Visit object, which is nothing when it's expired. So you have no permissions to view any pages. I've tried checking the methods in BasePage, but I see no way to determine if a session is expired (and skip the error checking). Perhaps this validate is somehow overriding the Engine, although you would think the Engine method is called first? I've attached my validate() code below. Thanks, Greg // Validates the permission of the page. public void validate(IRequestCycle cycle) { if (requiredPermission != null) { AdminVisit theVisit = (AdminVisit) getVisit(); if (!theVisit.hasPermission(requiredPermission)) { IPage permDenied = cycle.getPage("PermissionDenied"); PropertyUtils.write(permDenied, "permissionRequired", requiredPermission); throw new PageRedirectException(permDenied); } } super.validate(cycle); } // -Original Message- From: Bryan Lewis [mailto:[EMAIL PROTECTED] Sent: Thursday, September 14, 2006 8:49 AM To: Tapestry users Subject: Re: Expired Session message Hmm, I thought from your previous post that this method was in your custom Engine class. The handleStaleSessionException() method in the Engine is what gets called when the exception occurs. If this method is in a page or component it won't be called. Still, if you named your exception-reporting page "StaleSession", it should've been invoked by the built-in error reporter even if this new method wasn't being called. What do you mean by "doesn't work"? [EMAIL PROTECTED] wrote: > Okay, I've taken both suggestions. I've renamed my page to "StaleSession", > and altered my code slightly. It still doesn't seem to work. > > protected void handleStaleSessionException(IRequestCycle cycle, > StaleSessionException exception) throws IOException > { > cycle.activate("StaleSession"); > renderResponse(cycle); > } > > > This is in my Border.java file. > > > However, all of my pages subclass an abstract class I've made for BasePage. > This overrides the validate() method of the page to check if the user has > permissions for that particular page. Could that be messing something up? > Should I put something in the validate() method? Is there some sort of > getExpired() function? > > Thanks, > Greg > > - > 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] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Expired Session message
Sorry Bryan, you're correct - it IS in my BorderEngine.class : (public class BorderEngine extends BaseEngine). My application has 1 menu item, Login. Once you log-in, it's replaced with your real menu containing a dozen items. Basically when I time-out my session (anyone know a quicker way to test this then waiting 20 minutes?!), the next menu item I click on, the menu goes back to the single "Login" item, and I get the message "You don't have permission to do that." This is because the validate() method of the page I suppose. It's checking what permissions are stored in the Visit object, which is nothing when it's expired. So you have no permissions to view any pages. I've tried checking the methods in BasePage, but I see no way to determine if a session is expired (and skip the error checking). Perhaps this validate is somehow overriding the Engine, although you would think the Engine method is called first? I've attached my validate() code below. Thanks, Greg // Validates the permission of the page. public void validate(IRequestCycle cycle) { if (requiredPermission != null) { AdminVisit theVisit = (AdminVisit) getVisit(); if (!theVisit.hasPermission(requiredPermission)) { IPage permDenied = cycle.getPage("PermissionDenied"); PropertyUtils.write(permDenied, "permissionRequired", requiredPermission); throw new PageRedirectException(permDenied); } } super.validate(cycle); } // -Original Message- From: Bryan Lewis [mailto:[EMAIL PROTECTED] Sent: Thursday, September 14, 2006 8:49 AM To: Tapestry users Subject: Re: Expired Session message Hmm, I thought from your previous post that this method was in your custom Engine class. The handleStaleSessionException() method in the Engine is what gets called when the exception occurs. If this method is in a page or component it won't be called. Still, if you named your exception-reporting page "StaleSession", it should've been invoked by the built-in error reporter even if this new method wasn't being called. What do you mean by "doesn't work"? [EMAIL PROTECTED] wrote: > Okay, I've taken both suggestions. I've renamed my page to "StaleSession", > and altered my code slightly. It still doesn't seem to work. > > protected void handleStaleSessionException(IRequestCycle cycle, > StaleSessionException exception) throws IOException > { > cycle.activate("StaleSession"); > renderResponse(cycle); > } > > > This is in my Border.java file. > > > However, all of my pages subclass an abstract class I've made for BasePage. > This overrides the validate() method of the page to check if the user has > permissions for that particular page. Could that be messing something up? > Should I put something in the validate() method? Is there some sort of > getExpired() function? > > Thanks, > Greg > > - > 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] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Expired Session message
Hmm, I thought from your previous post that this method was in your custom Engine class. The handleStaleSessionException() method in the Engine is what gets called when the exception occurs. If this method is in a page or component it won't be called. Still, if you named your exception-reporting page "StaleSession", it should've been invoked by the built-in error reporter even if this new method wasn't being called. What do you mean by "doesn't work"? [EMAIL PROTECTED] wrote: > Okay, I've taken both suggestions. I've renamed my page to "StaleSession", > and altered my code slightly. It still doesn't seem to work. > > protected void handleStaleSessionException(IRequestCycle cycle, > StaleSessionException exception) throws IOException > { > cycle.activate("StaleSession"); > renderResponse(cycle); > } > > > This is in my Border.java file. > > > However, all of my pages subclass an abstract class I've made for BasePage. > This overrides the validate() method of the page to check if the user has > permissions for that particular page. Could that be messing something up? > Should I put something in the validate() method? Is there some sort of > getExpired() function? > > Thanks, > Greg > > - > 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]
RE: Expired Session message
Okay, I've taken both suggestions. I've renamed my page to "StaleSession", and altered my code slightly. It still doesn't seem to work. protected void handleStaleSessionException(IRequestCycle cycle, StaleSessionException exception) throws IOException { cycle.activate("StaleSession"); renderResponse(cycle); } This is in my Border.java file. However, all of my pages subclass an abstract class I've made for BasePage. This overrides the validate() method of the page to check if the user has permissions for that particular page. Could that be messing something up? Should I put something in the validate() method? Is there some sort of getExpired() function? Thanks, Greg - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Expired Session message
Mark Stang wrote: > I was looking at the 3.x one on t-deli. Are they the same? Is 3.x supported > in contrib? Is it shipped as part of Contrib? > Well, mindbridge (& friends) had written those components for 3.0.x He later adapted them to 4.0.x and added them in contrib (4.0.x) So, they're really the same. Perhaps you should contact him directly and ask about the 3.0.x versions. > thanks, > > Mark > > Mark J. Stang > Senior Engineer/Architect > office: +1 303.468.2900 > mobile: +1 303.507.2833 > Ping Identity > > > > -Original Message- > From: Jesse Kuhnert [mailto:[EMAIL PROTECTED] > Sent: Wed 9/13/2006 10:44 AM > To: Tapestry users > Subject: Re: Expired Session message > > Since it's sitting in the tapestry repos under contrib it ~better~ be asf 2 > ;) > > On 9/13/06, Mark Stang <[EMAIL PROTECTED]> wrote: > >> Does anyone know the license on Xtile:Timeout? >> >> thanks, >> >> Mark >> >> Mark J. Stang >> Senior Engineer/Architect >> office: +1 303.468.2900 >> mobile: +1 303.507.2833 >> Ping Identity >> >> >> >> -Original Message- >> From: andyhot [mailto:[EMAIL PROTECTED] >> Sent: Tue 9/12/2006 5:09 PM >> To: Tapestry users >> Subject: Re: Expired Session message >> >> Peter Dawn wrote: >> >>> what about tap3. any way of implementing this in the older version. >>> >> no need to... >> http://t-deli.com/ >> >>> - >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >> -- >> Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr >> Tapestry / Tacos developer >> Open Source / J2EE Consulting >> >> >> - >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> >> >> > > > -- Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr Tapestry / Tacos developer Open Source / J2EE Consulting - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Expired Session message
I was looking at the 3.x one on t-deli. Are they the same? Is 3.x supported in contrib? Is it shipped as part of Contrib? thanks, Mark Mark J. Stang Senior Engineer/Architect office: +1 303.468.2900 mobile: +1 303.507.2833 Ping Identity -Original Message- From: Jesse Kuhnert [mailto:[EMAIL PROTECTED] Sent: Wed 9/13/2006 10:44 AM To: Tapestry users Subject: Re: Expired Session message Since it's sitting in the tapestry repos under contrib it ~better~ be asf 2 ;) On 9/13/06, Mark Stang <[EMAIL PROTECTED]> wrote: > > Does anyone know the license on Xtile:Timeout? > > thanks, > > Mark > > Mark J. Stang > Senior Engineer/Architect > office: +1 303.468.2900 > mobile: +1 303.507.2833 > Ping Identity > > > > -Original Message- > From: andyhot [mailto:[EMAIL PROTECTED] > Sent: Tue 9/12/2006 5:09 PM > To: Tapestry users > Subject: Re: Expired Session message > > Peter Dawn wrote: > > what about tap3. any way of implementing this in the older version. > no need to... > http://t-deli.com/ > > > > - > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr > Tapestry / Tacos developer > Open Source / J2EE Consulting > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > -- Jesse Kuhnert Tapestry/Dojo/(and a dash of TestNG), team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
Re: Expired Session message
Since it's sitting in the tapestry repos under contrib it ~better~ be asf 2 ;) On 9/13/06, Mark Stang <[EMAIL PROTECTED]> wrote: Does anyone know the license on Xtile:Timeout? thanks, Mark Mark J. Stang Senior Engineer/Architect office: +1 303.468.2900 mobile: +1 303.507.2833 Ping Identity -Original Message- From: andyhot [mailto:[EMAIL PROTECTED] Sent: Tue 9/12/2006 5:09 PM To: Tapestry users Subject: Re: Expired Session message Peter Dawn wrote: > what about tap3. any way of implementing this in the older version. no need to... http://t-deli.com/ > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr Tapestry / Tacos developer Open Source / J2EE Consulting - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Jesse Kuhnert Tapestry/Dojo/(and a dash of TestNG), team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
RE: Expired Session message
Does anyone know the license on Xtile:Timeout? thanks, Mark Mark J. Stang Senior Engineer/Architect office: +1 303.468.2900 mobile: +1 303.507.2833 Ping Identity -Original Message- From: andyhot [mailto:[EMAIL PROTECTED] Sent: Tue 9/12/2006 5:09 PM To: Tapestry users Subject: Re: Expired Session message Peter Dawn wrote: > what about tap3. any way of implementing this in the older version. no need to... http://t-deli.com/ > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr Tapestry / Tacos developer Open Source / J2EE Consulting - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Expired Session message
neat. i forgot about t-deli. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Expired Session message
Peter Dawn wrote: > what about tap3. any way of implementing this in the older version. no need to... http://t-deli.com/ > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr Tapestry / Tacos developer Open Source / J2EE Consulting - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Expired Session message
what about tap3. any way of implementing this in the older version. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Expired Session message
Daniel Jue wrote: > I would also like to see how this is done. Perhaps even with a > javascript popup telling the user the session is about to/has expired. > I imagine this type of "active checking" could be done through ajax, > or through a client side timer, rather than waiting for the user to > refresh a page and find out then. 4.0 already has this... http://tapestry.apache.org/tapestry4/tapestry-contrib/ComponentReference/Timeout.html > > Dan > > On 9/12/06, [EMAIL PROTECTED] > <[EMAIL PROTECTED]> wrote: >> Hi. >> >> When the session expires, how can I handle this and redirect to a >> customized page saying "Your session has expired" >> >> In my BorderEngine class, I've tried this but maybe it's the wrong >> way, or the wrong place to put it >> >> protected void handleStaleSessionException(IRequestCycle cycle, >> StaleSessionException exception) throws IOException >> { >>cycle.activate("Expired"); // Trigger my customized >> session-expired page. >> } >> >> >> >> Thanks, >> Greg >> >> - >> 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] > > -- Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr Tapestry / Tacos developer Open Source / J2EE Consulting - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Expired Session message
There's another way... Create a custom page in your application, named "StaleSession" Bryan Lewis wrote: > The one difference I see between your code and what's been working for > me in my custom Engine class is one more line: > > cycle.activate(page); > renderResponse(cycle); > > > [EMAIL PROTECTED] wrote: > >> Hi. >> >> When the session expires, how can I handle this and redirect to a customized >> page saying "Your session has expired" >> >> In my BorderEngine class, I've tried this but maybe it's the wrong way, or >> the wrong place to put it >> >> protected void handleStaleSessionException(IRequestCycle cycle, >> StaleSessionException exception) throws IOException >> { >> cycle.activate("Expired"); // Trigger my customized >> session-expired page. >> } >> >> >> >> Thanks, >> Greg >> >> - >> 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] > > > -- Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr Tapestry / Tacos developer Open Source / J2EE Consulting - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Expired Session message
The one difference I see between your code and what's been working for me in my custom Engine class is one more line: cycle.activate(page); renderResponse(cycle); [EMAIL PROTECTED] wrote: > Hi. > > When the session expires, how can I handle this and redirect to a customized > page saying "Your session has expired" > > In my BorderEngine class, I've tried this but maybe it's the wrong way, or > the wrong place to put it > > protected void handleStaleSessionException(IRequestCycle cycle, > StaleSessionException exception) throws IOException > { > cycle.activate("Expired");// Trigger my customized > session-expired page. > } > > > > Thanks, > Greg > > - > 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]
Re: Expired Session message
I would also like to see how this is done. Perhaps even with a javascript popup telling the user the session is about to/has expired. I imagine this type of "active checking" could be done through ajax, or through a client side timer, rather than waiting for the user to refresh a page and find out then. Dan On 9/12/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: Hi. When the session expires, how can I handle this and redirect to a customized page saying "Your session has expired" In my BorderEngine class, I've tried this but maybe it's the wrong way, or the wrong place to put it protected void handleStaleSessionException(IRequestCycle cycle, StaleSessionException exception) throws IOException { cycle.activate("Expired"); // Trigger my customized session-expired page. } Thanks, Greg - 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]
Expired Session message
Hi. When the session expires, how can I handle this and redirect to a customized page saying "Your session has expired" In my BorderEngine class, I've tried this but maybe it's the wrong way, or the wrong place to put it protected void handleStaleSessionException(IRequestCycle cycle, StaleSessionException exception) throws IOException { cycle.activate("Expired"); // Trigger my customized session-expired page. } Thanks, Greg - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]