在之前的文章里介绍了SpringBoot和SpringSecurity如何继承。之后我们需要考虑另外一个问题:当前微服务化也已经是大型网站的趋势,当我们的项目采用微服务化架构时,往往会出现如下情况:

  1. 首先,我们会建立一个用户中心UserCenter,实现用户的登录、登出以及其他用户信息维护等相关功能。
  2. 然后,我们会有其他业务模块,比如订单中心OrderCenter,用来创建、删除及查看订单信息,其中创建、删除订单需要管理员角色。

那么接下来我们思考我们如何做到统一的用户认证及鉴权?

毫无疑问的,首先我们需要在UserCenter中引入SpringSecurity,并保证UserCenter可实现用户登录、登出以及自身接口的鉴权等功能正常使用。然后OrderCenter只需要接口的鉴权功能,登录、登出统一交由UserCenter处理。那么问题来了:

用户的认证及授权是由UserCenter来处理的,OrderCenter怎么能知道到底是哪个用户登录并拥有哪些权限呢?

其实很简单,之前的文章我们有提到SpringBoot+SpringSecurity+SpringSession+Redis来实现UserCenter多点部署时的session共享,上面这个问题也可以通过此方式解决,基本原理:

UserCenter模块

  1. 整合SpringSecurity:负责用户的认证和授权,通过cookie识别是否同一session会话,并将认证通过的用户及其拥有权限放置到HttpSession中。cookie类似如下:

    SESSION=MzkyNDVjNGUtMjIzNi00ZjcwLTljN2QtNjBjZmUxNGI2ZGEy; Path=/; HttpOnly

  2. 整合SpringSession:负责将HttpSession中的信息放置到Redis中。
  3. 整合Redis:执行存储。

OrderCenter模块

  1. 整合SpringSecurity:负责调用接口时鉴权。需要保证UserCenter和OrderCenter相同域名,这样浏览器调用OrderCenter接口的时候会携带UserCenter完成登录后的cookie。
  2. 整合SpringSession:负责根据cookie的session回话标识到Redis中获取用户认证信息及其拥有权限。
  3. 整合Redis:提供存储查询。

那么这里挖个坑:如果UserCenter和OrderCenter不是同一个域名呢??

转载于:https://www.cnblogs.com/LOVE0612/p/9983429.html

SpringBoot+SpringSecurity之多模块用户认证授权同步相关推荐

  1. springboot+springsecurity+mybatis plus之用户认证

    一.权限管理的概念 另一个安全框架shiro:shiro之权限管理的描述 导入常用坐标 <dependency><groupId>org.springframework.boo ...

  2. springboot 、thymeleaf、pagehelper 、springsecurity实现 登录,用户认证,分页的前端使用妹子UI

    springboot  .thymeleaf.pagehelper .springsecurity 实现 登录,用户认证,分页的前端使用妹子UIhttp://tpl.amazeui.org/. 项目下 ...

  3. Spring Security Oauth2 JWT 实现用户认证授权功能

    Spring Security Oauth2 JWT 一 用户认证授权 1. 需求分析 1.1 用户认证与授权 什么是用户身份认证? 用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身份 ...

  4. SpringSecurity - 整合JWT使用 Token 认证授权

    一.SpringSecurity 前面讲解了SpringSecurity的动态认证和动态权限角色,我们都知道在现在大多都是微服务前后端分离的模式开发,前面讲的还是基于Session的,本篇我们整合JW ...

  5. 如何实现用户认证授权系统

    实现用户认证授权系统的方法如下: 首先,统一用户管理系统在设计时就要能建立一个能适应各种系统权限管理要求的权限模型. 对于己建立的老系统,各系统将自己的用户角色管理,角色一权限管理等部分抽离出来,统一 ...

  6. SpringBoot整合Shiro搭建登录注册认证授权权限项目模板

    主要内容: 1 SpringBoot整合Shiro安全框架; 2 Shiro主要学习内容总结;(执行流程.主要对象接口.注意事项等) 3 Redis实现对权限信息缓存; ! 温馨提示: 想要快速搭Sh ...

  7. 阐述Spring security实现用户认证授权的原理----基于session实现认证的方式

    一.认证流程 基于Session认证方式的流程是,用户认证成功后,在服务端生成用户相关的数据保存在session(当前会话),而发 给客户端 sesssion_id 存放到 cookie 中,这样用客 ...

  8. springboot+springsecurity+mybatis plus之用户授权

    文章目录 前言 一.导入坐标 二.Users实体类及其数据库表的创建 三.controller,service,mapper层的实现 四.核心--编写配置文件 五.无权限界面和登录界面的实现 前言 即 ...

  9. springBoot+springSecurity 数据库动态管理用户、角色、权限(二)

    序:  本文使用springboot+mybatis+SpringSecurity 实现数据库动态的管理用户.角色.权限管理 本文细分角色和权限,并将用户.角色.权限和资源均采用数据库存储,并且自定义 ...

最新文章

  1. 人月神话阅读笔记07
  2. 鹅厂AI科学家,偷偷把无人摩托写进了年终总结
  3. 在长文本中当中使用正则表达式匹配限定长度范围的数字串的方法
  4. 数据结构---关键路径
  5. react全局方法_前端面试题 ---react
  6. Lua之table(表)
  7. redis 用scan 代替keys 解决百万数据模糊查询超时问题
  8. STM32开发日记002:KEIL5安装教程
  9. 玛咖新品牌 卡皇玛卡4月上市
  10. 【院校信息】2021北京航空航天大学计算机考研数据汇总
  11. Android新浪微博开发(一)授权认证
  12. 【python常用小工具】python打印26个英文字母
  13. Nvidia最新三维重建技术Instant-ngp初探
  14. Tabs | jQuery UI
  15. java 复制流_Java8流的复制
  16. 2021年中国私营工业企业数量及经营情况分析[图]
  17. ECOSYS FS-1040 USB打印驱动安装
  18. ASR长语音识别,基于vue2
  19. 抖音、快手、百度等105款App 遭通报
  20. 门禁系统如何规避人脸识别数据使用风险?

热门文章

  1. 外部工具连接SaaS模式云数仓MaxCompute 实战—— 数据库管理工具篇
  2. 江门农商银行引入阿里云AnalyticDB,实现数据自助分析平台升级
  3. 程序给UI美术上的必修课:内存占用, DrawCall和包大小的处理
  4. 为什么说Android才是游戏开发者的乐土?
  5. 游戏中的实时光线追踪技术与技巧
  6. 开源创新、软件定义网络和网络功能虚拟化特性
  7. javascript 忍者秘籍读书笔记
  8. Unity 安卓连调profile失败
  9. Redis Cluster日常操作命令梳理
  10. docker版wordpress