安全框架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

相关推荐
0xSec笔记本挖呀瓦呀挖8 小时前
Windows后门应急(二)--计划任务后门分析与处置|Windows取证分析
windows·安全·web安全·网络安全·系统安全·网络攻击模型·安全威胁分析
大模型玩家七七11 小时前
技术抉择:微调还是 RAG?——以春节祝福生成为例
android·java·大数据·开发语言·人工智能·算法·安全
福大大架构师每日一题11 小时前
redis 8.4.1 正式发布:安全升级、性能强化与多模块重大修复详解
数据库·redis·安全
x-cmd11 小时前
[x-cmd] age v1.3.0:面向未来的文件加密工具链升级
安全·文件·量子计算·加密·x-cmd·age
够快云库14 小时前
2026企业数据安全架构实战复盘与选型指南:基于“有序存、管、用”的一体化方案
安全·安全架构
乾元15 小时前
加密流量: 不解密情况下通过流特征识别恶意载荷
网络·人工智能·安全·web安全·机器学习·架构·安全架构
久绊A16 小时前
警惕高危漏洞!Pulse Secure Pulse Connect Secure 安全危机解析与防御指南
网络·安全
实时数据16 小时前
渗透测试通过模拟真实黑客的攻击行为,帮助识别系统、网络或应用程序中的潜在漏洞
网络·安全·web安全
前端程序猿i17 小时前
第 8 篇:Markdown 渲染引擎 —— 从流式解析到安全输出
开发语言·前端·javascript·vue.js·安全
鹿鸣天涯17 小时前
华为安全产品缺省帐号与密码
安全·华为