Dante Cloud 2.7.10.0 发布,修复 Spring DoS 安全漏洞


Dante Cloud 一款企业级微服务架构和服务能力开发平台,是采用领域驱动模型(DDD)设计思想的、全面拥抱 Spring Authorization Server 的、基于 OAuth2.1 协议的微服务架构。基于Spring Authorization Server 0.4.1、Spring Boot 2.7.10、Spring Cloud 2021.0.6、Spring Cloud Alibaba 2021.0.5.0、Nacos 2.2.1 等最新版本开发的多租户系统,遵循SpringBoot编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能

平台定位

  • 构建成熟的、完善的、全面的,基于 OAuth2.1 的、前后端分离的微服务架构解决方案。
  • 面向企业级应用和互联网应用设计开发,既兼顾传统项目的微服务化,又满足互联网应用开发建设、快速迭代的使用需求。
  • 平台架构使用微服务领域及周边相关的各类新兴技术或主流技术进行建设,是帮助快速跨越架构技术选型、研究探索阶段的利器。
  • 代码简洁规范、结构合理清晰,是新技术开发应用的典型的、综合性案例,助力开发人员对新兴技术的学习和掌握。

[1]、为什么更名为 Dante Cloud

Dante Cloud (但丁), 原项目名称 Eurynome Cloud,很多朋友都反映名字太长、读起来拗口、不容易记等问题。因此在加入 Dromara 开源社区之际,将名字进行了变更。

Dante,即但丁·阿利基耶里(公元1265年-公元1321年),13世纪末意大利诗人,现代意大利语的奠基者,欧洲文艺复兴时代的开拓人物之一,以长诗《神曲》(原名《喜剧》)而闻名,后来一位作家叫薄伽丘将其命名为神圣的喜剧。

他被认为是中古时期意大利文艺复兴中最伟大的诗人,也是西方最杰出的诗人之一,最伟大的作家之一。恩格斯评价说:“封建的中世纪的终结和现代资本主义纪元的开端,是以一位大人物为标志的,这位人物就是意大利人但丁,他是中世纪的最后一位诗人,同时又是新时代的最初一位诗人”

更名为 Dante Cloud,寓意本项目会像恩格斯对但丁的评价一样,在行业变革的时期,可以成为一款承上启下,助力企业信息化建设变革的产品。

[2]、版本说明

自11月24日,Spring Boot 3.0 以及 Spring Cloud 2022.0.0 等全新版本发布,整个Java 社区也步入的 Java 17 和 Spring Boot 3 的新时代。紧跟 Java 技术和 Spring 社区的发展,让更多质量更好、性能更优的新特性服务于实际的开发工作,Dante Cloud 也同步进行升级及适配,开发了基于 Spring Authorization Server 1.0.1、Spring  Boot 3.0.3、Spring Cloud 2022.0.1、Spring Cloud Alibaba 2022.0.0.0-RC1、Spring Cloud Tencent 1.9.0-2022.0.1、Nacos 2.2.1-RC 全新 Dante Cloud 版本。关注请移步 3.0 分支

[3]、本次更新内容

  • 主要更新
    • [升级] Spring Boot 版本升级至 2.7.10
    • [升级] Spring Cloud Alibaba 版本升级至 2021.0.5.0
    • [漏洞] 修复 Spring DoS 安全漏洞 (CVE-2023-20861)
    • [漏洞] 修复 commons-fileupload 安全漏洞 (CVE-2023-24998)
  • 其它更新
    • [修复] 修复授权码模式登录页面在最新版本 Spring Authorization Server 下被拦截问题
    • [修复] 优化前端 Vite 生产模式下 chunk 打包策略,解决 chunk 不合理设置,产生编译后的代码运行异常,导致前端页面无法正常显示问题。
    • [修复] 修复 docker-compose 脚本中,最新版本 Nacos 缺少新增默认环境变量,导致 Nacos 镜像无法正常启动错误。fix:#I6OMKH (ISSUED by 乌拉松)
    • [修复] 修复 mysql 数据库初始化脚本。fix:#I6OMKH (ISSUED by 乌拉松)
    • [修复] 修复在线文档内容与当前最新版本内容不匹配问题。fix:#I6P1F3 (ISSUED by tao)
  • 依赖更新
    • [升级] maven-embedder 版本升级至 3.9.1
    • [升级] maven-compat 版本升级至 3.9.1
    • [升级] tencentcloud-sdk-java 版本升级至 3.1.720
    • [升级] alipay-sdk-java 版本升级至 4.35.83.ALL

[4]、Dante Cloud 2.7.X 特点

一、前端

  1. 未使用任何流行开源模版,使用全新技术栈,完全纯"手写"全新前端工程。
  2. 借鉴参考流行开源版本的使用和设计,新版前端界面风格和操作习惯尽量与当前流行方式统一。
  3. 充份使用 Typescript 语言特性,解决大量类型校验问题,尽可能规避 "any" 式的 Typescript 编程语言使用方式。
  4. 充份使用 Composition Api 和 Hooks 等 Vue3 框架新版特性进行代码编写。
  5. 充份利用 Component、Hooks 以及 Typescript 面向对象等特性,抽取通用组件和代码,尽可能降低工程重复代码。
  6. 对较多 Quasar 基础组件和应用功能组件进行封装,以方便代码的统一修改维护和开发使用。
  7. 对生产模式下,对基于 Vite3 的工程打包进行深度性能优化。
  8. 提供以 docker-compose 方式,对工程生产代码进行容器化打包和部署。
  9. 支持密码模式、授权码模式、手机短信模式、第三方社会化等多种登录模式。

二、后端

基于 Spring Authorization Server 深度定制和扩展:

  • 基于 Spring Authorization ServerSpring 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 模式,实现 Client Credentials 模式支持 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 CodeResource Ownership PasswordSocial Credentials 几种模式,全面融合 IdToken、Opaque Token、JWT Token 与现有权限体系,同时提供 IdToken 和 自定义Token 扩展两种无须二次请求的用户信息传递方式,减少用户信息的频繁请求。

  • 自定义 Spring Authorization Server 授权码模式登录认证页面和授权确认页面,授权码模式登录采用数据加密传输。支持多种验证码类型,暂不支持行为验证码。

  • 基于 JetCache 的多级缓存支持,实现自定义 Spring Data JPA 二级缓存,有效解决 Spring Cache 查询缓存更新问题。
  • 全面整合 @PreAuthorize 注解权限与 URL 权限,通过后端动态配置,无须在代码中配置 Spring Security 权限注解以及权限方法,即可实现接口鉴权以及权限的动态修改。采用分布式鉴权方案,规避 Gateway 统一鉴权的压力以及重复鉴权问题
  • 采用分布式服务独立鉴权方案,Spring Security @PreAuthorize 的权限注解、权限方法以及 URL 权限,通过后端动态配置后,实时动态分发至对应服务。
  • OAuth2 UserDetails 核心数据支持直连数据库获取和 Feign 远程调用两种模式。OAuth2 直连数据库模式性能更优,Feign 访问远程调用可扩展性更强。可通过配置动态修改采用策略方式。
  • 基于自定义 Session,混合国密 SM2(非对称) 和 SM4(对称加密) 算法,实现秘钥动态生成加密传输。利用“一人一码机制”,实现密码模式登录数据进行动态加密传输。配合 OAuth2 Client 验证,保护接口调用和前后端数据传输的合理性及安全性。

[5]、界面预览

Dromara 开源社区

一、社区愿景

让每一位开源爱好者,体会到开源的快乐。

二、社区官网

https://dromara.org 是 Dromara 开源社区官方网站。

三、成员项目

 


相關推薦

2023-05-25

越架构技术选型、技术研究探索阶段,降低传统项目中因安全漏洞、技术负债、低质代码等潜在隐患所产生的高维护投入,期望像项目名字寓意一样,在行业变革的时期承上启下,助力企业信息化建设和变革的产品。 从项目开

2024-03-14

Hutool 低版本携带的 CVE 问题。 [安全] 修复 Jayway JsonPath 安全漏洞(CVE-2023-51074) fix: #I8XWGJ [升级] Nacos docker 镜像版本升级至 v2.3.1 [升级] minio docker 镜像版本升级至 RELEASE.2024-03-07T00-43-48Z 【依赖更新】 [升级] JetCache 版本升

2023-07-13

置,利用 Vite 可编译成独立的组件,单独以组件形式进行发布 代码以共享模块的方式进行单独维护开发,降低现有工程代码复杂度,便于后续功能的扩展和代码的复用。 [3]界面预览 Dromara 开源社区 一、社区愿景 让

2024-02-22

级] nacos 镜像版本升级至 v2.3.0 [安全] 修复 Jayway JsonPath 安全漏洞(CVE-2023-51074) fix: #I8XWGJ [安全] 修复 CVE-2023-22102 未经身份验证的攻击者通过多个协议发送恶意请求,最终接管MySQL Protocol漏洞 fix: #I8T9LR 【依赖升级】 [升级]

2024-01-18

nitialize class org.dromara.hutool.crypto.bc.SmUtil 问题 fix: #I8WPZZ [发布] 基于 Sentinel 1.8.7 扩展改造的 Dante Sentinel Dashboard Docker 镜像已发布并上传至 Docker Hub 【其它更新】 [重构] 提取基础核心定义代码模块,清晰依赖和模块定位,

2022-08-02

、研究探索阶段的利器。同时降低老旧技术和组件带来的安全漏洞、技术负债、维护困难等隐患和投入。 特别是随着 Spring Security OAuth2 等老牌技术栈的停止维护、老版本技术组件安全漏洞频发、Sring Authorization Server、Spring Boot 3

2022-08-15

升级 tea-xml 和 dom4j 依赖包版本,去除低版本 dom4j 携带的安全漏洞问题。 [修复] 修复 Spring Authorization Server 自定义 Social Credentials 认证模式下,认证类型校验错误,导致手机验证码登录失败问题。 [修复] 修复自定义 Social Credent

2023-04-27

11月24日,Spring Boot 3.0 以及 Spring Cloud 2022.0.0 等全新版本发布,整个Java 社区也步入的 Java 17 和 Spring Boot 3 的新时代。紧跟 Java 技术和 Spring 社区的发展,让更多质量更好、性能更优的新特性服务于实际的开发工作,Dante Cloud 也同

2022-11-13

内部无权限标记的拦截,修复内部接口被外部直接调用的安全漏洞 [升级] 升级 Camunda Open API 描述文件版本至 7.18.0 [新增] 新增 logback-spring.xml 和 logback-spring-mdc.xml 两个 Nacos 配置文件 依赖升级 [升级] jackson 版本升级至 2.1

2022-09-23

大版本升级 [安全] 强制升级 xnio 版本至 3.8.8.Final,修复安全漏洞 (CVE-2022-0084) 其它更新 [新增] 新增 Spring Authorization Server 历史 Token 清理逻辑 [修复] 前端工程编译结果与 Nginx 一起打包为 Docker 后,在浏览器刷新页面出现

2023-01-21

11月24日,Spring Boot 3.0 以及 Spring Cloud 2022.0.0 等全新版本发布,整个Java 社区也步入的 Java 17 和 Spring Boot 3 的新时代。紧跟 Java 技术和 Spring 社区的发展,让更多质量更好、性能更优的新特性服务于实际的开发工作,Dante Cloud 也同

2023-07-20

行优化配置,可编译成独立的组件,单独以组件形式进行发布。 代码以共享模块的方式进行单独维护开发,降低现有工程代码复杂度,便于后续功能的扩展和代码的复用。 [3]界面预览 Dromara 开源社区 一、社区愿景

2023-10-30

行优化配置,可编译成独立的组件,单独以组件形式进行发布。 代码以共享模块的方式进行单独维护开发,降低现有工程代码复杂度,便于后续功能的扩展和代码的复用。

2022-10-02

Auth2` 版本。 基于 Vue3、Vite3、Quasar2、Pinia 等新版前端已发布,原有基于 Vue2、Vuetify2、Typescript 开发的前端代码已移至 vue2+vuetify2+typescript 分支 自 2.7.2.3 版本起,Dante Cloud 所有核心代码全部开源。新开放内容包括: 接口权