使用 Spring 安全性时无法使用拦截-url
Unable to use intercept-url while using Spring Security
我正在对 security.xml
的访问权限进行一些更改,例如:
<intercept-url pattern="/app/admin/projectform*" access="ROLE_ADMIN,ROLE_ENGAGEMENT_MANAGER"/>
但我很困惑如何区分以下两个网址:
/userform?create=Engagement&method=add&from=list
/userform?create=manager&method=add&from=list
他们需要分配不同的角色。
我试图做一些非常相似的事情但是做不到。在检查源代码时,我意识到 spring-security 在应用粗略的 grain/url 授权时不考虑请求参数。
我最终创建了两个单独的网址。
我有同样的问题。 我调试并发现 Spring
未能 parse
将 roles
与 comma
分开,实际上它在 doParseExpession 处抛出 <code>ParseException
.您可以在 [此处][1]
找到确切的行
如果有 comma`,它表示缺少一些数据。我不明白为什么。但是,@Oliver 的建议目前看来是个不错的建议。即打破 two/more 行
的规则
编辑
解决方案:
似乎在 version 4
filter-security-metadata-source
中期望得到 request-matcher
AND use-expressions
即尝试:
<filter-security-metadata-source request-matcher="ant" use-expressions="false">
<intercept-url pattern="/app/admin/projectform*" access="ROLE_ADMIN,ROLE_ENGAGEMENT_MANAGER"/>
</filter-security-metadata-source>
我正在对 security.xml
的访问权限进行一些更改,例如:
<intercept-url pattern="/app/admin/projectform*" access="ROLE_ADMIN,ROLE_ENGAGEMENT_MANAGER"/>
但我很困惑如何区分以下两个网址:
/userform?create=Engagement&method=add&from=list
/userform?create=manager&method=add&from=list
他们需要分配不同的角色。
我试图做一些非常相似的事情但是做不到。在检查源代码时,我意识到 spring-security 在应用粗略的 grain/url 授权时不考虑请求参数。
我最终创建了两个单独的网址。
我有同样的问题。 我调试并发现 Spring
未能 parse
将 roles
与 comma
分开,实际上它在 doParseExpession 处抛出 <code>ParseException
.您可以在 [此处][1]
找到确切的行
如果有 comma`,它表示缺少一些数据。我不明白为什么。但是,@Oliver 的建议目前看来是个不错的建议。即打破 two/more 行
编辑
解决方案:
似乎在 version 4
filter-security-metadata-source
中期望得到 request-matcher
AND use-expressions
即尝试:
<filter-security-metadata-source request-matcher="ant" use-expressions="false">
<intercept-url pattern="/app/admin/projectform*" access="ROLE_ADMIN,ROLE_ENGAGEMENT_MANAGER"/>
</filter-security-metadata-source>