企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
“配置属性”可以被认为是对`AbstractSecurityInterceptor`类使用的具有特殊含义的String。它们由框架内的接口`ConfigAttribute`表示。它们可能是简单的角色名称,也可能具有更复杂的含义,具体取决于`AccessDecisionManager`实现的复杂程度。` AbstractSecurityInterceptor`配置了`SecurityMetadataSource`,用于查找安全对象的属性。通常,此配置将对用户隐藏。配置属性将作为安全方法的注解,或作为安全URL的访问属性。例如,当我们在命名空间中看到类似 `<intercept-url pattern='/secure/**' access='ROLE_A,ROLE_B'/>`的内容时,这就是说配置属性`ROLE_A`和`ROLE_B`适用于Web请求匹配给定的模式。实际上,使用默认的`AccessDecisionManager`配置,这意味着任何具有与这两个属性中的任何一个匹配的`GrantedAuthority`的人都将被允许访问。严格来说,它们只是属性,解释依赖于`AccessDecisionManager`实现。前缀`ROLE_`的使用是一个标记,表示这些属性是角色,应该由Spring Security的`RoleVoter`使用。这仅在使用基于选举的`AccessDecisionManager`时才有意义。我们将在授权章节中看到`AccessDecisionManager`的实现方式。