Dante Cloud 2.7.7.5 发布,上新融合WebSocket的独立消息应用服务
Dante Cloud 是一款企业级微服务架构和服务能力开发平台。首个全面拥抱 Spring Authorization Server 的版本,基于Spring Authorization Server 0.4.0、Spring Boot 2.7.7、Spring Cloud 2021.0.5、Spring Cloud Alibaba 2021.0.4.0、Nacos 2.2.0 等最新版本开发的多租户系统,遵循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、Spring Cloud Tencent 1.8.2 等全新版本发布,整个Java 社区也步入的 Java 17 和 Spring Boot 3 的新时代。紧跟 Java 技术和 Spring 社区的发展,让更多质量更好、性能更优的新特性服务于实际的开发工作,Dante Cloud 也同步进行升级及适配,开发了全新的 3.0 版本。关注请移步 3.0 分支
[3]、本次更新内容
- 【主要更新】
- 新增融合 Stomp WebSocket、私信、公告等功能的独立消息服务:
- 融合 Stomp WebSocket、私信、公告等功能的独立消息服务,支持前端与后端采用 WebSocket 和 REST 接口互发消息。
- 新增私信、公告发送,及新消息提醒、基于私信对话浏览信息功能
- WebSocket 模块,支持 WebSocket Token 鉴权及登录用户信息解析功能,Token 失效或不正确则自动断开连接。
- 新增实时在线用户统计及同步实时刷新功能
- 核心组件库大量模块重构:
- Spring Authorization Server OAuth2 相关代码分包和模块结构,逻辑更内聚、职责更清晰、模块引用依赖更简洁
- 删除原 engine-protect 模块及其子模块,将其合并至 engine-rest 模块下。
- 删除原 engine-websocket 模块与 engine-message 模块整合形成统一的消息应用核心包。
- 重构基于 Redis 的 Session 共享配置代码,采用更合理的配置实现分布式微服务 Session 共享,同时支持 WebSocket Session 集成。
- 前端工程版本重大变化:
- 前端工程默认包管理器变更为 pnpm。
- 采用 `monorepo` 模式对前端工程进行重构,抽取 utils、components、apis、bpmn-designer 等相关代码,形成共享模块
- 共享模块已进行优化配置,利用 Vite 可编译成独立的组件,单独以组件形式进行发布
- 代码以共享模块的方式进行单独维护开发,降低现有工程代码复杂度,提升开发模式服务器编译速度,便于后续功能的扩展和代码的复用。
- 新增融合 Stomp WebSocket、私信、公告等功能的独立消息服务:
- 【其它更新】
- [新增] 新增手工解析 Token 信息机制,同时支持 JWT Token 和 Opaque Token。
- [新增] 在 JWT Token、Opaque Token 和 IdToken 新增用户信息扩展字段,以方便前端直接使用,减少与后端的交互。
- [修复] 优化微服务分布式 Session 共享配置,解决共享 Session 不一致问题。
- [修复] Spring Authorization Server 授权码模式下,WebSocket 获取的 Principal 类型无法解析问题。
- [修复] Antisamy XSS 校验结果包含换行符,导致 WebSocket 连接异常问题。
- [修复] 修复 WebSocket 握手阶段获取 Session 异常抛出 NullPointException 问题。
- [修复] 修复 XSS Request 包装器 Parameter 方法错误,导致无法获取参数错误
- [新增] 前端采用新版 Stomp JS 实现 WebSocket 支持。
- [新增] 新增实时在线用户统计及同步实时刷新功能
- [新增] 前端新增基于用户 ID,动态生成默认 Avatar 功能。
- [新增] 前端新增独立个人设置页面,包含私信、公告查阅功能
- 【依赖更新】
- [升级] maven-embedder 版本升级至 3.8.7
- [升级] maven-compat 版本升级至 3.8.7
- [升级] redisson 版本升级至 3.19.1
- [升级] minio 版本升级至 3.5.1
- [升级] fastjson2 版本升级至 2.0.23
- [升级] wxjava 版本升级至 4.4.8.B
- [升级] tencentcloud-sdk-java 版本升级至 3.1.678
- [升级] alipay-sdk-java 版本升级至 4.35.32.ALL
- 【友情提示】
- 最新版本前端工程同时支持 Dante Cloud 2.7.X 和 3.0.X 微服务后端工程。原有前端工程将不再继续维护,相关代码将迁移至 Dante Cloud UI 2.7.0 分支。
[4]、Dante Cloud 2.7.X 特点
一、前端
- 未使用任何流行开源模版,使用全新技术栈,完全纯"手写"全新前端工程。
- 借鉴参考流行开源版本的使用和设计,新版前端界面风格和操作习惯尽量与当前流行方式统一。
- 充份使用 Typescript 语言特性,解决大量类型校验问题,尽可能规避 "any" 式的 Typescript 编程语言使用方式。
- 充份使用 Composition Api 和 Hooks 等 Vue3 框架新版特性进行代码编写。
- 充份利用 Component、Hooks 以及 Typescript 面向对象等特性,抽取通用组件和代码,尽可能降低工程重复代码。
- 对较多 Quasar 基础组件和应用功能组件进行封装,以方便代码的统一修改维护和开发使用。
- 对生产模式下,对基于 Vite3 的工程打包进行深度性能优化。
- 提供以 docker-compose 方式,对工程生产代码进行容器化打包和部署。
- 支持密码模式、授权码模式、手机短信模式、第三方社会化等多种登录模式。
二、后端
基于 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
模式,实现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 Code
、Resource Ownership Password
、Social 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 开源社区官方网站。
三、成员项目

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
db3: 基于 Rust 的 Web3 基础设施,去中心化的 Firestore 替代正式发布v0.2.5版本
DB3网络项目介绍 DB3 Network是一款开源的去中心化的firebase替代品,在DB3 Network上面可以低成本快速构建复杂的去中心化数据应用,比如去中心化论坛,去中心化社交 DB3网络要解决什么问题 在没有db3 network情况下,如果你想构建一个复杂的去中心化数据应用,比如去中心社交,你有两种选择 用中心化的数据库架构,比如使用firestore或者mongodb来存储和读取数据,这种架构优势是实现方便,开发者体验好,缺点因为引入了中心化系统会打破去中心系统的优势 用以太坊或者其他公链来存储数据,用thegraph来索引数据,通过区块链能够保证数据去中心化,用thegraph可以提供快速的链上查询功能,这种架构有时是能够保证去中心化,但是开发成本非常高,对开发者不友好 而db3 network就是融合这两种架构的优点,即有firestore友好的开发接口体验,还是去中心化的能力,可以帮助开发者低门槛高效的开发去中心化应用 V0.2.5更新 支持通过typescript sdk创建database 添加benchmark测试case 添加wpt兼容测试用例 如果你对...
- 下一篇
Google 发布 Fuchsia OS F9
Fuchsia OS 是一种现代开源操作系统,简单、安全、可更新且高性能。作为通用操作系统,Fuchsia 旨在为多样化的硬件和软件生态系统提供支持。 近日 Google 发布了 Fuchsia F9 版本,该版本实施了以下变更: Application Runtimes (Flutter、Starnix 和 Web) 问题:构建内核功能来支持 Starnix 新的执行模型。 影响:受限模式执行器已新增到 Starnix 中,以默认方式运行。 开发者 ffx debug/zxdb 现在可以执行以下操作: 列出执行中的组件 找出与进程相关联的组件 通过组件到 URL 直接附加至组件 启动测试并附加到其中。 现在可以使用新的 ffx component reload 命令来快速更新组件 改善 Bazel 工作流程,包括: 执行 scripts/bootstrap.sh 脚本时,Bazel 二进制文件现被下载至 tools/bazel 目录 Bazel 命令必须从 tools/bazel 执行,以确保使用正确的 Bazel 版本。 如果需要的话,执行 tools/ffx 会自动启动 Baze...
相关文章
文章评论
共有0条评论来说两句吧...