Как настроить простую аутентификацию в Jboss7.1

Я работаю над проектом, написанным чистый jsps (скриптлеты) без использования каких-либо фреймворков.

версия jboss: jboss-as-7.1.0.Финал

теперь я пытаюсь добавить на него простую аутентификацию. Поэтому, когда пользователь пытается браузер jsps, скажем,http://localhost/myContextPath/hello.jsp, требуется логин первый.

web.в XML

<security-constraint>
    <web-resource-collection>
        <web-resource-name>All Access</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>DELETE</http-method>
        <http-method>PUT</http-method>
        <http-method>HEAD</http-method>
        <http-method>OPTIONS</http-method>
        <http-method>TRACE</http-method>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
</login-config>

от JBoss-веб.в XML

<jboss-web>
<security-domain>other</security-domain>
</jboss-web>

автономное.xml (папка [jboss_home]standaloneconfiguration)

<subsystem xmlns="urn:jboss:domain:security:1.1">
        <security-domains>
            <security-domain name="other" cache-type="default">
                <authentication>
                    <login-module code="UsersRoles" flag="required">
                        <module-option name="usersProperties" value="users.properties"/>
                        <module-option name="rolesProperties" value="roles.properties"/>
                    </login-module>
                </authentication>
            </security-domain>
            <security-domain name="form-auth">
                <authentication>
                    <login-module code="UsersRoles" flag="required">
                        <module-option name="usersProperties" value="users.properties"/>
                        <module-option name="rolesProperties" value="roles.properties"/>
                    </login-module>
                </authentication>
            </security-domain>
        </security-domains>
    </subsystem>

пользователи.свойства (помещая в папку классов webapp)

user1=jboss7

роли.свойства (помещая в папку классов webapp)

user1=Admin

после всех этих изменений я пытаюсь браузер мой привет jsp. Я работать как обычно. Нет аутентификации, а также нет исключений.

Я не уверен, что я иду в правильном направлении, или ограничение безопасность-это совершенно разные вещи. Пожалуйста, помогите, спасибо!!!

4 ответов


просто настройте базовую аутентификацию для 7.1 следующих шагов из этого статьи.

попробуйте это.

конфигурация

Web.в XML

<security-constraint>
    <web-resource-collection>
        <web-resource-name>All Access</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>DELETE</http-method>
        <http-method>PUT</http-method>
        <http-method>HEAD</http-method>
        <http-method>OPTIONS</http-method>
        <http-method>TRACE</http-method>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>ApplicationRealm</realm-name>
</login-config>

<security-role>
    <role-name>user</role-name>
</security-role>

от JBoss-веб.в XML

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

автономное.в XML

не нужно ничего делать, если вы используете ApplicationRealm.

добавлять

вы можете добавить пользователей ApplicationRealm С использованием средств, предоставляемых в JBoss.

внутри %JBOSS_HOME% / bin. Использовать add-user.bat (or) add-user.sh инструменты.

C:\dev\jboss-eap-6.2\bin>add-user

What type of user do you wish to add?
 a) Management User (mgmt-users.properties)
 b) Application User (application-users.properties)
(a): b

Enter the details of the new user to add.
Using realm 'ApplicationRealm' as discovered from the existing property files.
Username : johngalt
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]: user
About to add user 'johngalt' for realm 'ApplicationRealm'
Is this correct yes/no? yes
Added user 'johngalt' to file 'C:\dev\jboss-eap-6.2\standalone\configuration\application-users.properties'
Added user 'johngalt' to file 'C:\dev\jboss-eap-6.2\domain\configuration\application-users.properties'
Added user 'johngalt' with groups user to file 'C:\dev\jboss-eap-6.2\standalone\configuration\application-roles.properties'
Added user 'johngalt' with groups user to file 'C:\dev\jboss-eap-6.2\domain\configuration\application-roles.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? no
Press any key to continue . . .

C:\dev\jboss-eap-6.2\bin>

Это сработало для меня


Это то, что работает для меня. Добавьте это в интернет.в XML

    <security-constraint>
    <web-resource-collection>
        <web-resource-name>HtmlAuth</web-resource-name>
        <description>application security constraints
        </description>
        <url-pattern>/*</url-pattern>
        <http-method>DELETE</http-method>
        <http-method>PUT</http-method>
        <http-method>HEAD</http-method>
        <http-method>OPTIONS</http-method>
        <http-method>TRACE</http-method>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>user</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>ApplicationRealm</realm-name>
</login-config>
<security-role>
    <role-name>user</role-name>
</security-role>

затем добавьте или создайте JBoss-web.XML-код:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <security-domain>java:/jaas/other</security-domain>
</jboss-web>

добавить имя пользователя в JBoss: C:\jboss\jboss-eap-6.2\bin > add-user.летучая мышь!--4-->

What type of user do you wish to add?
 a) Management User (mgmt-users.properties)
 b) Application User (application-users.properties)
(a): b

Enter the details of the new user to add.
Using realm 'ApplicationRealm' as discovered from the existing property files.
Username : testid
User 'testid' already exits, would you like to update the existing user password
 and roles
Is this correct yes/no? yes
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated
list, or leave blank for none)[user]: user,Manager
Updated user 'testid' to file 'C:\jboss\jboss-eap-6.2\standalone\configuration\a
pplication-users.properties'
Updated user 'testid' to file 'C:\jboss\jboss-eap-6.2\domain\configuration\appli
cation-users.properties'
Updated user 'testid' with groups user,Manager to file 'C:\jboss\jboss-eap-6.2\s
tandalone\configuration\application-roles.properties'
Updated user 'testid' with groups user,Manager to file 'C:\jboss\jboss-eap-6.2\d
omain\configuration\application-roles.properties'
Is this new user going to be used for one AS process to connect to another AS pr
ocess?
 e.g. for a slave host controller connecting to the master or for a Remoting conn
ection for server to server EJB calls.
yes/no? yes
To represent the user add the following to the server-identities definition <sec
ret value="TWF2ZXJpY2sjMDE=" />
Press any key to continue . . .

Я не вижу требования изменить конфигурации JBoss, как если бы вы хотели изменить контейнер сервера позже, конфигурации также должны быть изменены. Вместо этого используйте объект session для проверки, если сеанс уже существует. Если он не перенаправляет на страницу входа. Это вернет текущую сессию.

request.getSession();

на странице входа в систему задайте текущий сеанс как атрибут

session.setAttribute('sess',request.getSession());

С помощью этого сравнение, пользователь не сможет получить доступ к любой другой странице прямо.


базовая аутентификация в веб-приложениях на JBoss AS6

http://middlewaremagic.com/jboss/?p=220

должно быть очень похоже на 7