Dante Cloud 3.0.4.2 发布,基于SAS的动态接口权限全新改版
Dante Cloud 是一款企业级微服务架构和服务能力开发平台,是采用领域驱动模型(DDD)设计思想的、全面拥抱 Spring Authorization Server 的、基于 OAuth2.1 协议的微服务架构。基于 Spring Authorization Server 1.0.1、Spring Boot 3.0.4、Spring Cloud 2022.0.1、Spring Cloud Tencent 1.10.0-2022.0.1、Spring Cloud Alibaba 2022.0.0.0-RC1、Nacos 2.2.0 等主流技术栈开发的多租户系统,遵循 SpringBoot 编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能
平台定位
- 构建成熟的、完善的、全面的,基于 OAuth2.1 的、前后端分离的微服务架构解决方案。
- 面向企业级应用和互联网应用设计开发,既兼顾传统项目的微服务化,又满足互联网应用开发建设、快速迭代的使用需求。
- 平台架构使用微服务领域及周边相关的各类新兴技术或主流技术进行建设,是帮助快速跨越架构技术选型、研究探索阶段的利器。
- 代码简洁规范、结构合理清晰,是新技术开发应用的典型的、综合性案例,助力开发人员对新兴技术的学习和掌握。
发布背景
自11月24日,Spring Boot 3.0 以及 Spring Cloud 2022.0.0、Spring Cloud Tencent 等全新版本发布,整个Java 社区也步入的 Java 17 和 Spring Boot 3 的新时代。紧跟 Java 技术和 Spring 社区的发展,让更多质量更好、性能更优的新特性服务于实际的开发工作,Dante Cloud 也同步进行升级及适配,开发了全新的 3.0 版本。
[1] 本次更新内容
基于 SAS 的动态接口权限全新改版
- 不再直接使用接口作为权限数据,提取接口数据单独管理,额外增加权限层,支持同一权限配置多个接口。
- 用户权限 和 OAuth2 Scope 权限,均已支持同一权限配置多个接口。提升权限配置和使用的便捷性,同时解决以接口作为权限导致 Token 过大过长问题。
- 全面支持 Ant 风格 REST 接口转权限数据校验,支持静态配置权限与动态权限重叠冲突检查,包括通配符及占位符形式接口重叠冲突检查。
- 权限重叠冲突检查会自动选取最大匹配规则作为鉴权元数据。例如:静态权限
/message/**
和动态权限/message/send
重叠,会自动选取/message/**
作为鉴权元数据。 - 无须重启服务、修改代码,支持在系统后台修改表达式权限,动态变更接口访问控制权限。
- 结合最新版本
Spring Authorization Server
和Spring Security
,重新梳理当前支持动态表达式权限,去除冗余、重复以及不再支持的表达式。目前支持的表达式动态表达式权限包括:permitAll
,anonymous
,rememberMe
,denyAll
,authenticated
,fullyAuthenticated
- 极大地简化了接口数据汇总、权限转换、重叠冲突校验、权限分发等核心权限代码逻辑。
重要更新
- [升级] Spring Boot 版本升级至 3.0.4
- [升级] Spring Cloud Tencent 版本升级至 1.10.0-2022.0.1
- [升级] Spring Boot Admin 版本升级至 3.0.1
其它更新
- [安全] 强制升级 commons-fileupload 版本至 1.5 ,修复 CVE-2023-24998 安全漏洞
- [重构] 结合各模块组件的职责及定位,重新划分和调整部分模块的归属。
- [重构] 原 dante-cloud-upms-logic 和 dante-cloud-upms-rest 代码调整至 dante-engine,后续以组件形式调用。
- [重构] 原 dante-module-upms-logic 和 dante-module-upms-rest 模块,名称分别变更为 dante-module-social 和 dante-module-metadata,职责和用途更加清晰
- [重构] 重新定义系统部分管理功能接口路径,增加统一标识方便查看及接口管理操作。
- [优化] 优化多级缓存 Key 生成逻辑,解决原有以 JSON 格式作为缓存 Key,导致缓存数据在可视化工具中查看混乱问题。
- [优化] 前端主要管理功能配合新版动态权限同步优化
- [修复] 新增在服务多实例情况下,多级缓存权限数据本地同步支持。解决在同一消费组下,未能消费到数据的服务实例校验权限错误问题。
- [修复] 彻底解决初次搭建过程中因操作步骤错误,产生冗余缓存数据,会出现
Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
错误问题
依赖更新
- [升级] springdoc 版本升级至 2.0.4
- [升级] fastjson2 版本升级至 2.0.25
- [升级] hutool 版本升级至 5.8.15
- [升级] wxjava 版本升级至 4.4.9.B
- [升级] mybatis 版本升级至 3.5.12
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.712
- [升级] alipay-sdk-java 版本升级至 4.35.71.ALL
升级说明
- 本次更新存在破坏性更新,设计数据模型变化,升级前强烈建议备份数据。如果不是全新部署,注意重启前清空 Redis 缓存。
[2] Dante Cloud 3.0.0 后端新特性
1. 核心基础依赖便捷切换
- 新增
Spring Cloud Tencent
和Spring Cloud
原生微服务全家桶等两种基础设施支持。 - 新增
Spring Cloud Alibaba
、Spring Cloud Tencent
和Spring Cloud
原生微服务全家桶三种基础设值切换能力,可以以相对便捷的方式切换使用 Alibaba、Tencent、Spring 等基础设施环境。可根据自身实际需求选择,不再局限于只能在某一种基础设施环境中运行。
2. 支持 GraalVM
原生镜像
- 整体调整各类模块 pom build 配置,适当增加冗余重复配置,以支持
Spring Native
或GraalVM
编译需要。规避对所有模块进行 Native 编译,而导致错误问题。
3. Spring Authorization Server
全特性支持及扩展
- 基于
Spring Authorization Server
和Spring Data JPA
实现多租户系统架构, 支持 Database 和 Schema 两种模式。 - 基于
Spring Data JPA
,重新构建Spring Authorization Server
基础数据存储代码,替代原有 JDBC 数据访问方式,破除Spring Authorization Server
原有数据存储局限,扩展为更符合实际应用的方式和设计。 - 基于
Spring Authorization Server
,在 OAuth 2.1 规范基础之上,增加自定义Resource Ownership Password
(密码) 认证模式,以兼容现有基于 OAuth 2 规范的、前后端分离的应用,支持Refresh Token
的使用。 - 基于
Spring Authorization Server
,在 OAuth 2.1 规范基础之上,增加自定义Social Credentials
(社会化登录) 认证模式,支持手机短信验证码、微信小程序、基于JustAuth
的第三方应用登录, 支持Refresh Token
的使用。 - 扩展
Spring Authorization Server
默认的Client Credentials
模式,实现真正的使用 Scope 权限对接口进行验证。 增加客户端 Scope 的权限配置功能,并与已有的用户权限体系解耦 - 支持
Spring Authorization Server
Authorization Code PKCE
认证模式 - 在
Spring Authorization Server
的标准的JWT Token
加密校验方式外,支持基于自定义证书的JWT Token
加密校验方式,可通过配置动态修改。 - 支持
Opaque Token
(不透明令牌) 格式及校验方式,将低JWT Token
被捕获解析的风险。可通过修改配置参数,设置默认 Token 格式是采用Opaque Token
格式还是JWT Token
格式。 - 全面支持
OpenID Connect
(OIDC) 协议,系统使用时可根据使用需求,通过前端开关配置,快速切换 OIDC 模式和传统 OAuth2 模式 - 深度扩展
Authorization Code
、Resource Ownership Password
、Social Credentials
几种模式,全面融合IdToken
、Opaque Token
、JWT Token
与现有权限体系,同时提供IdToken
和 自定义 Token 扩展两种无须二次请求的用户信息传递方式,减少用户信息的频繁请求。 - 自定义
Spring Authorization Server
授权码模式登录认证页面和授权确认页面,授权码模式登录采用数据加密传输。支持多种验证码类型,暂不支持行为验证码。 - 无须在代码中配置
Spring Security
权限注解以及权限方法,即可实现接口鉴权以及权限的动态修改。采用分布式鉴权方案,规避 Gateway 统一鉴权的压力以及重复鉴权问题 - OAuth2 UserDetails 核心数据支持直连数据库获取和 Feign 远程调用两种模式。OAuth2 直连数据库模式性能更优,Feign 访问远程调用可扩展性更强。可通过配置动态修改采用策略方式。
- 基于自定义 Session,混合国密
SM2
(非对称) 和SM4
(对称加密) 算法,实现基于数字信封技术的秘钥动态生成加密传输。利用 “一人一码机制”,实现密码模式登录数据进行动态加密传输。配合 OAuth2 Client 验证,保护接口调用和前后端数据传输的合理性及安全性。
[3] Dante Cloud 3.0.0 前端新特性
采用 pnpm monorepo
重构前端
- 前端工程包管理器变更为 pnpm。
- 采用
monorepo
模式对前端工程进行重构,抽取 utils、components、apis、bpmn-designer 等相关代码,形成共享模块 - 共享模块已进行优化配置,利用 Vite 可编译成独立的组件,单独以组件形式进行发布
- 代码以共享模块的方式进行单独维护开发,降低现有工程代码复杂度,便于后续功能的扩展和代码的复用。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
应用内支付服务现网、沙盒环境下常见关键事件的对比与总结
在集成和调试订阅型商品时,我们会依赖沙盒环境来进行模拟实际场景。 订阅型商品的购买流程和一次性商品的购买流程类似,但订阅还有其他细节场景,比如续订成功或失败,续订周期时长等。沙盒环境下的订阅续订时间会比正常情况更快,引入“时光机”概念帮助您快速测试您应用的订阅场景。比如订阅周期为1周,商品在3分钟后发生续期,此时订阅型商品有效期延长了3分钟。 下面对沙盒环境和现网环境订阅通知事件进行简单对比,针对两种环境下收到的notificationType事件进行对照。 a) 撤销订阅 测试一:购买商品后,在自动续费前撤销订阅: 测试二:购买商品后,商品到期并发生自动续期后再撤销原订阅: 总结:沙盒环境、现网环境对于撤销订阅后,订阅商品都立即消失,同时这笔订阅费都用会立刻发起返还,后续不再自动续期。订阅通知事件上,由于沙盒环境采用了时光机概念,短期内会多次收到续期成功的订阅事件通知。 b) 设置暂停计划 ** 场景分析** 正式环境下: 7月28号14:27首次购买周卡,返回订阅关键事件0。0表示首次购买。 7月28号14:28取消订阅,返回订阅关键事件5。5表示订阅停止。 7月28号14:29恢...
- 下一篇
MrDoc 0.8.8 发布,类似语雀、飞书的开源在线文档和知识库系统
MrDoc 觅思文档是基于 Python 语言的 Django 框架开发并开源的在线文档系统。 其功能类似于国内的语雀平台、看云平台、为知笔记和飞书文档,国外的GitBook 平台。 如果你在寻找可私有化部署的在线文档系统,那么 MrDoc 觅思文档可以说是不二之选。 MrDoc 以「文档」作为系统的主要承载形式,支持用 Markdown 和富文本进行「普通文档」的写作,支持类似 Excel 的在线表格用来「表格文档」的记录。 同时以书籍形式的结构化文集作为文档的呈现形式,非常适合个人和小型团队作为私有化的文档、笔记和知识管理工具。 全平台多终端支持 浏览器扩展 MrDoc 通过官方浏览器扩展 ——MrDoc 速记(支持 Chromium 系列浏览器和火狐浏览器)(项目地址为:https://gitee.com/zmister/mrdoc-webclipper)和接入「简悦」扩展,实现了网站内容剪藏,可以化身成为互联网内容收藏神器。 桌面客户端 MrDoc 还提供了基于 Electron 开发的桌面客户端,跨平台支持 Windows、Linux 和 macOS。 移动端 APP 通过移...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址