demo(四)nacos&gateway(2)gateway&springsercurity

一、思路

1、整体思路

用户通过客户端访问项目时,前端项目会部署在nginx上,加载静态文件时直接从nginx上返回即可。当用户在客户端操作时,需要调用后端的一些服务接口。这些接口会通过Gateway网关,网关进行一定的处理(jwt合法性校验,黑名单、白名单,过滤一部分请求)之后再转发给具体的微服务。具体的资源服务会对请求进行解析,判断当前登录用户是否有权限调用该资源的接口。

微服务的认证授权方案,目前大体分为两类:

(1)网关只负责转发请求,认证鉴权交给每个微服务控制

(2)统一在网关层面进行认证鉴权,微服务只负责业务

目前主流采用第二种方案,通过Spring Cloud Gateway + Spring Security + OAuth2 + Jwt整合进行统一认证鉴权,大致流程如下:

2、微服务分解

springcloud+nacos+gateway+feign+oauth2+jwt+sercurity。

(1)nacos作为注册中心和集中配置管理;

(2)多个provider提供数据库服务,多个consumer处理业务逻辑;

(3)采用Spring Security + Oauth2作为安全框架,采用JWT操作令牌;

所有服务有一个统一的springsercurity鉴权

(4)gateway作为网关。

所有组件之间的接口调用通过feign实现。

二、demo

如现有用户管理、订单管理、公共业务,针对上述架构梳理出以下服务:

1)工程前缀-auth:认证授权服务,负责认证和授权,整合Spring Security + Oauth2 + Jwt;

进行登录用户的认证授权,返回用户名和token的json数据,权限信息放在token中。

2)工程前缀-gateway:网关服务,负责校验认证和鉴权,对请求进行动态路由、校验认证和鉴权;

3)业务:(以下provider数据库层如果没有其他组件复用可以去掉,直接写在-client中)

① 工程前缀-user-client:用户业务微服务,处理业务逻辑,需要鉴权;

工程前缀-user-provider:用户业务数据库层,处理业务逻辑;

② 工程前缀-order-client:订单业务微服务,处理业务逻辑,需要鉴权;

工程前缀-order-provider:订单业务数据库层,处理业务逻辑;

③ 工程前缀-common-client:公共资源微服务,处理业务逻辑,不需要鉴权;

工程前缀-common-provider:公共资源业务数据库层,处理业务逻辑;

4)工程前缀-api:以上组件的公共封装。

相关推荐
linweidong13 分钟前
多个供应商模块如何集成到统一的AUTOSAR架构中?
架构·autosar
路人与大师33 分钟前
[深度架构] 拒绝 Prompt 爆炸:LLM Skills 的数学本质与“上下文压缩”工程论
android·架构·prompt
技术摆渡人42 分钟前
第一卷:【外设架构】嵌入式外设移植实战与连接性故障“考古级”排查全书
驱动开发·性能优化·架构·安卓
xiaobobo33301 小时前
STM32中HAL库接口函数的共性以及架构思想
stm32·单片机·架构·数据处理器
M宝可梦2 小时前
新一代Transformer 架构MAT: Engram-STEM-PLE
深度学习·架构·transformer·deepseek·记忆机制
码界奇点2 小时前
基于前后端分离架构的智能面试刷题系统设计与实现
spring boot·面试·职场和发展·架构·毕业设计·源代码管理
赋创小助手2 小时前
超微2U高密度服务器AS-2126HS-TN评测(双AMD EPYC 9005 Turin)
运维·服务器·人工智能·深度学习·神经网络·自然语言处理·架构
lqj_本人2 小时前
Kuikly 框架架构与目录导览(HarmonyOS 视角)
华为·架构·harmonyos
向量引擎2 小时前
[硬核架构] 2026 企业级 AI 网关落地指南:从“连接超时”到“秒级响应”的架构演进(附 Python/Java 源码)
人工智能·python·gpt·ai作画·架构·aigc·api调用
Aloudata3 小时前
数据语义层 vs 宽表模式:哪种架构更适合 AI 时代的数据分析?
人工智能·架构·数据挖掘·数据分析·数据治理