Работая с JBoss AS 5.1, JSF 1.2 и Seam 2.2, я пытаюсь регистрировать открытия и закрытия сеансов.
AFAIK, в момент события org.jboss.seam.preDestroyContext.SESSION
, в случае тайм-аута сеанса, FacesContext
, что кажется естественным, так как нет запущенного HTTP-запроса, поэтому я не могу получить из него идентификатор сеанса.Но все еще есть контекст сеанса Seam, который доступен Contexts.getSession()
.
Когда я динамически проверяю объект Contexts.getSession()
в отладчике, я вижу JSESSIONID
во внутреннем Map
.Я хотел бы сделать что-то вроде:
String sessionId = Contexts.getSession().get("JSESSIONID");
Но, очевидно, JSESSIONID
не является правильным ключом для получения идентификатора сеанса.Я безуспешно пытался id
, SessionId
.Метод SessionContext.getNames()
возвращает список ключей:
anonPersistentPermissionResolver
loggedUserId
org.jboss.seam.security.ruleBasedPermissionResolver
org.jboss.seam.web.session
com.sun.faces.application.StateManagerImpl.SerialId
org.jboss.seam.international.timeZoneSelector
org.jboss.seam.international.localeSelector
org.jboss.seam.security.defaultResolverChain
org.jboss.seam.security.persistentPermissionResolver
javax.faces.request.charset
crumbs
org.jboss.seam.core.conversationEntries
debateId
org.jboss.seam.security.credentials
com.sun.faces.logicalViewMap
org.jboss.seam.security.identity
org.jboss.seam.security.rememberMe
Значение org.jboss.seam.web.session
не содержит идентификатор сеанса.
Как получитьидентификатор сеанса от Contexts.getSession()
?