在Spring Security中:
<intercept-url pattern="/api/**" access="ROLE_ADMIN" />
在此行<intercept-url pattern="/api/**" access="hasRole('ROLE_ADMIN')" />
如果我写的话,有什么区别意义:
<intercept-url pattern="/api/**" access="hasAnyRole('ROLE_ADMIN')" />
或:
Cmd + click
答案 0 :(得分:3)
正如Spring Security documentation所述:
hasRole([role]):如果当前主体具有,则返回true 指定
role
hasAnyRole([role1,role2]):如果当前主体具有任何提供的角色(以逗号分隔的字符串列表给出),则返回true。
此外,在access
属性上,documentation声明:
访问:列出将存储在的访问属性 已定义的网址
FilterInvocationSecurityMetadataSource
模式/方法组合。这应该是以逗号分隔的列表 安全配置属性(,如角色名称)。
但在您的情况下,您将单个元素列表传递给hasAnyRole
,所以:
存取=&#34; ROLE_ADMIN&#34; Vs access =&#34; hasAnyRole(&#39; ROLE_ADMIN&#39;)
hasRole('ROLE_ADMIN')
和hasAnyRole('ROLE_ADMIN')
相同,都表示当前主体应具有ROLE_ADMIN
权限。
(&#34;校长&#34; 通常指用户,设备或其他可在您的应用中执行操作的系统。)