Dante Cloud 2.7.4.4 发布,企业级技术中台微服务架构
Dante Cloud 是一款企业级微服务架构和服务能力开发平台。首个全面拥抱 Spring Authorization Server 的版本,基于Spring Boot 2.7.4、Spring Cloud 2021.0.4、Spring Cloud Alibaba 2021.0.4.0、 Spring Authorization Server 0.3.1、Nacos 2.1.1 等最新版本开发的多租户系统,遵循SpringBoot编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能
平台定位
- 构建成熟的、完善的、全面的,基于 OAuth2.1 的、前后端分离的微服务架构解决方案。
- 面向企业级应用和互联网应用设计开发,既兼顾传统项目的微服务化,又满足互联网应用开发建设、快速迭代的使用需求。
- 平台架构使用微服务领域及周边相关的各类新兴技术或主流技术进行建设,是帮助快速跨越架构技术选型、研究探索阶段的利器。
- 代码简洁规范、结构合理清晰,是新技术开发应用的典型的、综合性案例,助力开发人员对新兴技术的学习和掌握。
[1]、为什么更名为 Dante Cloud
Dante Cloud (但丁), 原项目名称 Eurynome Cloud,很多朋友都反映名字太长、读起来拗口、不容易记等问题。因此在加入 Dromara 开源社区之际,将名字进行了变更。
Dante,即但丁·阿利基耶里(公元1265年-公元1321年),13世纪末意大利诗人,现代意大利语的奠基者,欧洲文艺复兴时代的开拓人物之一,以长诗《神曲》(原名《喜剧》)而闻名,后来一位作家叫薄伽丘将其命名为神圣的喜剧。
他被认为是中古时期意大利文艺复兴中最伟大的诗人,也是西方最杰出的诗人之一,最伟大的作家之一。恩格斯评价说:“封建的中世纪的终结和现代资本主义纪元的开端,是以一位大人物为标志的,这位人物就是意大利人但丁,他是中世纪的最后一位诗人,同时又是新时代的最初一位诗人”
更名为 Dante Cloud,寓意本项目会像恩格斯对但丁的评价一样,在行业变革的时期,可以成为一款承上启下,助力企业信息化建设变革的产品。
[2]、本次更新内容
- 【重要更新】
- [新增] 扩展 Spring Authorization Server 授权码模式(AuthorizationCode), 在授权码模式返回 Token 中增加系统用户信息,减少二次请求获取用户信息
- [新增] 在原有 ResourceOwnershipPassword、SocialCredentials 认证模式基础上,补充增加 OIDC IdToken 支持。
- [新增] 扩展 OIDC IdToken 及 OIDC /userinfo 端点信息内容,与现有用户权限体系融合,支持使用 Opaque Token 读取并解析用户信息。
- [优化] 整体优化 AuthorizationCode、ClientCredentials、ResourceOwnershipPassword、SocialCredentials 四种认证模式,除保留原有 JWT Token 的所有支持内容外,对 OIDC IdToken、Opaque Token 与现有权限体系进行了全面融合与支持
- [安全] 修复 jackson-databind 拒绝服务漏洞 (CVE-2022-42003)
- 【其它更新】
- [重构] 重构自定义 AuthorizationCode、ClientCredentials、ResourceOwnershipPassword、SocialCredentials 四种认证模式代码,抽象创建 AccessToken、RefreshToken、IdToken 等操作公共代码,代码逻辑更清晰易懂,同时减少重复冗余代码。
- [重构] 重构 oauth2ResourceServer 配置代码,统一资源服务器 Opaque Token 和 JWT Token 切换策略化配置逻辑。
- [修复] 在 OAuth2 OIDC 认证方式下,/userinfo 接口调用始终为 401 问题
- [修复] 修复开启 Session 共享功能后,Gateway Session 相关内容注入重复冲突问题。
- [修复] 在 AuthorizationCode、SocialCredentials 认证模式下,前端菜单加载异常问题。
- [新增] 前端新增 Spring Authorization Server 授权码模式(AuthorizationCode) 登录方式。
- [新增] 优化前端 OAuth2 认证所有接口代码,新增 OIDC IdToken 开关配置,在前端即可根据使用需求决定使用 OIDC (OpenID Connect) 模式还是传统 OAuth2 模式。
- [优化] 优化前后端用户基本信息提供和使用机制。后端会根据前端 IdToken 开启与否状态,策略化提供 IdToken 或自定义 Token 补充用户信息(注:两种方式均无需通过二次请求后端获取用户信息)。
- [优化] 前端 echarts 使用方式,变更为按需加载,解决前端工程调试过程中,Dashboard 页面加载缓慢问题。
- [优化] 优化单体版 application.yml 配置
- 【依赖更新】
- [升级] commons-text 版本至 1.10.0
- [升级] tencentcloud-sdk-java-sms 版本至 3.1.608
- [升级] alipay-sdk-java 版本至 4.34.14.ALL
[3]、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
验证,保护接口调用和前后端数据传输的合理性及安全性。
[4]、界面预览
Dromara 开源社区
一、社区愿景
让每一位开源爱好者,体会到开源的快乐。
二、社区官网
https://dromara.org 是 Dromara 开源社区官方网站。
三、成员项目

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Snowy v2.0.3 已发布,升级了很多细节
Snowy 是国内首个采用国密技术为核心的前后分离后台权限管理系统,同时也是面向中小企业快速开发平台框架。框架采用主流技术开发设计,支持国产中间件、麒麟操作系统、Windows、Linux 部署使用,框架使用 SM2、SM3、SM4 等国密算法进行签名、数据完整性保护,软件层面完全符合等保、密评要求。 此次发布 2.0.3 主要更新请看以下: 【修复】修复C端用户接口解密失败的bug 【更新】更新用户界面编辑后,因任职机构传输null字符串,导致回显错误问题 【修复】删除角色时应该级联删除角色与权限关系 【更新】升级satoken为1.31.0 【更新】升级springboot为2.5.12,与satoken依赖boot版本一致,防止log4j漏洞风险 【更新】升级spring-boot-maven-plugin为2.5.12 【更新】文件、短信、邮件、站内信的重要接口仅超管可访问,非重要接口登陆后即可访问 【更新】更新mp配置,新增oracle.nls.orai18n编码包 【更新】更新 issues 中#I5V6OD:菜单管理选中新创建的模块,菜单列表不为空:菜单管理选中新创建的模...
- 下一篇
每日一博 | 标签评分:海量标签如何进行系统治理?
本篇是「标签画像系列」的第四篇,此前我们已经介绍过了标签画像体系建设方法论、标签体系设计与加工、标签加工与落库,这次我们来介绍一下「标签评分」。 标签评分是标签治理的一个重要措施,通过给标签打分,可清晰直观的从各个维度评估标签,掌握标签真实使用情况,进行标签持续优化,助力业务运营。同时,也能帮助数据团队判断哪些标签更应该投入计算与存储资源,合理规划集群资源。 一、为何要使用标签评分? 经过前期标签体系设计、标签加工,标签终于可以上线,让业务人员使用,发挥价值了! 随着标签上线一段时间后,我们开始关心每天占用计算资源与存储空间,跑出来的上百个标签,业务同学真的用到了多少,业务收益是否能覆盖数据成本呢?标签上线后,其质量怎么样,是否存在老规则不适用、需要持续优化的情况? 带着这一问题,我们需要用一种方法来评估标签上线后的使用情况,标识各个标签的价值。参考电影评分、花呗评分等形式,我们决定也给标签打个分、排个序,简单明了。 二、标签评分模型 标签评分模型,经过考虑我们选取了5个维度作为评分入参: 标签总评分= a * 标签使用度评分 + b * 标签关注度评分 + c * 标签质量评分 + ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境