Здравствуйте, Аноним, Вы писали:
А>Для этого я написал LoginModule который содержит всю логику аутентификации.
А>Сам по себе он работает. Если посылать запрос j_security_check?j_username=username&j_password=passwd то после успешной аутентификации в сессии появляется пользователь username, имя котрого я могу получить через req.getRemoteUser().
Вот этот момент не очень понятен. Для j_security_check (контейнероной аутентификации) LoginModule вроде как не нужен. Как ты их связал?
А>Вопрос 1: Как мне провести аутентификацию в логин модуле не посылая запрос j_security_check?
А>Все этапы аутентификации проходят успешно. Subject создается правильно. А getRemoteUser возвращает null.
А>И на страницы защищенные <security-constraint/> меня не пускают
Твоя реализация JAAS и security контейнера кажется не связаны.
А>Вопрос 2: Как поместить subject в сессию так, что бы логин модуль понимал, что аутентификация уже выполнена.
А>Хм... Сумбурно получилось, но если коротко: надо выполнить аутентификацию не посылая запроса j_security_check.
Если кратко — надо подружить аутентификацию контейнера и твою реализацию JAAS. Может я немного путаюсь в терминах, просто совершенно недавно обнаружил у себя пробел в знаниях в этой области. Заполняю.
А>Приложение работает под JBoss4.0, SAS7/SAS8.
Вот тут-то и начинается самое интересное. Вышеописаная задача она контейнеро-зависимая. Смотрел login-config.xml в JBoss? Там тебе и нужно прописать свои классы. Скорее всего свою реализацию LoginModule.