Hi
Yes, it is working by setting the timeout in the server.
To summarize, the following are what I did:
1) Configured the session timeout in web.xml (say for 1 minute):
<session-config>
<session-timeout>1</session-timeout>
</session-config>
2) Then create a session in the login RemoteServiceServlet:
/* user is authenticated */
HttpSession session = getThreadLocalRequest().getSession();
3) And check if a session has expired at the beginning of every RPC method:
HttpSession session = getThreadLocalRequest().getSession(false);
if (session == null) {
/* means the session has expired */
}
On Wed, Jun 3, 2009 at 11:12 PM, Kamal Chandana Mettananda <[email protected]
> wrote:
> Hi Hez,
>
> As Tony said, setting the session time out in the server would be the
> better way.
>
> I guess that you are trying to set this timeout in client side because you
> let individual users configure their session time out period. If that is the
> case, then you will have to follow the way that have mentioned.
>
> HTH,
> Kamal
> ---------------------------------------
> Kamal Mettananda
> http://lkamal.blogspot.com
>
>
>
>
> On Wed, Jun 3, 2009 at 1:32 AM, Tony Strauss <
> [email protected]> wrote:
>
>>
>> What about timing out the session on the server?
>>
>> Assuming that you're using a Java application container on the server,
>> you can add the following to web.xml:
>> <session-config>
>> <session-timeout>5</session-timeout>
>> </session-config>
>>
>> This will cause the server to time out connections after five minutes
>> of inactivity. With this technique, it's actually possible to
>> intercept requests made after a time out in the onFailure() handler
>> and to take some kind of action (i.e., redirect to a login screen).
>>
>> Tony
>> --
>> Tony Strauss
>> Designing Patterns, LLC
>> http://www.designingpatterns.com
>> http://blogs.designingpatterns.com
>>
>> On Jun 2, 11:05 am, hezjing <[email protected]> wrote:
>> > Hi
>> >
>> > I want the session to be expired if the it is idle for 5 minutes.
>> >
>> > I have the following client code after a successful login:
>> >
>> > String sessionID = /* (Get sessionID from server's response to login
>> > request.) */ ;
>> > long DURATION = 1000 * 60 * 5;
>> > Date expires = new Date(System.currentTimeMillis() + DURATION);
>> > // the sid cookie will be expired after 5 min
>> > Cookies.setCookie("sid", sessionID, expires, null, "/", false);
>> >
>> > The problem with the above code is that the session cookie will be
>> expired 5
>> > minutes from the time the session is created and not from the time the
>> last
>> > request to the server.
>> > For example, if a session is created at 00:00, followed by a request at
>> > 00:04, the cookie will still expire at 00:05 instead of 00:09.
>> >
>> > To do this, I have to reset the expiry time of the cookie in every RPC
>> call
>> > like the following:
>> >
>> > public void onFailure(Throwable caught) {
>> > ...
>> > // re-calculate the expiry time
>> > Date expires = new Date(System.currentTimeMillis() + DURATION)
>> > Cookies.setCookie("sid", sessionID, expires, null, "/", false);
>> >
>> > }
>> >
>> > public void onSuccess(...) {
>> > ...
>> > // re-calculate the expiry time
>> > Date expires = new Date(System.currentTimeMillis() + DURATION)
>> > Cookies.setCookie("sid", sessionID, expires, null, "/", false);
>> >
>> > }
>> >
>> > May I know if there a more elegant way of doing this?
>> >
>> > --
>> >
>> > Hez
>>
>>
>
> >
>
--
Hez
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---