SpringSecurity之微服务权限解决方案

news2025/1/17 6:00:24

目录

前置知识点

什么是微服务

微服务的优劣

优点

缺点

微服务本质

微服务认证与授权实现思路

认证预授权的过程


前置知识点

什么是微服务

微服务(或称微服务架构)是一种云 原 生 架构方法,在单个应用中包含众多松散耦合而且可单独部署的小型组件或服务。

这些服务通常拥有自己的技术栈,包括数据库和数据管理模型; 通过一个 rest api、事件流和 消 息 代 理组合彼此通信;以及 按照业务能力进行组织,具有通常称为有界上下文的服务分隔线。

微服务的优劣

优点

1、降低了耦合度:把模块拆分,使用接口通信,降低模块之间的耦合度。

2、责任清晰: 把项目拆分成若干个子项目,不同的团队负责不同的子项目。

3、扩展方便: 增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。

4、部署方便:可以灵活的进行分布式部署。提

5、高代码的复用性: 比如 service 层,如果不采用分布式 REST 服务方式架构就会在PC,Android,IOS 每个端都要写一个 service 层逻辑,开发量大,难以维护一起升级,这时候就可以采用分布式 REST 服务方式,公用一个 service 层。

缺点

系统之间的交互要使用远程通信,接口开发增大工作量,但是利大于弊。

微服务本质

1、微服务,关键其实不仅仅是微服务本身,而是系统要提供一套基础的架构,这种架构 使得微服务可以独立的部署、运行、升级,而且,这个系统架构还让微服务与微服务之间在结构上“松耦合”,而在功能上则表现为一个统一的整体。这种所谓的“统一整体”表现出来的是统一风格的界面,统一的权限管理,统一的安全策略,统一的上线过 程,统一的日志和审计方法,统一的访问入口,统一的调度方式等等。

2、微服务的目的是有效的拆分应用,实现敏捷开发和服务部署。

微服务认证与授权实现思路

接下来就是今天的重点,我们看一下。在微服务中如何实现我们想要的认证与授权呢?

认证预授权的过程

 (1)基于 Session,此时SpringSecurity 会对 cookie 里面的 sessionid 解析操作,找到服务器存储的 session 信息,然后判断当前用户是否符合请求的要求。

(2)另一种是基于token信息,这样就会解析出 token,然后将当前请求加入到 SpringSecurity 管理的权限信息中

假如我们的系统中模块众多,而且每个模块都需要进行认证和授权,那么我们应该选择基于token 的形式来进行认证与授权,当然作为用户还是据用户名密码完成认证功能,然后获取当前用户自己的角色以及此角色的一系列权限值,我们可以将用户名作为key的一部分,权限列表作为value将其存放到redis缓存中去,根据用户名相关信息生成token后返回,浏览器将token记录在cookie中,后续每次调用api接口都默认将token携带进header请求头中,SpringSecurity获取到header头中的头肯信息,然后解析数据,解析到token后获取当前用户名,根据用户名生成key就可以从redis缓存中获取权限列表,这样 SpringSecurity就能够判断当前请求是否有权限访问了。

好了,关于微服务的相关信息以及权限方案就到这里。

欢迎大家点击下方卡片,关注《coder练习生》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/419037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

君子生非异也,善假于物也。【借助外力获取能量,主动改善生存环境。】

文章目录 引言I 借助外力1.1 制造很实用工具1.2 火引言 人类懂得借助外力,从被动地适应环境的进化,进入到主动改善生存环境的发展轨道上了。 人之所以为人,是因为我们善于借助外力,而不是先天有多少优势。 I 借助外力 学会制造和使用工具,提高能量获取的效率学会使用火,…

苹果手写笔有必要买吗?性价比电容笔排行榜

众所周知,苹果的正版Pencil的售价过于的高,一般的用户是买不起的。那么,市场上是否会有一款苹果Pencil的平替电容笔,而这两款电容笔在功能上是完全相同的?的确如此。国内的平替电容笔在书写方面上跟苹果Pencil差别不大…

【多线程的应用】顺序打印

【多线程的应用】顺序打印题目注意点:1. 每个线程循环10次,利用锁的wait 和 计数器count调节线程的执行顺序2. count后 lock.notifyAll 唤醒所有线程3. Thread.currentThread().getName()4. 锁中的逻辑是:进入锁中后,如果while不满…

图片怎么转换成pdf格式?这几个方法帮你一键转换

现今电子书籍越来越受到欢迎,其中PDF格式也成为了一种常用的电子书籍格式。无论是工作还是学习,我们都可能会遇到需要将图片转换成PDF格式的情况,例如保存一些资料证明、公文公告、学习资料等。在这篇文章中,我们将为大家介绍三种…

CT前瞻(一):Vant UI入门与使用

文章目录📋前言🎯什么是Vant UI🎯快速上手🎯组件用法📝最后📋前言 最近在项目开发和学习的过程中,涉及到了Vant UI(简称Vant)的使用,主要还是涉及到了Card卡…

[图神经网络]视觉图神经网络ViG(Vision GNN)--论文阅读

国际惯例: 论文地址https://arxiv.org/pdf/2206.00272.pdfgit地址https://github.com/huawei-noah/Efficient-AI-Backbones/tree/master/vig_pytorch 相较于之前将GNN和CNN结合的图像处理算法,ViG创新的将GNN直接用在了特征提取上。不再需要借用…

Docker快速搭建SkyWalking[ OAP UI[登录] Elasticsearch]

文章目录[前置]:搭建ELasticsearch相关[零]:虚拟机开放SkyingWalking和ES相关端口[一]:拉取SkyWalking-oap和SkyWalking-ui镜像[二]: 运行SkyWalking的oap和ui 容器 2.1 - 运行Skywalking-oap容器 ---- 注意oap运行参数异常 no pr…

早有尔闻 | 数字赋能,提质增效

01 卡奥斯牵头国家重点研发项目 助力中小企业数字化转型升级 3月24日,2022年国家重点研发计划“面向中小企业研发制造资源技术工业互联技术服务平台”项目正式启动。其中,卡奥斯COSMOPlat作为平台承建方牵头课题4“研发制造资源工业互联技术服务平台研…

CDH6.3.2引入debezium-connector-mysql-1.9.7监听mysql事件

1、首先说明一下为啥选用debezium,它能够根据事务的提交顺序向外推送数据,这一点非常重要。再有一个结合kafka集群能够保证高可用,对于熟悉java语言的朋友后面一篇博文会介绍怎样编写插件将事件自定义路由到你想要的主题甚至分区中。 提高按顺…

百度「文心一言」阿里「通义千问」腾讯的AI将会叫什么呢

阿里于昨天2023.4.7下午上线通义千问,与ChatGPT类似,同样是基于语言模型训练的人工智能聊天平台。通义千问的核心功能分为四个大类:撰写短文、职场助理、电影脚本和写封邮件。 通义千问通义千问https://tongyi.aliyun.com/ 首页如下&#xf…

word文件上的电子签章的法律效力如何保证?

你有没有见过这样的word文件“电子签章”? 这种用PS制作的“电子签章”,或者在一些输入公司名称就能在线生成“电子签章”的小网站、小作坊买来的“电子签章”,通通都是没有法律效力的贴图章! 使用贴图章的word文件不但没有任何…

VsCode 将源代码管理(Working tree)中的新旧代码上下对比变为左右对比

文章目录一、默认设置二、左右布局变成了上下布局三、解决方法:将上下布局改为左右布局1:找到右上角的更多设置2:点击更多设置后点击【切换到并排视图】3:效果如下(还是原来的效果)四、左右切换成上下总结一…

Pytorch实现图像风格迁移(一)

图像风格迁移是图像纹理迁移研究的进一步拓展,可以理解为针对一张风格图像和一张内容图像,通过将风格图像的风格添加到内容图像上,从而对内容图像进行进一步创作,获得具有不同风格的目标图像。基于深度学习网络的图像风格迁移主要…

玩转Fastdfs

FastDFS FastDFS是一个开源的轻量级分布式文件系统。它解决了大数据量存储和负载均衡等问题。特别适合以中小文件&#xff08;建议范围&#xff1a;4KB < file_size <500MB&#xff09;为载体的在线服务&#xff0c;如相册网站、视频网站等等 特性 文件不分块存储&am…

fast-lio2代码解析

代码结构很清晰&#xff0c;从最外层看包含两个文件夹&#xff0c;一个是fast-lio,另外一个是加上scan-context的回环检测与位姿图优化。 fast-lio 主要是论文的fast-lio2论文的实现&#xff0c;包括前向处理和ikd-tree的实现 1.先从cmakelist入手看代码结构&#xff1a; #这…

瑞芯微RK3568核心板强在何处?

RK3568核心板产品简介 RK3568核心板是武汉万象奥科基于瑞芯微Rockchip的RK3568设计的一款高性能核心板。该处理器集成了最新的高性能CPU、GPU&#xff0c;并拥有丰富的接口&#xff0c;非常适用于工业自动化控制、人机界面、中小型医疗分析器、电力等多种行业应用。 HD-RK3568-…

【Python】Json读写操作_JsonPath用法详解

【Python】Json读写操作_JsonPath用法详解 文章目录【Python】Json读写操作_JsonPath用法详解1. 介绍2. 代码示例3. 参考1. 介绍 JSONPath是一种信息抽取类库&#xff0c;是从JSON文档中抽取指定信息的工具&#xff0c;提供多种语言实现版本&#xff0c;包括Javascript、Pytho…

【dp】不同的子序列 两个字符串的删除操作 编辑距离

115. 不同的子序列 dp[i][j]&#xff1a;以j-1为结尾的t出现在以i-1为结尾的s子序列的个数 需要开辟m1行&#xff0c;n1列的二维数组 为啥状态方程是&#xff1a; s[i] t[j] 时 dp[i][j] dp[i-1][j-1] dp[i-1][j] s[i] ! t[j] 时 dp[i][j] dp[i-1][j] 先看s[i] t[j] 时…

GDI+下字体大小自适应方案初探

在某个瞬间&#xff0c;我忽然发觉&#xff0c;三体或是AI&#xff0c;本质上是非常相近的事物&#xff0c;甚至在面对任何未知领域的时候&#xff0c;人类总会不自觉地划分为降临派、拯救派和幸存派。姑且不论马斯克等人叫停 GPT-5 的真实动机如何&#xff0c;当大语言模型(LL…

JMU Oracle实验四

用来记录实验操作的 spool E:\oracle_record\record20230406.txt ... spool off老师问的问题 让我展示了一下open_cursor的alter操作问我怎么查看spfile文件&#xff0c;实例&#xff0c;会话的参数内容就这两个 1. 采用不同的方法查询Oracle数据库当前使用的初始化参数文件…