2012-05-10 2 views
1

Я знаю, что этот вопрос не хороший вопрос, потому что он открыт к Gazillion ответов, но здесь это:Аутентификация: его простая форма в Java EE 6

Я новичок в Java EE 6 (на JBoss AS 7), Я родом из весеннего мира Tomcat +. Мое первое настоящее веб-приложение - это что-то вроде простой crud с jsf jpa hibernate и ejb. Теперь мне нужно защитить URL (/ admin/*) с помощью самой тривиальной формы входа. У меня уже есть две таблицы (спящие сущности) с именем «Пользователь» (имя пользователя, пароль, роль_ид и другие данные) и «Роль» (код, имя и немного больше). Я мог бы создать свой собственный LoginController, с учетом сеанса, который управляет связанными с регистрацией вопросами, но я не знаю, как сказать «эй, это только для/admin путь!» Итак ... Я начал читать о настройке web.xml: ограничения безопасности, jdbc realms и т. Д. Однако, извините, но я до сих пор не могу достичь хорошей точки знаний, я слишком увлекаюсь учебными пособиями и обучением.

Можете ли вы помочь мне найти пример проекта с простой формой входа? Или, по крайней мере, какой-то учебник или несколько советов о том, как привязать мою форму входа к моим таблицам db? Мне не нужны 500 страниц точной документации. Просто пытаюсь выполнить «стандартную» аутентификацию.

+0

Посмотрите на [этот вопрос и ответ] (http://stackoverflow.com/q/10483132/620338). OP разместил для вас интересные ссылки. Ответ показывает мою собственную (рабочую) конфигурацию примера. –

ответ

1

Хорошо. В первую очередь механизм аутентификации не обеспечивается стандартом Java EE. Только проверка подлинности на основе ролей является частью спецификации. Поэтому каждый сервер приложений должен иметь свой собственный механизм аутентификации, который позволяет нам использовать базу данных, LDAP и т. Д. Для хранения учетных данных пользователя.

В случае JBoss это выглядит следующим образом.

(1) Вам необходимо определить ограничение безопасности в вашем web.xml (есть тонны учебников, как это сделать). Он сообщает, какие URL-адреса необходимы для входа в систему. Вам нужно определить элемент login-config, чтобы выбрать способ входа пользователя в систему - с помощью всплывающего окна браузера или пользовательской формы.

(2) Вам необходимо определить защитный домен стороны JBoss в файле configuration/standalone.xml. См. Например, this example.

(3) Вам необходимо присоединиться (1) и (2). Это делается в файле jboss-web.xml с WEB-INF вашего приложения. Это выглядит более или менее

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-web> 
      <security-domain>NAME-OF-DOMAIN-DEFINED-IN-STEP-2</security-domain> 
      <context-root>ROOT-OF-YOUR-APP</context-root> 
</jboss-web> 

Я не знаю, как это в случае JBoss 7, но в предыдущих версиях вам нужно добавить префикс java:/jaas/, поэтому содержание безопасности домена будет java:/jaas/NAME-OF-DOMAIN-DEFINED-IN-STEP-2.

Кроме того, если вы знаете Spring Framework, вы можете рассмотреть использование Spring Security, минуя механизмы Java EE.

+0

Спасибо, Петр, это хороший ответ, я соглашусь, если мне удастся. Первое, что привлекает мое внимание: как насчет jboss с 100 веб-приложениями, развернутыми? На шаге 2 = много ? –

+1

> В первую очередь механизм аутентификации не предоставляется стандартом Java EE. - Это неправда. Java EE 6 имеет стандарт для этого, называемый JASPIC (JASPI/JSR 196). –

Смежные вопросы