Ограничить доступ JSP / Servlet к конкретным пользователям
-
01-10-2019 - |
Вопрос
Я разрабатываю веб-приложение. Я хотел бы иметь возможность позволить друзьям увидеть это, но не другие, которые спотыкаются на URL. Я собирался поставить страницу посадки, а затем простой пароль. Как только правильный пароль введен, я бы просто записал его на сеанс и выставляем сайт как обычно в течение всего времени, когда они открываются браузером.
Есть ли стандартный способ сделать это? Я бы добавил дополнительный код для моего WebApp, чтобы поддерживать это, я не уверен, есть встроенный способ сделать это уже (я использую Java Servelets).
Спасибо
Решение
Вы можете использовать Контейнер управлял аутентификацией с использованием дескрипторов развертывания. Отказ Это не требует дополнительного кода в вашей стороне ожидания о простом виде входа с полем ввода и пароля, которое представляет URL-адрес j_security_check
. Отказ Вот основной пример:
<form action="j_security_check" method="post">
<input type="text" name="j_username">
<input type="password" name="j_password">
<input type="submit">
</form>
Предполагая, что у вас частные страницы в папке по имени /private
и вышеуказанная страница входа в систему находится в /private/login.jsp
, Затем добавьте следующие записи в WebApp's web.xml
:
<security-constraint>
<web-resource-collection>
<web-resource-name>Private</web-resource-name>
<url-pattern>/private/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>friends</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Private</realm-name>
<form-login-config>
<form-login-page>/private/login.jsp</form-login-page>
<form-error-page>/private/error.jsp</form-error-page>
</form-login-config>
</login-config>
Затем, в сервлете, который вы используете, вам нужно настроить так называемый Область для Private
. Отказ Поскольку он неясен, какой сервлетчик вы используете, вот целевой документ Tomcat 8.0: Конфигурация царства, как-к. Отказ Вы можете настроить его, чтобы проверить комбинацию имени пользователя / пароля на XML-файл или базу данных или даже пользовательское местоположение.
Совершенно другая альтернатива - домеровой механизм входа в систему с помощью Filter
которые проверяют наличие зарегистрированного пользователя в области сеанса. Видеть это а также это Ответьте, как это достичь.
Другие советы
Вы должны подумать об использовании простой аутентификации с помощью HTACCESS
Видеть http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/