Запрос к j_security_check возвращает ошибку 408 только с правильными параметрами

Я хочу отправить запрос на j_security_check из сервлета и получить cookie аутентификации из ответа. Код:

String url = "http://someserver:8080/j_security_check?j_username=user&j_password=qwerty";
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();

Если я введу неправильные параметры аутентификации, то в ответ я получаю страницу с неправильным входом по умолчанию, но если я введу правильные параметры аутентификации, я получу код сервера 408. Что не так?


person Alexander    schedule 04.04.2011    source источник


Ответы (1)


Чтобы получить какой-то ресурс на сервере tomcat с авторизацией j_security_check, необходимо выполнить три шага:

  1. Отправьте GET-запрос на нужный приватный ресурс, в ответ вы получите cookie (Заголовок «Установить cookie».
  2. Отправьте запрос с cookie (из шага 1) в j_security_check. В ответ вы получите код 302 - «Временно перемещен».
  3. Теперь вы можете повторить запрос к частному ресурсу с тем же файлом cookie, в ответ вы получите необходимые данные ресурса.
person Alexander    schedule 08.04.2011
comment
Я думаю, следует пояснить, что эта последовательность шагов должна быть реализована, потому что до того, как сервлет аутентификации проверит активный сеанс клиента. Если этот сеанс истек или сеанса вообще не было (если запрос к j_security_check был начальным), сервер вернет HTTP Error 408 Request timeout. - person Aleksandr Erokhin; 19.05.2015