授权
在确定用户身份验证方式之后,您还需要配置应用程序的授权规则。
Spring Security 中先进的授权能力是其广受欢迎的最具吸引力的原因之一。无论您选择何种身份验证方式(无论是使用 Spring Security 提供的机制和提供程序,还是与容器或其他非 Spring Security 的身份验证机构集成),授权服务都能以一致且简单的方式在您的应用程序中使用。
首先,您应考虑将授权规则附加到请求URI和方法。无论哪种情况,您都可以监听并响应每次授权检查发布的授权事件。此外,下文还详细介绍了Spring Security授权的工作原理,以及如何在建立基本模型后进行微调。
截至 Spring Security 7,访问 API(AccessDecisionManager、AccessDecisionVoter 等)已移至遗留模块 spring-security-access。对于新应用程序,无需包含此依赖。对于尚未迁移到授权 API 的旧应用程序,此模块可用于协助您继续迁移工作。
章节总结
📄️ 授权架构
本节介绍适用于授权的 Spring Security 架构。
📄️ 授权 HTTP 请求
Spring Security 允许您在请求级别对授权进行建模。例如,使用 Spring Security,您可以声明 /admin 下的所有页面都需要一个特定权限,而所有其他页面仅需要身份验证。
📄️ 方法安全
除了在请求级别进行授权建模外,Spring Security 还支持在方法级别的授权建模。
📄️ 领域对象安全 ACL
本节介绍 Spring Security 如何通过访问控制列表(ACLs)提供领域对象安全。
📄️ 授权事件
每当授权被拒绝时,系统会触发一个 AuthorizationDeniedEvent 事件。同时,对于已获批准的授权,也可以触发 AuthorizationGrantedEvent 事件。