1.核心:
认证、授权
2.引入后的思路与步骤:
登录:
a.自定义登录接口
调用AuthenticationManager的方法对账户密码进行验证。
验证通过将用户名生成jwt,传入前端,同时并以jwt:用户信息 的形式存入redis
b.自定义UserDetailService
在这里将用户名密码查询数据库(不自己实现就默认用的内存中查)
并返回UserDetails对象(自己实现)
校验:
a.定义jwt认证过滤器 (实现OncePerRequestFilter)
获取token
解析token并获得用户名
从redis根据token获取用户信息
将其存入到SecurityContextHolder中,供其他过滤器使用这个认证信息。
注销:
删掉SecurityContextHolder中的对象以及redis中的信息
授权:
默认用FilterSecurityInterceptor来进行权限校验,会从SecurityContextHolder中获取Authentication,并获取权限信息。
所以实际开发中只需要在登录查库的时候就把权限信息也查出来,并弄到UserDetails对象中即可。