url-安全约束模式无效
url-pattern for security-constraint not working
我定义了两个角色 - 用户
<security-role>
<role-name>User</role-name>
</security-role>
和管理员
<security-role>
<role-name>Admin</role-name>
</security-role>
在我的 web.xml 中。
问题 1 -
我希望只有具有这两个角色之一的用户才能访问该应用程序(将来可能会添加更多角色,所以我没有使用 * 角色模式)
<security-constraint id ="FullAccess">
<web-resource-collection>
<web-resource-name>CPDC Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Admin</role-name>
<role-name>User</role-name>
</auth-constraint>
</security-constraint>
如果 中有两个角色,这将不起作用。删除其中一个角色会使其按预期工作。如果我想让两个角色都可以访问这个资源怎么办?
问题 2 -
现在,我还希望只有具有管理员角色的用户才能访问 adminresource/
下的所有资源
<security-constraint id="AdminAccess">
<web-resource-collection>
<web-resource-name>Admin resources</web-resource-name>
<url-pattern>/appname/servlet.svc/adminresource/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Admin</role-name>
</auth-constraint>
</security-constraint>
此约束不起作用,即使具有用户角色的人也可以访问 https://localhost:8080/appname/servlet.svc/adminresrouce/test
形式的 url
有人可以帮忙吗?
您似乎已经包含了应用程序的上下文根 /appname
:
<url-pattern>/appname/servlet.svc/adminresource/*</url-pattern>
不属于任何 url-pattern
,因为它们都与上下文根有关。
我定义了两个角色 - 用户
<security-role>
<role-name>User</role-name>
</security-role>
和管理员
<security-role>
<role-name>Admin</role-name>
</security-role>
在我的 web.xml 中。
问题 1 -
我希望只有具有这两个角色之一的用户才能访问该应用程序(将来可能会添加更多角色,所以我没有使用 * 角色模式)
<security-constraint id ="FullAccess">
<web-resource-collection>
<web-resource-name>CPDC Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Admin</role-name>
<role-name>User</role-name>
</auth-constraint>
</security-constraint>
如果 中有两个角色,这将不起作用。删除其中一个角色会使其按预期工作。如果我想让两个角色都可以访问这个资源怎么办?
问题 2 -
现在,我还希望只有具有管理员角色的用户才能访问 adminresource/
下的所有资源 <security-constraint id="AdminAccess">
<web-resource-collection>
<web-resource-name>Admin resources</web-resource-name>
<url-pattern>/appname/servlet.svc/adminresource/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Admin</role-name>
</auth-constraint>
</security-constraint>
此约束不起作用,即使具有用户角色的人也可以访问 https://localhost:8080/appname/servlet.svc/adminresrouce/test
形式的 url有人可以帮忙吗?
您似乎已经包含了应用程序的上下文根 /appname
:
<url-pattern>/appname/servlet.svc/adminresource/*</url-pattern>
不属于任何 url-pattern
,因为它们都与上下文根有关。