我正在对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
他们需要被分配到不同的角色。
答案 0 :(得分:1)
我试着做一些非常相似但却无法做到的事情。在检查源代码时,我意识到spring-security在应用粗粒/ url授权时并不考虑请求参数。
我最终创建了两个单独的网址。
答案 1 :(得分:0)
我有同样的问题。 我进行了调试,发现 Spring
未能parse
与[{1}} roles
分开comma
实际上它ParseException
doParseExpession. you can find the exact line [here][1]
点
It says it missing some data if there is aversion 4
。我还没弄清楚为什么。但是,似乎@Oliver的建议现在很好。即打破两行/多行的规则
似乎filter-security-metadata-source
request-matcher
期望获得use-expressions
AND <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>
,即尝试:
__new__