当什么都没有配置的时候,账号和密码是由spring security自定义生成的。在实际项目中账号和密码都是从数据库中查询出来的。所以要通过自定义逻辑控制认证逻辑。
UserDetailService 接口
1.创建类继承UsernamePasswordAuthenticationFilter,重写三个方法:
attemptAuthentication 获取用户名密码方法
successfulAuthentication(AbstractAuthenticationProcessingFilter) 认证成功方法
unsuccessfulAuthentication(AbstractAuthenticationProcessingFilter) 认证失败方法
2.实现UserDetailService接口,编写查询数据库用户名和密码的过程,返回User对象,这个User对象是安全框架提供的对象。
PasswordEncoder接口
存储密码是密文存储。数据加密接口,用于返回User对象中的password加密。