WebSEAL - WAS 7 - не удалось очистить кэш сеанса WAS
У меня есть веб-приложение, развернутое на WAS 7 за TAM WebSEAL 6.1, использующее TAI, LTPA2 единый вход в систему. Вход в систему пользователя и SSO работает отлично. При выходе, HTTPSession.invalidate()
вызывается и https://<webseal url>/pkmslogout
называется.
Проблема: после выхода из системы сеанс WebSEAL, по-видимому, очищается, но cookie-файлы WebSphere JSESSIONID остаются. Кроме того, кэш сеанса в WAS содержит старую информацию о пользователе при входе в систему с новым пользователем.
Кто-нибудь знает, если я делаю правильную реализацию выхода из системы? Есть ли какая-либо другая конфигурация в настройках единого входа, которая защищает этот кэш сеанса от удаления при аннулировании сеанса?
Реализация кода выхода из системы: logOutURL в приведенном ниже коде является ссылкой WebSEAL pkmslogout
public void logout(ActionEvent event ){
String logOutURL = (String) event.getComponent().getAttributes().get(ATTRIBUTE_NAME_LOGOUT_URL);
getSession().invalidate();
try {
FacesContext c = FacesContext.getCurrentInstance();
if( c!= null )
{
c.getExternalContext().redirect(logOutURL);
}
} catch (IOException e) {
log.error( "Exception while processing logout redirect.", e );
}
}
Спасибо.
2 ответа
Из другого форума узнал, что ibm_security_logout из WebSphere поможет отменить сеанс. Подробности: http://www-01.ibm.com/support/docview.wss?uid=swg21254556
Я еще попробую это, я буду держать форум в курсе.
В WebSphere 8.5.5 (возможно, и в более старых версиях) вы можете установить пользовательское свойство.
Безопасность -> Глобальная безопасность -> Пользовательские свойства
com.ibm.ws.security.web.logoutOnHTTPSessionExpire= TRUE