如何在Jboss eap 6.1.0中的特定URL上设置身份验证

时间:2015-11-29 16:21:18

标签: java jboss jboss7.x

我正在开发一个项目,我希望在特定网址上应用身份验证。 Jboss版本:Jboss eap 6.1.0

我的应用程序中有一个URL http://localhost:8080/myApp/monitoring 我想当用户点击此网址时,会询问用户ID和密码

以下是我已经完成的步骤

在WEB.XML中添加以下内容

<security-constraint>
    <web-resource-collection>
        <web-resource-name>All Access</web-resource-name>
        <url-pattern>/monitoring</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-web.xml中

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

然后使用add-user.bat文件添加用户。 但是当我打到网址时 http://localhost:8080/myApp/monitoring 服务器正在响应错误代码302,并且URL正在重定向到 https://localhost/myApp/monitoring

任何人都可以请帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您在security-constraint中错误配置了web.xml元素。

尝试使用以下值:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>All Access</web-resource-name>
        <url-pattern>/monitoring</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>user</role-name>
    </auth-constraint>
</security-constraint>

现在有些细节:

  • 如果您想保护访问指定网址的所有HTTP方法,请不要在web-resource-collection中对其进行命名(否则只会对指定的网址进行保护)
  • 如果您指定transport-guarantee(值不等于NONE),那么您使用 https (SSL / TLS)代替 http
  • 如果您不想授予所有人访问权限,则必须提供auth-constraint(您授予访问权限的角色列表)