Кажется, я столкнулся с стеной с реализацией SessionListener в XPages. Слушатель печатает вывод в журнал при создании сеанса, поэтому я знаю его правильно зарегистрированный. Однако при выходе из системы он не вызывает sessionDestroyed. Есть ли какая-либо специальная переадресация URL, которую мне нужно выполнить, чтобы сразу же после выхода из системы уничтожить сеанс Domino/XPage? Как вы видите, я попытался очистить области и очистить куки, пытаясь запустить метод sessionDestroyed. Обратите внимание, что sessionDestroyed вызывает вызов при перезагрузке задачи http-сервера, поэтому кажется, что сеансы могут задерживаться до таймаута бездействия.SessionListener sessionDestroyed not called
Дев Сервер: 9.0.1 (64 бит, работает локально на Win7) Запуск одного сервера аутентификации на основе сеансов (примечание: я попытался основную AUTH, та же проблема)
выхода из системы (служебный метод вызывается SSJS):
public static void logout(){
String url = XSPUtils.externalContext().getRequestContextPath() + "?logout&redirectto=" + externalContext().getRequestContextPath();
XSPUtils.getRequest().getSession(false).invalidate();
//wipe out the cookies
for(Cookie cookie : getCookies()){
cookie.setValue("");
cookie.setPath("/");
cookie.setMaxAge(0);
XSPUtils.getResponse().addCookie(cookie);
}
try {
XSPUtils.externalContext().redirect(url);
} catch (IOException e) {
logger.log(Level.SEVERE,null,e);
}
}
простой слушатель сессии:
public class MySessionListener implements SessionListener {
public void sessionCreated(ApplicationEx arg0, HttpSessionEvent event) {
System.out.println("***sessionCreated***");
}
public void sessionDestroyed(ApplicationEx arg0, HttpSessionEvent event) {
System.out.println("***sessionDestroyed***");
}
}
Помогает ли это? http://stackoverflow.com/a/11183463/785061 –
Благодарим вас за отзыв. Я нашел этот пост во время моего исследования проблемы. Моя проблема связана не с созданием сеанса, либо с регистрацией слушателя (sessionCreated is firing). Имеет отношение к sessionDestroy после аннулирования HttpSession и выполнения перенаправления выхода. Этот метод не будет срабатывать, пока я не перезапущу http и/или не жду тайм-аута. –
Вы попробовали [ExtLib Logout Control] (http://notesin9.com/index.php/2012/03/09/notesin9-049-xpages-login-and-logout/)? – stwissel