[7-01-01].第01章:安全与权限 - 核心概念

SpringSecurity学习大纲


一、认证(authentication)

  • 用户认证:就是判断一个用户的身份是否合法的过程
  • 认证是为了保护系统的隐私数据与资源,用户的身份合法方可访问该系统的资源
  • 常见的用户身份认证方式:
    • 用户名密码登录
    • 二维码登录
    • 手机短信登录
    • 指纹认证
    • 人脸识别
      ...
  • 认证流程:

二、会话(session)

2.1.什么是会话:

  • 用户认证通过后,为了避免用户的每次操作都进行认证可将用户的信息保存在会话中,在会话中可以保持当前用户的登录状态
  • 常见的会话方式有 基于session方式、基于token方式

2.2.基于session的认证方式:

a.认证流程:

  • 用户认证成功后,服务端生成用户相关的数据保存在session(当前会话)中,发给客户端的sesssion_id 存放到 cookie 中
  • 用户客户端在请求时带上 session_id 就可以验证服务器端是否存在 session 数据,以此完成用户的合法校验
  • 用户退出系统或session过期销毁时,客户端的session_id也就无效了

b.说明:

  • 基于session的认证方式由Servlet规范定制,服务端要存储session信息需要占用内存资源,客户端需要支持cookie

2.3.基于token的认证方式:

a.认证流程:

  • 用户认证成功后,服务端生成一个token发给客户端
  • 客户端可以放到 cookie 或 localStorage等存储中,每次请求时带上 token,服务端收到token通过验证后即可确认用户身份
  • 可以使用Redis 存储用户信息(分布式中共享session)

b.说明:

  • 基于token的方式则一般不需要服务端存储token,并且不限制客户端的存储方式
  • 如今移动互联网时代更多类型的客户端需要接入系统,系统多是采用前后端分离的架构进行实现,所以基于token的方式更适合

三、授权(authorization) :

3.1.为什么要授权

  • 1.授权就是为了控制资源被访问
  • 2.因为不同的用户可以访问的资源是不一样的

3.2.什么是授权

  • 1.授权就是给用户颁发权限
  • 2.授权是用户认证通过后,根据用户的权限来控制用户访问资源的过程
  • 3.拥有资源的访问权限则正常访问,没有权限则拒绝访问

3.3.基于角色的访问控制:

  • 基于角色的访问控制简称为RBAC(Role-Based Access Control) 模型
  • 用户、角色、权限本质:就是把权限打包给角色(角色拥有一组权限),分配给用户(用户拥有多个角色)。
  • 最少包括五张表 (用户表、角色表、用户角色表、权限表、角色权限表)
相关推荐
xiezhr2 个月前
SpringBoot3整合SpringSecurity6(五)自定义登陆页面
java·spring·springboot3·springsecurity
去哪里吃鱼2 个月前
自定义Spring Authorization Server登录页
springsecurity·spring authorization server·springauthorizationserver
xiezhr3 个月前
SpringBoot3整合SpringSecurity6(二)SpringSecurity默默的干了些啥
java·spring boot·springboot3·springsecurity
skywsp3 个月前
SpringBoot集成国密算法
spring boot·国密·springsecurity
KNeeg_3 个月前
SpringSecurity框架入门
java·spring·spring cloud·springsecurity
何包蛋H3 个月前
SpringSecurity + OAuth2 限制一个用户(同端互斥)登录
java·springsecurity·oauth2.0
代码代码快快显灵4 个月前
使用 Spring Security的一些常用功能
java·前端·spring·springsecurity
代码代码快快显灵4 个月前
SpringSecurity——前后端分离登录状态如何保持
服务器·状态模式·springsecurity