Login через Tomcat

 
0
 
Java
ava
ShurikA | 29.03.2008, 14:50
Только сейчас начал разбираться с J2EE.
Появился такой вопрос:
Как точно организовывается логин и регистрация через кота?
Точнее как логин я уже понял, осталось только понять как это дело правильно отконфигурировать в Tomcat.
А каким образом делается регистрация?

Спасибо.
Ответы (10)
ava
mbasil | 29.03.2008, 21:54 #
Web клиент может аутентифицировать пользователя на web сервере с использованием одного из следующих механизмов:

BASIC - HTTP Basic Authentication. В этом случае браузер запрашивает у клиента имя и пароль, которые затем засылаются серверу в открытом виде.
DIGEST - HTTP Digest Authentication В этом случае браузер запрашивает у клиента имя и пароль, которые затем засылаются серверу в виде «дайджеста», в зашифрованном виде (например, с помощью такого алгоритма, как MD5). Шифруется пароль.
FORM - Form Based Authentication Разработчик приложения должен обеспечить HTML форму для аутентификации, которая засылается в клиентский браузер. Небезопасен, поскольку имя и пароль не шифруются.
CLIENT-CERT - HTTPS Client Authentication Для проверки пользователя контейнер использует SSL протокол. Пользователь должен иметь SSL сертификат.

Наиболее безопасным является CLIENT-CERT.

Основанный на форме способ аутентификации должен использоваться при управлении сеансами с помощью cookies или SSL информации сеансов. В этом случае в логин форме атрибут action должен всегда иметь значение j_security_check. Такой подход дает возможность иметь HTML страницу аутентификации не привязанную к какой-либо выходной форме в атрибуте action.
Представленный ниже пример показывает, как должна выглядеть подобная форма на HTML странице для аутентификации:

<form method=”POST” action=”j_security_check”>
<input type=”text” name=”j_username”>
<input type=”password” name=”j_password”>
</form>

При этом в дескрипторе развертывания должно находиться описание механизма аутентификации приложения и описание формы и страницы ошибок:

<login-config>
<auth-method>FORM</auth-method>
<!--realm-name not required for FORM based authentication -->
<form-login-config>
<form-login-page>/formlogin.html</form-login-page>
<form-error-page>/formerror.html</form-error-page>
</form-login-config>
</login-config>

Отметим, что при использовании метода FORM не требуется написания какого бы то ни было сервлета для обработки процесса подключения. Действие j_security_check заставляет контейнер выполнять процесс.
Пользователи должны быть описаны в файле /conf/tomcat-users.xml:

<tomcat-users>
<user name="tomcat" password="tomcat" roles="tomcat" />
<user name="role1" password="tomcat" roles="role1" />
<user name="both" password="tomcat" roles="tomcat,role1" />

<user name="john" password="jjj" roles="employee" />
<user name="mary" password="mmm" roles="employee" />
<user name="bob" password="bbb" roles="employee, supervisor" />
</tomcat-users>
ava
vzf | 29.03.2008, 22:50 #
1)

Цитата


DIGEST - HTTP Digest Authentication В этом случае браузер запрашивает у клиента имя и пароль, которые затем засылаются серверу в виде «дайджеста», в зашифрованном виде (например, с помощью такого алгоритма, как MD5). Шифруется пароль.



Ну, если быть точным, передается хеш пароля. хеш-функция и шифрограмма немного разные вещи.

2)
Цитата


Пользователи должны быть описаны в файле /conf/tomcat-users.xml:



Не только. Томкат предоставляет несколько вариантов получения информации о пользователях и их ролях. Самый простой способ - это хранение такой информации в файле tomcat-users.xml. Кроме этого, Томкат может брать информацию о пользователях из БД и из LDAP-сервера. Также есть возможность написать свой Realm, используя фрэймворк JAAS, в котором можно реализовать свою логику по проведению аутентификации пользователей и получению информации об их ролях.

В документации к Томкату об этом все достаточно доступно написано.
ava
ShurikA | 30.03.2008, 00:29 #
Спасибо за столь подробные ответы.

Есть следующий:
Каким образом обеспечить регистрацию?
Или единственный путь это в run-time переделывать /conf/tomcat-users.xml?
ava
COVD | 30.03.2008, 15:24 #
Цитата


Каким образом обеспечить регистрацию?



Присоединяюсь к вопросу ( конечно же, это где-то описано ). Изобилие встроенных в Томкат способов аутентификации интересно обсудить в контексте типов пользователей. Если аутентифицируемые - узкий круг администраторов, то, наверное, их удобно записать в файл или LDAP. Если это пользователи интернета, которые каждый день регистрируются и удаляются, то, наверное, база данных.
ava
ShurikA | 30.03.2008, 23:50 #
Цитата (COVD @ 30.3.2008, 14:24 findReferencedText)
наверное, база данных.

Да но каким образом завизать кота на базу. Наверняка есть какой то миханизм.
В пример приведу ASP. У них есть движок который такое дело поддержывает. 100% в JAVA тоже должен быть.
ava
ivg | 31.03.2008, 07:11 #
Цитата (ShurikA @ 30.3.2008, 23:50 findReferencedText)
Да но каким образом завизать кота на базу. Наверняка есть какой то миханизм.

В пример приведу ASP. У них есть движок который такое дело поддержывает. 100% в JAVA тоже должен быть.


Цитата (vzf @ 29.3.2008, 22:50 findReferencedText)
В документации к Томкату об этом все достаточно доступно написано.


Для совсем ленивых Чо уж ... smile
ava
ShurikA | 31.03.2008, 08:16 #
Цитата (ivg @ 31.3.2008, 06:11 findReferencedText)
В документации к Томкату об этом все достаточно доступно написано.

А вот слона то я и не заметил:)

Спасибо.
ava
ShurikA | 06.08.2008, 23:27 #
Цитата (vzf @ 29.3.2008, 21:50 findReferencedText)
Томкат может брать информацию о пользователях из БД

А можно немного поподробнее на эту тему. Где можно про это почитать?
ava
powerOn | 06.08.2008, 23:44 #
ShurikA, тебе ivg ссылку на доку дал, посмотри там JDBCRealm. smile
ava
ShurikA | 06.08.2008, 23:45 #
powerOn,
Виноват smile
Спасибо!!!
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  COVD   vzf   powerOn   ShurikA   ivg   mbasil
advanced
Отправить