标签:cli spring容器 情况下 ble boolean str 重写 ebs 数据
通过以下三个接口来理一下spring security (下称ss)的校验逻辑。
public interface UserDetailsService {
UserDetails loadUserByUsername(String var1) throws UsernameNotFoundException;
}
实现UserDetailsService接口,重写loadUserByUsername方法。ss会调用这个方法(当然你得把实现类交给spring容器来管理,以保证ss在需要调用的时候能找到),loadUserByUsername会返回一个封装了用户名、密码以及权限信息,还有密码是否过期等信息的UserDetails对象。
参见UserDetails接口:
public interface UserDetails extends Serializable {
Collection<? extends GrantedAuthority> getAuthorities();
String getPassword();
String getUsername();
boolean isAccountNonExpired();
boolean isAccountNonLocked();
boolean isCredentialsNonExpired();
boolean isEnabled();
}
ss会拿着这些信息(来自内存或者来自数据库)与client端传过来的账号密码进行比对。
一般情况下,当注册密码时,我们需要对原始密码进行加密。
我们知道,加密密码时,我们的加密器都是自动注入到IOC容器的。如下
@Autowired
private PasswordEncoder passwordEncoder;
那么,加密器来自于哪儿呢?
我们需要在配置类中(BrowserSecurityConfig extends WebSecurityConfigurerAdapter)配置一个加密器。
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
标签:cli spring容器 情况下 ble boolean str 重写 ebs 数据
原文地址:https://www.cnblogs.com/DongXuefeng/p/9062382.html