Dante Cloud 是一款企业级微服务架构和服务能力开发平台,是全面拥抱 Spring Authorization Server 的、基于 OAuth2.1 协议的微服务架构。基于 Spring Authorization Server 1.0.0、Spring Boot 3.0.1、Spring Cloud 2022.0.0、Spring Cloud Tencent 1.8.2-2022.0.0、Spring Cloud Alibaba 2022.0.0-RC1、Nacos 2.2.1-RC 等主流技术栈开发的多租户系统,遵循 SpringBoot 编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能
平台定位
- 构建成熟的、完善的、全面的,基于 OAuth2.1 的、前后端分离的微服务架构解决方案。
- 面向企业级应用和互联网应用设计开发,既兼顾传统项目的微服务化,又满足互联网应用开发建设、快速迭代的使用需求。
- 平台架构使用微服务领域及周边相关的各类新兴技术或主流技术进行建设,是帮助快速跨越架构技术选型、研究探索阶段的利器。
- 代码简洁规范、结构合理清晰,是新技术开发应用的典型的、综合性案例,助力开发人员对新兴技术的学习和掌握。
发布背景
自11月24日,Spring Boot 3.0 以及 Spring Cloud 2022.0.0、Spring Cloud Tencent 1.8.2 等全新版本发布,整个Java 社区也步入的 Java 17 和 Spring Boot 3 的新时代。紧跟 Java 技术和 Spring 社区的发展,让更多质量更好、性能更优的新特性服务于实际的开发工作,Dante Cloud 也同步进行升级及适配,开发了全新的 3.0 版本。
[1] Dante Cloud 3.0.0 新特性
- 核心基础依赖便捷切换
- 新增
Spring Cloud Tencent
和Spring Cloud
原生微服务全家桶等两种基础设施支持。 - 新增
Spring Cloud Alibaba
、Spring Cloud Tencent
和Spring Cloud
原生微服务全家桶三种基础设值切换能力,可以以相对便捷的方式切换使用 Alibaba、Tencent、Spring 等基础设施环境。可根据自身实际需求选择,不再局限于只能在某一种基础设施环境中运行。
- 支持
GraalVM
原生镜像
- 整体调整各类模块 pom build 配置,适当增加冗余重复配置,以支持
Spring Native
或GraalVM
编译需要。规避对所有模块进行 Native 编译,而导致错误问题。
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 验证,保护接口调用和前后端数据传输的合理性及安全性。
- 采用
pnpm monorepo
重构前端
- 前端工程包管理器变更为 pnpm。
- 采用
monorepo
模式对前端工程进行重构,抽取 utils、components、apis、bpmn-designer 等相关代码,形成共享模块 - 共享模块已进行优化配置,利用 Vite 可编译成独立的组件,单独以组件形式进行发布
- 代码以共享模块的方式进行单独维护开发,降低现有工程代码复杂度,便于后续功能的扩展和代码的复用。
[2] 本次更新内容
- 主要更新
- [升级] Spring Boot 版本升级至 3.0.1
- [升级] Spring Cloud Tencent 版本升级至 1.8.2-2022.0.0
- [升级] Spring Cloud Alibaba 版本升级至 2022.0.0.0-RC1
- [升级] Nacos 版本升级至 2.2.1-RC
- [升级] MyBatis Plus 版本升级至 3.5.3.1
- 新增特性
- [新增] 新增融合 Stomp WebSocket、私信、公告等功能的独立消息服务。支持前端与后端采用 WebSocket 和 REST 接口互发消息。
- [新增] 新增私信、公告发送,及新消息提醒、基于私信对话浏览信息功能
- [新增] 新增手工解析 Token 信息机制,同时支持 JWT Token 和 Opaque Token。
- [新增] WebSocket 模块,支持 WebSocket Token 鉴权及登录用户信息解析功能
- [新增] 新增实时在线用户统计及同步实时刷新功能
- [新增] 前端新增基于用户 ID,动态生成默认 Avatar 功能。
- [新增] 前端新增独立个人设置页面,包含私信、公告查阅功能
- [新增] 前端采用新版 Stomp JS 实现 WebSocket 支持。
- 其它更新
- [优化] 去除额外增加的 JetCache 自动注入配置代码,改为使用新版 JetCache 自身配置。
- [优化] 在 Token 中增加额外用户信息,方便前端使用,减少重复查询。
- [优化] 调整部分模块 DTO 代码放置目录
- [优化] 恢复 Spring Cloud Alibaba 相关代码,删除 Sentinel 临时支持新版 Spring Boot 代码。
- [优化] 将默认基础设施修改为 Alibaba,删除 Spring Cloud Alibaba 基础设施环境中 Zookeeper 服务发现配置。
- [重构] 删除 engine-protect 模块,相关代码合并至 engine-rest 模块中
- [修复] 修复 XSS Request 包装器 Parameter 方法错误,导致无法获取参数错误。
- [修复] 修复 Anti 萨摩耶 XSS 防护代码额外增加的标识符引起的 WebSocket Token 无法正确解析问题。
- [修复] 修复因 Hibernate 6 代码变化,导致基于 JetCache 自定义 JPA 二级缓存分页查询数据不正确问题。
- 依赖更新
- [升级] jetcache 版本升级至 2.7.2
- [升级] hutool 版本升级至 5.8.11
- [升级] spring-boot-admin 版本升级至 3.0.0-M8
- [升级] spring-security-cas 版本升级至 5.8.1
- [升级] springdoc 版本升级至 2.0.2
- [升级] wxjava 版本升级至 4.4.7.B
- [升级] mybatis-plus-boot-starter 版本升级至 3.5.3.1
- [升级] mybatis-plus-generator 版本升级至 3.5.3.1
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.667
- [升级] alipay-sdk-java 版本升级至 4.35.9.ALL
- [升级] com.baidu.aip 版本升级至 4.16.13
[3]界面预览
Dromara 开源社区
一、社区愿景
让每一位开源爱好者,体会到开源的快乐。
二、社区官网
https://dromara.org 是 Dromara 开源社区官方网站。
三、成员项目