The creds passed to ChannelSet.login() are cached in client memory in Base64 
encoded format and are cleared by a ChannelSet.logout() call. This allows 
channel hunting/fallback to be seemless at initial connect time as well as 
during reconnect following a temporary network failure or the remote clustered 
server that you're currently connected to failing.

There are legacy setCredentials() and logout() methods on RemoteObject, etc. 
but those should be avoided because authentication is actually scoped to your 
connection to the server (in the case of an HTTP server session, the scope is 
the entire browser process - including all tabs/windows/etc.), not to a 
specific RemoteObject instance.

Remember to always use a secure channel+endpoint when your client is 
authenticating to the server, to keep the encoded creds safe over the network.

To dodge the timeout entirely, issuing a no-op request from the client to the 
server on a Timer interval shorter than your server session timeout will keep 
the server session alive and logged in.

Best,
Seth

From: [email protected] [mailto:[email protected]] On Behalf 
Of rydellfinn
Sent: Tuesday, January 06, 2009 2:21 PM
To: [email protected]
Subject: [flexcoders] Re: BlazeDS - Best practice for determining if server 
session is invalid.

Seth - 

Thanks for the detail - I just noticed your answer on this one over
break. 

Setting login-after-disconnect to true does sound appealing. I'm was
curious, where are the credentials stored to allow the reconnection? 
In the server session or on the client?

Also - I did successfully get the "Client.Authentication" error when I
hit a service after the session timed out. That helps. I was
interested in catching the timeout before it occurs so I can warn the
user before the timeout occurs.

To implement this, I was thinking of setting a client-side timer that
would pop up a warning message on an interval that is smaller than the
server timeout length. Is there a better way?

Thanks again for your help! 

Reply via email to