In the spring-security example我遇到了以下标记:
<intercept-url pattern="/admin**" access="hasRole('ROLE_ADMIN')" />
所以我想我们可以指定任何可以访问指定url-pattern的角色。我的问题是hasRole('ROLE_NAME')
唯一可以分配给access
属性的模式。或者我们可以指定别的东西?
答案 0 :(得分:3)
hasRole(ROLE_NAME)
是所谓的基于表达式的访问控制,它是从Spring Security的 3.0 版本中引入的。
access
属性中定义的表达式允许评估复杂的布尔指令,并与简单的配置属性一起使用。
除hasRole([role])
之外,已有许多内置表达式可供使用,例如:
hasAnyRole([role1,role2,...])
isAnonymous()
isAuthenticated()
...