intercept-url的access属性可以保存什么值?

时间:2015-01-14 10:50:05

标签: java spring

In the spring-security example我遇到了以下标记:

<intercept-url pattern="/admin**" access="hasRole('ROLE_ADMIN')" />

所以我想我们可以指定任何可以访问指定url-pattern的角色。我的问题是hasRole('ROLE_NAME')唯一可以分配给access属性的模式。或者我们可以指定别的东西?

1 个答案:

答案 0 :(得分:3)

hasRole(ROLE_NAME)是所谓的基于表达式的访问控制,它是从Spring Security的 3.0 版本中引入的。

access属性中定义的表达式允许评估复杂的布尔指令,并与简单的配置属性一起使用。

hasRole([role])之外,已有许多内置表达式可供使用,例如:

  • hasAnyRole([role1,role2,...])
  • isAnonymous()
  • isAuthenticated() ...

可以在el-access chapter of the Spring Security Docs下找到更多内容。