Spring Security 核心组件?
2021-03-05 05:26
标签:组件 thold exp erb muse 认证 数据 etc context SecurityContext Authentication SecurityContext context = SecurityContextHolder.getContext(); } AuthenticationManager BCryptPasswordEncoder:哈希算法加密 NoOpPasswordEncoder:不使用加密 Spring Security 核心组件? 标签:组件 thold exp erb muse 认证 数据 etc context 原文地址:https://www.cnblogs.com/WangMengyi/p/14479272.html
SecurityContext是安全的上下文,所有的数据都是保存到SecurityContext中。
可以通过SecurityContext获取的对象有:
SecurityContextHolder
SecurityContextHolder用来获取SecurityContext中保存的数据的工具。通过使用静态方法获取SecurityContext的相对应的数据。
Authentication
Authentication表示当前的认证情况,可以获取的对象有:
UserDetails:获取用户信息,是否锁定等额外信息。
Credentials:获取密码。
isAuthenticated:获取是否已经认证过。
Principal:获取用户,如果没有认证,那么就是用户名,如果认证了,返回UserDetails。
UserDetails:
public interface UserDetails extends Serializable {Collection extends GrantedAuthority> getAuthorities();
String getPassword();
String getUsername();
boolean isAccountNonExpired();
boolean isAccountNonLocked();
boolean isCredentialsNonExpired();
boolean isEnabled();
UserDetailsService
UserDetailsService可以通过loadUserByUsername获取UserDetails对象。该接口供spring security进行用户验证。
通常使用自定义一个CustomUserDetailsService来实现UserDetailsService接口,通过自定义查询UserDetails。
AuthenticationManager用来进行验证,如果验证失败会抛出相对应的异常。
PasswordEncoder
密码加密器。通常是自定义指定。
文章标题:Spring Security 核心组件?
文章链接:http://soscw.com/index.php/essay/60296.html