Web 中的安全约束.xml未应用于具有文件扩展名的 URL 模式

我在 Web 中输入了以下安全约束.xml。我的目标是 XML 文件位于公共区域。这适用于文件夹。但是,url模式似乎不起作用。有什么想法吗?/images/**.xml

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Public Area</web-resource-name>
            <url-pattern>/xyz</url-pattern>
            <url-pattern>/images/*</url-pattern>
            <url-pattern>/yyz/*</url-pattern>
            <url-pattern>*.xml</url-pattern>
        </web-resource-collection>
    </security-constraint>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Super User Area</web-resource-name>
            <url-pattern>/test/list1</url-pattern>
            <url-pattern>/test/list2</url-pattern>
            <url-pattern>/test/list3</url-pattern>
            <url-pattern>/test/admin.html</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>SUPER_USER</role-name>
        </auth-constraint>
    </security-constraint>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Protected Area</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>ADMIN</role-name>
            <role-name>END_USER</role-name>
        </auth-constraint>
    </security-constraint>


    <security-role>
        <description>Super User</description>
        <role-name>SUPER_USER</role-name>
    </security-role>
    <security-role>
        <description>Admin User</description>
        <role-name>ADMIN</role-name>
    </security-role>
    <security-role>
        <description>End User</description>
        <role-name>END_USER</role-name>
    </security-role>

答案 1

您的其他URL模式之一比这更匹配 - *.xml请求URI,这就是它不起作用的原因。例如,如果您有 ,则这将被视为超级用户区域中的 Web 资源集合,因此SUPER_USER只能具有访问权限。因此,请确保 url 模式声明得更特定于资源,以避免冲突和误解。谢谢url-pattern/test/list/user.xml


答案 2

实际上,放置的顺序是有问题的,首先是安全约束应该是super_user,然后是公共区域的安全约束。如果你把安全约束属于公共区域,它将被后面的安全约束所覆盖。


推荐