0

<intercept-url>我的spring-securityXML中有几个。我只是有这个小小的疑问。假设我有类似的东西:

<intercept-url pattern="/data/**" access="ROLE_ADMIN" />
<intercept-url pattern="/**" access="ROLE_USER,ROLE_ADMIN" />

由于下面<intercept-url>有一个模式,/**我想知道第二个 URL 是否会覆盖第一个。例如,即使我是用户,我也可以访问 /data/**。

4

2 回答 2

2

引用参考文档

您可以使用多个<intercept-url>元素为不同的 URL 集定义不同的访问要求,但它们将按列出的顺序进行评估,并且将使用第一个匹配项。因此,您必须将最具体的匹配项放在顶部。

只要/**后面列出了规则,它就不会覆盖更具体的规则/data/**

正如 jpprade 已经建议的那样,如果您以/data/**具有上述规则的普通用户身份访问,那么您的配置肯定存在其他问题。在这种情况下,共享您的 web.xml 和整个安全配置以解决该问题。

于 2013-08-26T08:43:26.697 回答
1

第二个不会覆盖第一个,理论上它是应用的第一个匹配规则。

如果您可以以 USER 身份访问 /data/** 可能是因为您错过了配置中的某些内容,也许是过滤器声明?

于 2013-08-26T08:11:29.653 回答