以下是我的web.xml
中的示例代码<security-constraint>
<display-name>
change password</display-name>
<web-resource-collection>
<web-resource-name>change password</web-resource-name>
<url-pattern>/ResetPassword.html</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>Roles which can access landing page</description>
<role-name>Admin</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
只有具有“Admin”角色的用户才能访问“ResetPassword.html”页面。
有一个Java EE API可以让我们测试当前用户是否有权访问特定角色。
request.isUserInRole( “管理员”);
我的默认用户“DefUser”返回false,因为他没有分配角色,我收到403错误,因为DefUser无法访问“ResetPassword.html”页面。如果我使用DefUser登录,是否可以使request.isUserInRole(“Admin”)返回true?还有其他办法吗?
我确实想使用安全约束。这是可能有像“DefUser”这样的用户的要求之一,该用户应该拥有未分配任何角色的所有页面的权限。
我只想绕过这些安全限制。 “DefUser”有没有办法访问“ResetPassword.html”页面?
答案 0 :(得分:4)
无法绕过Java EE安全性。 否则,它将像巧克力茶壶一样有用。
答案 1 :(得分:1)
将应用程序部署到应用程序服务器。 转到应用程序服务器的管理,并将您的DefUser分配给角色Admin。 如果您有其他角色,也可以将DefUser分配给这些角色。
你去吧。无需旁路。
答案 2 :(得分:0)
不确定web.xml,但至少有关于EJB的安全注释,如果我没记错的话,您可以将每个服务配置为可访问: