Custom Implementation Example
本指南介绍如何通过基于会话的身份验证构建完整的自定义安全实现。您将通过从头开始实现这四个核心接口,了解它们是如何协同工作的。
大多数应用程序应该使用Spring Security
Spring Security集成会自动配置此处显示的所有内容。只有在您有特定要求或不使用Spring Boot的情况下,才构建自定义安全性。
您将构建的内容
一个包含四个类的工作安全系统:
- SecurityConfiguration - 定义安全行为和重定向位置
- SecurityContext - 使用HTTP会话跟踪谁已登录
- SecurityManager - 协调安全检查并提供登录/注销功能
- SecurityRegistrar - 在应用程序启动时将所有内容连接在一起
这个示例使用基于会话的存储,但是您可以使用数据库查询、LDAP或任何其他身份验证后端实现相同的接口。
组件间的协同工作原理
流程:
SecurityRegistrar在启动时运行,创建管理器,注册评估器,并附加观察者SecurityManager协调所有内容—它向评估器提供上下文和配置SecurityContext通过读取HTTP会话回答“谁已登录?”SecurityConfiguration对于登录和访问被拒绝页面回答“重定向在哪里?”Evaluators使用上下文和配置作出访问决策