Статьи

Защита веб-приложения JBoss

В этой статье описывается, как защитить веб-приложение Java в JBoss с помощью BASIC-аутентификации.

Шаг 1: отредактируйте файл web.xml в вашем приложении

Отредактируйте файл web.xml в своем веб-приложении по следующему адресу:

WEB-INF/web.xml  

Отредактируйте ваш web.xml и поместите следующее содержимое (обычно в конец файла)

<web-app>
....

<security-constraint>
<web-resource-collection>
<web-resource-name>All resources</web-resource-name>
<description>Protects all resources</description>
<url-pattern>/*</url-pattern>
</web-resource-collection>

<auth-constraint>
<role-name>myrole</role-name>
</auth-constraint>
</security-constraint>

<security-role>
<role-name>myrole</role-name>
</security-role>

<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Authorized access only.</realm-name>
</login-config>
</web-app>

Это способ указать контейнеру ограничить все URL-адреса для любого пользователя с ролью « myrole ».

Шаг 2: Создайте jboss-web.xml в вашем приложении

Отредактируйте или создайте файл jboss-web.xml в своем веб-приложении по следующему адресу:

 WEB-INF/jboss-web.xml  

Поместите следующее содержимое:

<jboss-web>
<security-domain>java:/jaas/myappname</security-domain>
</jboss-web>

Это говорит JBoss использовать политику приложения « myappname» для этого приложения.

Шаг 3: Создайте политику приложений на сервере JBoss

Теперь нам нужно определить политику приложения « myappname » на сервере JBoss.

Отредактируйте файл login-config.xml в каталоге сервера JBoss по следующему адресу:

jboss/server/default/conf/login-config.xml   

Отредактируйте содержимое файла login-config.xml и добавьте политику приложения следующим образом:

<policy>
...

<!-- application policy for myappname -->
<application-policy name="myappname">
<authentication>
<login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required">
<module-option name="usersProperties">props/users.properties</module-option>
<module-option name="rolesProperties">props/roles.properties</module-option>
</login-module>
</authentication>
</application-policy>
</policy>

Это сообщает JBoss пользователю «UsersRolesLoginModule», который использует файлы свойств для хранения пользователей и ролей.

Шаг 4: Создание пользователей на сервере JBoss

Теперь мы создаем нового пользователя с ролью «myrole».

Создать нового пользователя

Отредактируйте файл users.properties, используемый вашей политикой приложения на шаге 3.

jboss/server/default/conf/props/users.properties  

Добавьте строку для создания нового пользователя следующим образом.

myuser=mypassword  

Роли

Наконец, мы назначаем роль «myrole» пользователю «myuser». Отредактируйте следующий файл

Создать новую роль

Отредактируйте файл role.properties, используемый вашей политикой приложения на шаге 3.

jboss/server/default/conf/props/roles.properties

Добавьте строку, чтобы создать роль myrole для myuser следующим образом.

myuser=myrole  

Проверьте свои настройки

Перезапустите сервер JBoss и разверните свое приложение. Когда вы получаете доступ к своему приложению, вы должны увидеть всплывающее окно базовой аутентификации.

Если ваши настройки верны, вы сможете войти в систему, используя «myuser» и «mypassword», как определено в шаге 4.

Вывод

Этот подход эквивалентен определению пользователей, паролей и ролей в tomcat-users.xml. Хотя это простой подход и помогает вам начать работу, настоящее производственное веб-приложение не должно хранить свои пароли в незашифрованном виде на диске. В этом примере мы использовали базовую аутентификацию. Для качественных приложений вы должны использовать DIGEST , FORM или CLIENT-CERT.

 

С http://www.vineetmanohar.com/2010/11/securing-a-jboss-web-application/