I am extending HttpSessionStore and keeping track of my sessions there. I am able to get a hold of members of my Session while it is being invalidated. I am not quite sure what you mean by " on the unBind() / onDestroy the actual session object does not exist anymore", the session seems to be available and I am able to access members of it as long as I store the Session in onBind(...). This is what I am doing:
public class ScanManSessionStore extends HttpSessionStore { ... private Map<String, Session> sessions = new ConcurrentHashMap(); private Map<String, Device> devices = new ConcurrentHashMap(); protected void onBind(Request request, Session newSession) { sessions.put(newSession.getId(), newSession); } protected void onUnbind(String sessionId) { if(sessions.containsKey(sessionId)) { Device device = ((ScanManSession)sessions.get(sessionId)).getDevice(); if(device != null) { devices.remove(device.getDeviceId()); } sessions.remove(sessionId); } } ... } Please let me know if there is a problem doing it this way. Warren > -----Original Message----- > From: Robert Novotny [mailto:[EMAIL PROTECTED] > Sent: Thursday, April 03, 2008 3:37 AM > To: users@wicket.apache.org > Subject: RE: Get informed about invalidation of a session > > > > This has been discussed multiple times and the only reasonable > solution that > I found (and just implemented) is to have a concurrent hashmap of session > ids into session objects in the custom Application class. The > reason is that > on the unBind() / onDestroy the actual session object does not > exist anymore > - the only thing you have is the destroyed session ID. > > I needed to persist some user info on the logout. > > My solution goes like this: > public class DavanoApplication extends > org.apache.wicket.protocol.http.WebApplication { > private Map<String, User> activeUsersMap = new ConcurrentHashMap<String, > User>(); > ... > @Override > public void sessionDestroyed(String sessionId) { > User user = activeUsersMap.get(sessionId); > if(user != null) { > userDao.saveOrUpdate(user); > userDao.updateLastLogin(user); > activeUsersMap.remove(sessionId); > } > > > super.sessionDestroyed(sessionId); > } > } > I am not sure whether this is correct solution, but it did help me. > > Robert > > BatiB80 wrote: > > > > Hi Warren, > > > > thanks for your answer. But I'm not sure how I could use this. The > > information that I need to access are stored in the session. How can I > > access a single instance of this session from the session store? > > > > Thanks, > > Sebastian > > > > -- > View this message in context: > http://www.nabble.com/Get-informed-about-invalidation-of-a-session > -tp16447452p16467385.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]