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

相关推荐
专业开发者1 小时前
Bluetooth® Mesh网络安全概述
物联网·安全·web安全
Suckerbin1 小时前
BTRSys: v2.1靶场渗透
安全·web安全·网络安全
hui133630982163 小时前
远程倾斜位移裂缝计:守护工程结构安全的 “智能监测卫士”
安全
wzx_Eleven4 小时前
【论文阅读】多密钥低通信轮次的联邦学习安全聚合
论文阅读·深度学习·神经网络·安全·同态加密
墨北x4 小时前
2025江西省职业院校技能“信创适配及安全管理“赛项解析答案
服务器·网络·安全
MarkHD5 小时前
车辆TBOX科普 第60次 深度解析系统集成与EMC、功能安全及网络安全测试
网络·安全·web安全
RT-Thread物联网操作系统5 小时前
RT-Thread软件包,RyanMqtt 2.0 发布,全面重构:更轻、更快、更安全、更可靠 | 技术集结
安全·重构
骥龙5 小时前
3.11、终端安全最后一道屏障:EDR 原理与 Evil-WinRM 实战
网络·安全·网络安全
飞函安全5 小时前
私有化一站式办公平台,协同办公更高效
运维·安全·信息与通信
九章-5 小时前
平滑替换:大唐经研院经济评价系统成功完成国产化迁移
数据库·安全·政务