![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| rimidal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 25.9.2007 Репутация: нет Всего: 1 |
Серевер приложений - GlassFish v2. Изучаю примеры из Sun-го туториала.
hello1_formauth - собственно в этом примере я столкнулся с этой ошибкой (кроме этого примера такая же ошибка наблюдается и в админке самого GlassFish-а). Ошибка возникает после следующих действий: открываем страничку авторизации (например http://localhost:8080/hello1_formauth/logon.jsp) , вводим логин и пароль после чего успешно переходим на "защищенную" страничку (например http://localhost:8080/hello1_formauth/index.jsp), теперь если в браузере нажать кнопку назад и попытаться еще раз пройти авторизацию то возникает ошибка 404. Возможно ли сделать так чтобы повторная авторизация была возможна (чтоб сервер сам завершал предыдущую сессию и открывал новую)? |
|||
|
||||
| jokodzuma |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 20.7.2008 Репутация: нет Всего: нет |
сервер сам завершит сессию через тридцать минут (по умолчанию) в случае бездействия клиента. клиент сможет завершить сессию, послав серверу запрос на завершение, прежде чем захочет начать новую.
|
|||
|
||||
| rimidal |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 25.9.2007 Репутация: нет Всего: 1 |
Это все понятно... Если таймаут истек то таких проблем не возникает. Можно например перехватывать все обращения к j_security_check и смотреть факт авторизации и пытаться сделать переадресацию или что-то вроде. Меня интересует почему сам j_security_check (это наверное какой-то стандартный сервлет) не доступен после авторизации сесcии? Вот что я пытался сделать: часть кода фильтра перехватывающего обращения к j_security_check
В результате все равно имеем Error 404. |
||||
|
|||||
| jokodzuma |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 20.7.2008 Репутация: нет Всего: нет |
1. Контекст j_security_check нельзя перехватывать согласно спецификации сервлетов, по крайней мере 2.3. Что за сервер, какая версия сервлетов? 2. Что в строке отображается в строке адреса после нажатия кнопки "назад"? Какой браузер, какой версии? |
||||||
|
|||||||
| rimidal |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 25.9.2007 Репутация: нет Всего: 1 |
Сервер: Sun Java System Application Server 9.1_02 (build b04-fcs)
Строке адреса после нажатия кнопки "назад":https://localhost:8181/hello1_formauth/logon.jsp Версия сервлетов (если я не ошибаюсь): 2.4 На всякий случай привожу xml файлы: web.xml
sun-web.xml
Это сообщение отредактировал(а) rimidal - 21.7.2008, 14:59 |
||||
|
|||||
| jokodzuma |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 20.7.2008 Репутация: нет Всего: нет |
а еще /logon.jsp покажите, пожалуйста
|
|||
|
||||
| rimidal |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 25.9.2007 Репутация: нет Всего: 1 |
logon,jsp
Тестировал в браузерах: FireFox 3.0, Internet Explorer 6.0 |
|||
|
||||
| jokodzuma |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 20.7.2008 Репутация: нет Всего: нет |
да. это стандартный контекст в пункте J2EE.12.5.3.1 Login Form Notes спецификации 2.3 об этом сказано. этот контекст нельзя перехватывать и "слушать". покажите еще 1. исходный код страницы, на которую попадаете после нажатия "назад" 2. "подробное" (где-то в настройках ИЕ включается) сообщение об ошибке Добавлено через 9 минут и 9 секунд кстати, обычно если пользователь хочет завершить сессию, то сознательно нажимает кнопку "логаут", а не авторизуется в рамках текущей сессии под новым логином. я, например, другого не встречал ни разу Это сообщение отредактировал(а) jokodzuma - 21.7.2008, 17:11 |
|||
|
||||
| rimidal |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 25.9.2007 Репутация: нет Всего: 1 |
это /logon.jsp
это опция включена. Вот все что сервер отвечает:
Смотрел по логам самого сервера - все пусто. Пытался отловить эту ошибку, через error page по эксепшену java.lang.Throwable - тоже пусто. Только удалось перехватить код возврата 404 и все. Там пытался выводить возникшее исключение - пусто.
мне удается перехватывать фильтром обращение к URL http://localhost:8080/hello1_formauth/j_security_check
Я полностью с этим согласен, но хочу как-то обрабатывать и описанный выше случай. Конечно он маловероятный, но возможный и может ввести пользователя в смятение. Как я писал выше такой баг наблюдается и в "админке" (http://localhost:4848/) самого GlassFish-а. Мелочь, а неприятно. Это сообщение отредактировал(а) rimidal - 21.7.2008, 18:12 |
||||||||||
|
|||||||||||
| jokodzuma |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 20.7.2008 Репутация: нет Всего: нет |
||||
|
||||
![]()
|
| Правила форума "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. |