我正在开发一个项目,我希望在特定网址上应用身份验证。 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
任何人都可以请帮助。提前谢谢。
答案 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>
现在有些细节:
web-resource-collection
中对其进行命名(否则只会对指定的网址进行保护)transport-guarantee
(值不等于NONE
),那么您使用 https
(SSL / TLS)代替 http
强> auth-constraint
(您授予访问权限的角色列表)