解锁Spring Security6:核心安全机制
发布于 2024-11-27
665
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
江南一点雨
扫码关注公众号
扫码阅读
手机扫码阅读
Spring Security 架构摘要
本文概述了 Spring Security 的架构,它处理了应用程序安全的两大问题:认证(身份验证)和授权(权限验证)。
一 认证
认证是确认用户身份的过程,Spring Security 通过 AuthenticationManager 接口来处理认证,该接口定义了单一的方法:
public interface AuthenticationManager {
Authentication authenticate(Authentication authentication)
throws AuthenticationException;
}
AuthenticationManager 可执行三种操作:
- 验证有效用户并返回
Authentication对象(标记为已认证)。 - 若用户无效,则抛出
AuthenticationException。 - 无法决定时返回 null。
最常用的 AuthenticationManager 实现是 ProviderManager,它将认证委托给一系列 AuthenticationProvider 实例。
AuthenticationProvider 类似于 AuthenticationManager,但增加了一个方法来检查是否支持特定的 Authentication 类型:
public interface AuthenticationProvider {
Authentication authenticate(Authentication authentication)
throws AuthenticationException;
boolean supports(Class> authentication);
}
supports() 方法使用的 Class 参数实际上是 Class<? extends Authentication>,用于确定是否支持特定的认证类型。
江南一点雨
江南一点雨
扫码关注公众号