我在Struts2应用程序中使用的是Tomcat。 web.xml
具有某些条目,如下所示:
<security-constraint>
<web-resource-collection>
<web-resource-name>restricted methods</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint />
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>no_access</web-resource-name>
<url-pattern>/jsp/*</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>no_access</web-resource-name>
<url-pattern>/myrrunner/*</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
如何更改上面列入黑名单的部分以仅使用列入白名单的部分...例如,除了将
PUT
和DELTE
http方法列入黑名单,我还需要将其他方法列入白名单,但是我不确定将其列入白名单的语法以及将其列入白名单的方法。对于我上面的
web.xml
代码段,如果有人可以为我提供上述xml
的whitelisitng计数器部分,我将不胜感激。编辑:另外,我将如何真正验证该解决方案是否有效?
谢谢
最佳答案
我会尝试以下方法:
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<!-- no auth-constraint tag here -->
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>restricted methods</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
第一个
security-constraint
没有任何auth-constraint
,因此无需登录即可使用GET和POST方法。第二个限制了所有人的其他http方法。 (我还没有尝试过。)关于java - web.xml中的白名单安全性约束,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8069640/