Проверка подлинности URL Tomcat, например: https://user:password@app.wibble.com - PullRequest
3 голосов
/ 15 мая 2010

Я пишу приложение tomcat, и мне нужно выполнить аутентификацию по URL-адресу, например так:

https://user:password@app.wibble.com

За исключением моей жизни, я не уверен, как его настроить или найти документы для чтения, очевидно, мои навыки работы с Google должны работать.

Может кто-нибудь сказать мне, где я должен искать такую ​​информацию или с чего начать?

Приветствия

Andy

Ответы [ 3 ]

2 голосов
/ 15 мая 2010

Аутентификация таким образом называется HTTP BASIC, что может помочь при поиске:)

По сути, вам нужен элемент в вашем web.xml, подобный этому

<login-config>
  <auth-method>BASIC</auth-method>
  <realm-name>myRealm</realm-name>
</login-config>

Затем вам нужно настроить область для ваших пользователей:

http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html#Configuring%20a%20Realm

Затем вам нужно создать несколько пользователей в файле tomcat-users.xml

Теперь вы можете начать использовать <security-constraint> элементы в вашем web.xml для управления доступом.

Кроме того, в современных браузерах вы должны использовать управляемую контейнером безопасность, если хотите использовать BASIC. Иногда люди пытаются проанализировать запрос в сервлете и получить из него имя пользователя / пароль. Современные браузеры «защитят» вас от ненужного раскрытия пароля, не помещая логин и пароль в заголовок, если только первоначальный вызов на сервер без него не завершится с вызовом для учетных данных BASIC.

0 голосов
/ 15 мая 2010

Клиент должен взять учетные данные из URL-адреса и поместить их в правильные заголовки для поддерживаемого метода аутентификации (например, HTTP Basic или Digest). Сервер просто получит местоположение (в данном случае "/") и заголовок WWW-Authenticate, который должен быть обработан Tomcat, если у вас правильно настроена управляемая контейнером аутентификация.

0 голосов
/ 15 мая 2010

Я не думаю, что это официальный URL. Если я правильно читаю RFC , '@' недопустимо в разделе хоста - app.wibble.com - URL-адреса, а в URL-адресах http нет разделов пользователя и пароля. Электронная почта и FTP делают, но не http.

Возможно https://app.wibble.com/user/password, но я бы не советовал вводить пароль в URL. Он попадет в какой-то кеш, где его можно найти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...