Вопрос

У меня есть веб-приложение на WAS 6.1, использующее JAAS, которое уже работает.Аутентификация и авторизация в установленном порядке.Но моя страница выхода не отменяет авторизацию участника.Это приложение корректно работает на JBoss и Glasfish, но не на WAS.

Моя страница выхода представляет собой простой JSP с этим содержимым.

<%System.out.println("principal is not null:"+(null != request.getUserPrincipal()));

if (null != request.getSession(false))
request.getSession(false).invalidate();
%><jsp:include page="/index.html" />

Я что-то пропустил?Я бы предпочел не использовать какой-либо конкретный API от Webpshere, но если это абсолютно необходимо, я это сделаю.

Это было полезно?

Решение

Для успешного выхода из системы также необходим этот фрагмент кода:

try {
        com.ibm.websphere.security.WSSecurityHelper.revokeSSOCookies(request, response);
     } catch(Exception e) {
        // catch all possible exceptions if you want or handle them separately
        out.println("JAASLogoutServlet: logout Exception = " + e.getMessage());
        throw new ServletException(e);
}

Другие советы

IBM также реализует форму ibm_security_logout.Я использовал его в WebSphere 7.0, но он существует и в предыдущей версии.Более подробно мой ответ на мой вопрос можно найти:

Как выйти из системы безопасности, управляемой контейнером Java EE?

В WebSphere 8.5.5 (возможно, и в более старых версиях) вы можете установить пользовательское свойство.

Безопасность -> Глобальная безопасность -> Пользовательские свойства.

com.ibm.ws.security.web.logoutOnHTTPSessionExpire=true   
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top