其他分享
首页 > 其他分享> > Spring Security 核心组件?

Spring Security 核心组件?

作者:互联网

SecurityContext
SecurityContext是安全的上下文,所有的数据都是保存到SecurityContext中。
可以通过SecurityContext获取的对象有:

Authentication
SecurityContextHolder
SecurityContextHolder用来获取SecurityContext中保存的数据的工具。通过使用静态方法获取SecurityContext的相对应的数据。

SecurityContext context = SecurityContextHolder.getContext();
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
AuthenticationManager用来进行验证,如果验证失败会抛出相对应的异常。
PasswordEncoder
密码加密器。通常是自定义指定。

BCryptPasswordEncoder:哈希算法加密

NoOpPasswordEncoder:不使用加密

标签:SecurityContext,自定义,Spring,获取,Authentication,boolean,组件,Security,UserDetails
来源: https://www.cnblogs.com/WangMengyi/p/14479272.html