• 【Spring Security 系列】(一)理论篇


    我们知道Spring Security是一个应用安全框架,能提供认证、授权能力。追本溯源,想要知道SpringSecurity各种设计和实现,最好是从源头出发,也就是了解应用安全框架需要做什么。

    应用安全框架的核心问题

    谈到应用安全框架就离不开两个核心功能:认证(Authentication)、授权(Authorization)。

    认证(Authentication)

    解决 “你是谁?” 的问题。
    常用的认证方式就是通过用户名和密码,这里就衍生出几个问题:
    用户输入用户名密码后,去哪儿找到已有的用户信息来做验证? 密码总不能明文存储吧!那么,密码如何加密和验证?
    另外,认证成功后做什么? 是返回cookie还是token?
    认证失败后做什么? 是返回401还是重定向到失败页面?
    如何提供认证的接口? 是Filter或者Controller?
    如何提供退出登录接口?
    退出后做什么?

    授权(Authorization)

    解决 “你能干什么?” 的问题。
    为了便于理解,经常又称之为访问控制(Access Control)、鉴权,鉴权的前提那一定得先得到权限信息,这里有两个问题: 如何获取权限信息? 以及 如何判断是否有权限?
    另外,权限不足怎么办? 是返回403还是重定向到失败页面?
    匿名访问怎么办? 是返回403还是重定向到登录页面?

    注意,匿名访问不同于权限不足,匿名访问指的是没有经过认证就访问接口,权限不足指的是用户通过认证了,但是没有访问该接口的权限。

    总结

    小结一下,应用安全框架的核心问题:

    • 如何获取用户信息?

    • 密码如何加密和验证?

    • 认证成功后做什么?

    • 认证失败后做什么?

    • 如何提供认证的接口?

    • 如何提供退出登录接口?退出后做什么?

    • 如何获取权限信息?

    • 如何判断是否有权限?(鉴权)

    • 权限不足怎么办?

    • 匿名访问怎么办?

    注意:应用安全框架本身不会管理用户和权限,只是获取,所以框架一般会设计相关的接口,具体实现由使用者自定义,可以从内存获取、或从数据库获取等等


    end

    源头已经了解了,后面我们将一步步挖掘Spring Security 的设计和实现。欢迎订阅,冲~

  • 相关阅读:
    前端知识大全之CSS
    Day41 并发编程之线程
    多台以太网交换机怎么连接?
    2022 年江西省职业院校技能大赛高职组信息安全管理与评估赛题 02
    VFB电压反馈和CFB电流反馈运算放大器(运放)选择指南
    2205. The Number of Users That Are Eligible for Discount0
    数据接口工程对接BI可视化大屏(一)
    PC端微信@所有人逻辑漏洞
    【深蓝学院】手写VIO第4章--基于滑动窗口算法的 VIO 系统:可观性和 一致性--笔记
    科普|关于FPGA你知道多少?
  • 原文地址:https://blog.csdn.net/qq_31772441/article/details/126214446