安全框架SpringSecurity

1.登陆校验流程:

登录只有认证,没有鉴权

前端传过来用户名和密码,服务器去数据库中进行校验,正确的话根据用户名id和盐生成一个JWT ,然后把token返回给前端前端 在每次请求中都在请求头携带token服务器进行token解析 出用户id然后去数据库中查找是否有这个id ,这个id是否有权限,才会允许访问相关资源。

2.认证流程详解:

注意这里的接口,以后会实现接口和重写类

  1. 提交用户名和密码
  2. 封装Authentication对象用来装用户名和密码(无认证和权限)
  3. 调用ProviderManager的authenticate方法进行认证
  4. 调用DaoAuthentication的authenticate进行认证
  5. 调用 loadUserByUsername方法 根据用户名查询用户(会继承 UserDetailsService接口 然后重写loadUserByUsername在数据库中查找Username)。
  6. 通过用户名在数据库中查到一个对象,放入UserDetails对象(数据库查出来的)中
  7. 比较Userdetails对象的密码和Authentication对象的密码是否一样
  8. 如果一样就把Userdetails的权限信息设置到Authentication对象中
  9. 返回Authentication对象
  10. 使用getContext.setAuthentication来存储认证(Authentication对象)

3.关于token解释:

使用createJWT(用户id);来生成token

使用parseJWT(token);来解析token得出用户id

JWT是盐+用户id生成的token

存储redis的策略:
  1. 将token当作key,登录对象存放到redis
  2. 将userid当key,登陆对象当作value,这样每次请求都需要解析
为什么要使用token?

当用户成功登录系统时,服务器会生成一个唯一的 Token 并将其返回给客户端。客户端可以在之后的请求中将该 Token 作为凭证,服务器通过检查 Token 来确认用户的身份。如果不使用token,使用用户id当作登陆凭证,别人很容易模仿 ,所以才使用token,模仿不了token

相关推荐
腾视科技-AI8 小时前
腾视科技AIBOX双版本重磅发布!本地安全与全球适配,解锁视频智能新可能
大数据·人工智能·科技·安全·大模型·腾视科技·ai算力盒
迪康coolmu8 小时前
企业文档安全防护体系拆解:从备份、防勒索到全链路水印管控
安全
技术不好的崎鸣同学12 小时前
第一章:PEB结构解析与内存定位
windows·安全·系统安全
古养摩登原始人13 小时前
脑机接口合规最新发展:从政策到实践,构建安全可控的技术生态
人工智能·安全
Multipath71214 小时前
乾元通基于原生UDP时隙感知的多链路聚合方案
网络·网络协议·5g·安全·udp·智能路由器·实时音视频
liuyunshengsir15 小时前
Codex Harness 安全沙箱机制原理:AI 编程代理如何安全地执行命令
人工智能·安全
LorryJovens16 小时前
【LAAP论文】Chat GPT6来临:当一个强认知框架下的harness工程遇到强模型的安全对齐应对的调查研究
安全
Flynt17 小时前
Chrome 修了个零日漏洞,你的 VS Code 和 Cursor 可能还在裸奔
安全·electron·visual studio code
TechWayfarer17 小时前
做IP归属地查询时总是查不准?IP纯净度检测实战:从“查归属地“到识别“脏IP“的四个维度
服务器·网络·python·tcp/ip·安全·web安全
huizhulihuiwu18 小时前
高端大型会议会务系统 私有化部署:如何平衡安全、性能与成本?
大数据·安全·会议签到·智能会议·会务系统