• 应用系统设计:基于Spring security设计一套安全认证和授权的服务


    安全认证体系总结

    目前安全认证方式有三种:

    • 1.通过用户名密码登录,服务端完成认证
    • 2.用过手机号和验证码登录,服务端完成认证
    • 3.通过第三方的Oauth2.o协议完成认证,后续还需要继续补充手机信息和用户信息,这种方式只是临时的。
      认证逻辑都一样:
    • 通过认证后服务端生成和记录token,然后发送到客户端,以后客户端每次请求都需要携带token进行请求,服务器每次校验token完成授权

    在这里插入图片描述

    基于Spring Security对上述技术的实现

    • 自定义PasswordEncoder完成密码加密
    • 自定义userDetailService完成获得用户名后的认证处理。
      • 根据用户查询对应的密码,并返回查询结果,如果不存在就抛出异常,后面的结果交给认证类处理
      • 根据用户名查询对应的权限
    • 重写UsernamePasswordAuthenticationFilter类,完成自定义认证
      • 重写类中的attemptAuthentication授权方法
      • 重写successfulAuthenticaiton授权成功方法
        • 发送token
        • 把用户的权限放到redis里,等待后续调用
      • 重写unsuccessfulAuthenticaiton授权成功方法
    • 重写BasicAuthenticationFilterL类,完成自定义的授权
      • 重写doFilterInternal方法
        • 获取token,拿到用户名,查询权限
    • 编写配置文件,把自定义的内容注册到配置文件里
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    总结

    • 针对登录页面设置一条过滤链,进行登录认证获得token
    • 针对其他api设置一条过滤链,专门认证api是否携带token
  • 相关阅读:
    退运险业务及系统架构演进史
    Linux 安装Mysql 详细教程
    2023-10-17 LeetCode每日一题(倍数求和)
    微信小程序独立分包与分包预下载
    Linux下载安装 RabbitMQ​
    第二证券|11月十大牛股出炉 特一药业163%涨幅问鼎榜首
    jdbc连接oracle数据库
    ElasticSearch系列-简介与安装详解
    【LVGL】SquareLine Studio入门基础操作
    LIN休眠唤醒及测试心得
  • 原文地址:https://blog.csdn.net/qq_37771209/article/details/126894376