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

Другие вопросы по тегам