1.SpringSecurity简介?
什么是安全框架?解决系统安全的框架。如果没有安全框架,我们需要处理每个资源访问的控制,非常麻烦。使用安全框架,我们可以通过配置的方式实现对资源的访问限制。两个重要功能:认证和授权。
2.自定义认证的时候需要实现UserDetailsService接口
接口中只有一个方法,返回UserDetails类,参数username是前端传过来的
看一下UserDetails:
查看其中的方法:
获得所有权限,但不能返回空
获取密码
获取用户名,
判断用户账号是否过期
判断用户是否被锁定
凭证是否过期
账户是否可用
SpringlSecurity提供了该UserDetails接口的实现类:User,该类与我们自定义的类不同。
该类的构造方法:password是数据库中查出来的密码,来与前端传过来的密码进行比对,如果相同则认证通过
3.自定义认证需要实现PasswordEncode接口
public interface PasswordEncoder{
//对传入的密码进行加密
String encode(CharSequence rawPassword);
//匹配,将原密码与加密的密码,做对应比较,若对应,则为true
boolean matches(CharSequence rawPassword,String encodePassword);
}
//SpringSecurity提供了好多个PasswordEncoder接口的实现类,官方推荐使用BCryptPasswordEncoder类
public class BCryptPasswordEncoder implements PasswordEncoder{
}