我在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>

如何更改上面列入黑名单的部分以仅使用列入白名单的部分...例如,除了将PUTDELTE 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/

10-10 06:02