Выход из Websphere 6.1 JAAS
Вопрос
У меня есть веб-приложение на 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