Ограничить доступ JSP / Servlet к конкретным пользователям

StackOverflow https://stackoverflow.com/questions/3134228

Вопрос

Я разрабатываю веб-приложение. Я хотел бы иметь возможность позволить друзьям увидеть это, но не другие, которые спотыкаются на 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/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top