在为 J2EE 应用程序中的 web 模块角色配置安全约束时,我遇到了以下问题:
应用:
提供一个名为customersServlet的 servlet ,它在 URL 中接收两个参数:
- 表示操作(INS、UPD、DLT 和 DSP)的字符串。
- 标识将对其执行操作的客户的标识号。
EG:url/servlet/cusotmersServlet?UPD,5
用于更新5号客户数据,url/servlet/customersServlet?DLT,8
用于删除8号客户。
问题:
如果我使用此安全约束,则 servlet 只能由指定的角色访问,这没关系:
<security-constraint>
<web-resource-collection>
<web-resource-name>...</web-resource-name>
<url-pattern>/servlet/clientsServlet*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>clientAdmin</role-name>
</auth-constraint>
</security-constraint>
但我想限制将客户插入到名为clientAdmin的角色的能力。
我已经尝试了几种 url 模式,但它们都没有按我的意愿工作(它们都允许每个角色使用任何参数访问 servlet):
<url-pattern>/servlet/clientsServlet?INS,*</url-pattern>
<url-pattern>/servlet/clientsServlet?INS/*</url-pattern>
...
如何*
在url-pattern
标签中使用通配符?
注意:应用程序无法更改,因此我需要一个仅涉及部署描述符的解决方案。