![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
viktor_sch |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 6.1.2007 Репутация: нет Всего: нет |
Я имею защищенный стандартным ролевым механизмом бин. И имею сервлет, который должен вызывать метод этого бина. Сервлет не защищен. Я явно указываю логин и пароль, как это советуют люди в мэйлистах и форумах:
Почему то у меня это не работает. Может потому, что сам сервлет не защищен. возникает исключение
Когда я защищаю сам сервлет, все, естественно, работает нормально. Проблема в том, что я не могу использовать защиту сервлета, потому что он должен будет вызываться автоматически из отдельностоящего http-клиента, логин и пароль к которому будут передаваться в виде джава аргументов. Буду рад любым предложениям насчет того, как программно указать в сервлете параметры аутентификации. |
||||
|
|||||
ecologist |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 452 Регистрация: 28.2.2007 Репутация: 5 Всего: 9 |
Чисто теоретически - можно сделать закрытый сервлет, в котором вызывать бин. И сделать открытый, который может форвардиться на закрытый сервлет. И в открытом сделать какую-то проверку введенных данных.
|
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Полагаю, что вместо этого
надо задействовать JAAS. Если web контейнер воспринимает аутентификацию и авторизацию правильно, то она передается и в EJB контейнер. |
|||
|
||||
viktor_sch |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 6.1.2007 Репутация: нет Всего: нет |
Не подскажете ли каким образом следует использовать JAAS, пример кода или ссылку куда-нить. Буду очень признателен. А насчет аутентификации в web-контейнере, все правильно, как и описано в сановском туториале про безопасность. А есть ли возможность программно передать параметры аутентификации при вызове сервлета или jsp-странички логина? При настройке безопасности для веб-контейнера в случае модели FORM, в web.xml указывается страничка логина и страничка с выводом сообщения об ошибке аутентификации. Вот код странички логина:
Есть ли какой-то способ программно указать значения параметров j_username и j_password? Непонятно ведь, куда следует отправлять пост-запрос от http-клиента с этими параметрами? Идея собственно и заключается в том, чтобы вызвать защищенный сервлет полностью автоматически. |
||||
|
|||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
К сожалению под рукой у меня сейчас нет материалов, но достаточно
подробное описание (в части безопасности и JAAS) видел в книге: Хорстманн, Корнелл "Java 2. Библиотека профессионала. Том 2. Тонкости программирования" а также пример использования в книге: Перри Брюс У. "Java сервлеты и JSP: сборник рецептов." В одной из этих книг, в части использования JAAS, мне кажется, видел подход для решения вашей задачи. И еще одно замечание. Вот текст получения полномочий из HTTP запроса
То есть в вашем клиенте "не браузере" вы можете в заголовок HTTP запроса "Authorization" запихнуть (обратным образом) нужные полномочия программно. Это сообщение отредактировал(а) mbasil - 5.3.2009, 14:29 |
|||
|
||||
mbasil |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Кстати
1. Чтобы использовать недокументированный кодер BASE64 нужно сделать импорт
2. Первые символы в HTTP заголовке "Authorization" это просто слово, обозначающее тип аутентификации (например Basic) и после пробела закодированные в BASE64 имя и пароль, разделенные символом двоеточия. Таким образом ваш клиент сможет сгенерировать и передать имя и пароль. И конечно в случае автоматической засылки имени и пароля из клиента не браузера надо использовать аутентификацию не формой, а Basic 3. Заставить клиента аутентифицироваться можно также программно, заслав ему (например в фильтре) только следующее:
Это сообщение отредактировал(а) mbasil - 5.3.2009, 16:57 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |