Как вы можете идентифицировать и переслать "не авторизованных" пользователей обратно на страницу входа?
Я создал веб-приложение, используя JSP, Servlet и JDBC (БЕЗ РАМКИ). У нас есть безопасность аутентификации на основе форм, когда пользователь должен войти в систему первым. Имена пользователей и пароли находятся в базе данных, и, как и в любом интернет-приложении, имя пользователя и пароли создаются самими пользователями.
Мы использовали Java Sessions
идентифицировать пользователей и выяснить, вошел ли человек в систему или нет. что мы делаем на каждой странице сервлета и странице JSP, мы проверяем, является ли сеанс новым или нет, и доступен ли сеанс, если есть какие-либо проблемы, мы перенаправляем пользователей обратно на страницу входа. Это защищает пользователей, имеющих прямой доступ к URL-адресам, таким как www.xxx.com/questions?idEmployee=1
,
Теперь проблема приходит. Я знаю, что нам не нужно писать код Java на каждой странице, чтобы проверить, вошел ли человек в систему или нет. Есть что-то, что мы можем сделать с дескриптором развертывания, верно? Так что он может автоматически проверять вещи и пересылать пользователям.
Однако ответы, которые я нашел в Google, касаются жесткого кодирования имени пользователя и пароля в дескрипторе развертывания, поэтому для нас это бесполезно. Итак, как мы можем решить эту проблему без жесткого кодирования имен пользователей и паролей в дескрипторе развертывания?
2 ответа
- Вариант 1: как предлагают другие
Filters
, - Вариант 2: Написать JSP для проверки сеанса и перенаправить пользователя, если требуется. Теперь импортируйте упомянутый jsp для сброса jsp, которые требуют допустимого сеанса.
Лучшее решение - написать один класс Filter (Servlet), который позволит избежать перезаписи кода каждого файла JSP.
В классе фильтра вы можете проверить сеанс.