после операции входа в систему с помощью j_security_check

Я использую аутентификацию на основе форм и j_security_check в своем приложении j2ee, которое работает на Glassfish 3.1. Проблема в том, что при успешном входе в систему мне нужно обновить некоторые данные, относящиеся к аутентифицированному пользователю. Как сделать операцию после входа в систему после того, как j_security_check завершит ее выполнение? Спасибо.


person user992140    schedule 12.10.2011    source источник


Ответы (2)


Обходной путь для Servlet 3.0 (или Java EE 6): вызовите HttpServletRequest.login() из управляемого bean-компонента, и если он не генерирует исключение, выполните операции после входа в систему.

person palacsint    schedule 12.10.2011
comment
Всегда есть простое решение для всего :) Спасибо! - person user992140; 14.10.2011
comment
что, если я ограничен только Java EE 5? - person setzamora; 19.03.2012

  1. Создайте фильтр, сопоставленный с j_security_check

  2. Вам необходимо перезаписать заголовок Origin ответа перед chain.doFilter(request, response); этого фильтра, а также поместить URL-адрес перенаправления сообщения в файл cookie WASReqURL (или файл cookie Glassfish, который содержит следующий URL-адрес)

  3. Ссылка, которую вы выбрали на шаге 2, должна быть сопоставлена ​​с сервлетом, который выполняет материал post-j_security_check, а затем перенаправляет обратно на перезаписанную ссылку с шага 2.

person Hesham Yassin    schedule 16.08.2018
comment
1. Реально ли ловить запросы к j_security_check в i Filter? Разве JAAS не должен ловить эти запросы и не пропускать их на сервер? - person Per Lindberg; 10.04.2019
comment
да, но этот фильтр будет перед запуском проверки подлинности. Следовательно, предполагать, что что-либо об учетных данных, таких как добавление данных в сеанс, является неправильным подходом. - person Hesham Yassin; 11.04.2019