security jwt流程

security jwt
1,认证过滤器进行认证,继承UsernamePasswordAuthenticationFilter,其中的构造方法可以自定义登录接口路由,也可以在basicauthenticationfilter的方法doFilterInternal里面获取token,然后验证并设置认证信息到上下SecurityContextHolder.getContext().getAuthentication()中,
2,继承UsernamePasswordAuthenticationFilter,重写attemptAuthentication,将请求中的用户名,密码传给UsernamePasswordAuthenticationToken,然后用ProviderManager的常用实现接口AuthenticationManager中authenticate方法认证,传入构造后的UsernamePasswordAuthenticationToken,
3,实现UserDetailsService接口,从数据库查找用户,并返回UserDetails的实现类,该类用户的基本信息,权限,可以细化到角色或者是资源,角色权限由GrantedAuthority来接收
4,关于SecurityContextHolder在这里插入图片描述
文档描述是这样的
5,继承DaoAuthenticationProvider,验证用户密码,构造方法中传入UserDetailsService,其中的重写方法additionalAuthenticationChecks可以抛出没有密码和密码不对的异常
6,里插入图片描述
登录执行顺序:在springmvc进入controller之前,进入UsernamePasswordAuthenticationFilter调用AuthenticationManager的authenticate,返回对象UsernamePasswordAuthenticationToken,进入UserDetailsService调用loadUserByUsername,从数据库库查询登录用户的信息,然后进入DaoAuthenticationProvider进行密码验证
如果不是登录,向服务器器获取资源会进入BasicAuthenticationFilter,调用doFilterInternal判断是否有token,token是否有效,根据token查询用户的权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值