Проверка подлинности на основе форм Tomcat с помощью приложения ajax
Я использую аутентификацию Tomcat на основе форм в веб-приложении, в котором большую часть времени используется вызов ajax. Конфигурация области довольно хорошо задокументирована, и она работает.
Моя проблема начинается, когда сессия пользователя заканчивается по любой причине. Последующий ajax-вызов будет иметь ответ 200 ok, с контентом, являющимся страницей входа.
Я ищу способ изменить beavaior tomcat, например, отправить 401 вместо сокрытия содержимого, принудительное перенаправление клиента или любое другое решение, позволяющее сценарию JS знать, что сеанс завершен и проверка подлинности требуется еще раз,
2 ответа
То, что я в итоге делаю, это на стороне js сканировать начало каждого ответа, используя короткое регулярное выражение, например:
/^<!DOCTYPE html>/.test(responseBody)
Это работает, но занимает дополнительное время для каждого запроса. Это работает только потому, что я знаю, что никогда не использую html как ответ от сервера.
После прочтения этого http://www.htmlcodetutorial.com/document/index_tagsupp_13.html я попытался добавить какой-либо настраиваемый заголовок с метатегом http-эквивалент на своей странице входа в систему html.
Но это не работает, как ожидалось. Похоже, что tomcat не читает статический контент для добавления заголовков.
Я должен также упомянуть этот пост: http://blog.pengoworks.com/index.cfm/2007/10/9/Expiring-Session-via-AJAX-using-HTTP-Response-Headers