码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Security 核心组件?

时间:2021-03-04 13:35:29      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:组件   thold   exp   erb   muse   认证   数据   etc   context   

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:不使用加密

Spring Security 核心组件?

标签:组件   thold   exp   erb   muse   认证   数据   etc   context   

原文地址:https://www.cnblogs.com/WangMengyi/p/14479272.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!