2.7.X 更新日志
v2.7.18.Final
- 重要说明
- Spring Boot 2.7.X 于 2023 年 11 月 24 日 停止维护,最后发布一次 Dante Cloud 2.7.X 版本以示纪念
- 主要更新
- [升级] Spring Boot 版本升级至 2.7.18
- [升级] Spring Boot Admin 版本升级至 2.7.13
- [升级] spring-security-oauth2-authorization-server 版本升级至 0.4.4
- 其它更新
- [升级] 同步更新最新版本 Antisamy XSS 防护配置文件
- 依赖更新
- [升级] antisamy 版本升级至 1.7.4
- [升级] commons-io 版本升级至 2.15.0
- [升级] guava 版本升级至 32.1.3-jre
- [升级] redisson 版本升级至 3.24.3
- [升级] minio 版本升级至 8.5.7
- [升级] fastjson2 版本升级至 2.0.42
- [升级] hutool 版本升级至 5.8.23
- [升级] okhttps 版本升级至 4.0.2
- [升级] wxjava 版本升级至 4.5.7.B
- [升级] mybatis plus 版本升级至 3.5.4.1
- [升级] mybatis 版本升级至 3.5.14
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.893
- [升级] alipay-sdk-java 版本升级至 4.38.140.ALL
- [升级] com.baidu.aip 版本升级至 4.16.17
- [升级] aliyun-sdk-oss 版本升级至 3.17.2
- [升级] xnio 版本升级至 3.8.12.Final
- [升级] log4j 版本升级至 2.21.1
- [升级] jackson 版本升级至 2.15.3
v2.7.16.Final
- 重要说明
- 因 Spring Boot 2.7.X 和 3.0.X 将分别于 2023 年 11 月 18 日 和 2023 年 11 月 24 日 停止维护,考虑到技术发展趋势,决定停止 Dante Cloud 2.7.X 版本代码的维护,专注 3.1.X 维护及 3.2.X 开发。2.7.16.Final 版本是 Dante Cloud 2.7.X 系列最后一个版本,代码仍旧会保留,可在工程 2.7.X 分支中获取。
- 主要更新
- [升级] Spring Boot 版本升级至 2.7.16
- [升级] Spring Boot Admin 版本升级至 2.7.11
- 依赖更新
- [升级] redisson 版本升级至 3.23.5
- [升级] fastjson2 版本升级至 2.0.40
- [升级] hutool 版本升级至 5.8.22
- [升级] wxjava 版本升级至 4.5.5.B
- [升级] aliyun-java-sdk-core 版本升级至 4.6.4
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.853
- [升级] alipay-sdk-java 版本升级至 4.38.85.ALL
- [升级] snakeyaml 版本升级至 2.2
- 其它说明
- 还没拥抱 JDK 17 么?JDK 21 都已经来到了!
v2.7.15.0
- 主要更新
- [升级] Spring Boot 版本升级至 2.7.15
- 其它更新
- [优化] 默认数据库名称进行变更,修改为与项目名称一致,方便记忆和使用
- 依赖更新
- [升级] docker-maven-plugin 版本升级至 0.43.4
- [升级] bcprov-jdk15to18 版本升级至 1.76
- [升级] guava 版本升级至 32.1.2-jre
- [升级] redisson 版本升级至 3.23.3
- [升级] minio 版本升级至 8.5.5
- [升级] fastjson2 版本升级至 2.0.39
- [升级] hutool 版本升级至 5.8.21
- [升级] wxjava 版本升级至 4.5.4.B
- [升级] mybatis-plus 版本升级至 3.5.3.2
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.835
- [升级] qiniu-java-sdk 版本升级至 7.14.0
- [升级] alipay-sdk-java 版本升级至 4.38.61.ALL
- [升级] aliyun-sdk-oss 版本升级至 3.17.1
- [升级] snakeyaml 版本升级至 2.1
v2.7.14.0
- 主要更新
- [升级] Spring Boot 版本升级至 2.7.14
- 其它更新
- [优化] 删除 Gateway 服务中无用的 RedisRouteDefinitionRepository 类以及无用的依赖。避免使用该类进行无防护的业务功能开发,导致产生安全问题。
- [修复] 修复前端 bpmn-designer 模块在新版 vite 环境下编译模块出错问题。
- [修复] 修复前端在新版本 vite-plugin-dts 环境下编译模块出错问题
- 依赖更新
- [升级] guava 版本升级至 32.1.1-jre
- [升级] redisson 版本升级至 3.23.1
- [升级] fastjson2 版本升级至 2.0.36
- [升级] transmittable-thread-local 版本升级至 2.14.3
- [升级] wxjava 版本升级至 4.5.2.B
- [升级] dysmsapi20170525 版本升级至 2.0.24
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.800
- [升级] alipay-sdk-java 版本升级至 4.38.10.ALL
v2.7.13.0
- 主要更新
- [升级] Spring Boot 版本升级至 2.7.13
- [升级] Spring Cloud 版本升级至 2021.0.8
- [升级] Debezimu 版本升级至 2.3
- 依赖更新
- [升级] guava 版本升级至 32.1.0-jre
- [升级] bcprov-jdk15to18 版本升级至 1.75
- [升级] minio 版本升级至 8.5.4
- [升级] wxjava 版本升级至 4.5.1.B
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.787
- [升级] alipay-sdk-java 版本升级至 4.35.171.ALL
- [升级] aliyun-sdk-oss 版本升级至 3.17.0
v2.7.12.1
- [升级] spring-security-oauth2-authorization-server 版本升级至 0.4.3
- [升级] nacos 版本升级至 2.2.4
- [升级] hutool 版本升级至 5.8.20
- [升级] docker-maven-plugin 版本升级至 0.43.0
- [升级] commons-io 版本升级至 2.13.0
- [升级] guava 版本升级至 32.0.1-jre
- [升级] redisson 版本升级至 3.22.1
- [升级] logstash-logback-encoder 版本升级至 7.4
- [升级] skywalking 版本升级至 8.16.0
- [升级] minio 版本升级至 8.5.3
- [升级] fastjson2 版本升级至 2.0.34
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.781
- [升级] qiniu-java-sdk 版本升级至 7.13.1
- [升级] alipay-sdk-java 版本升级至 4.35.166.ALL
- [升级] aliyun-sdk-oss 版本升级至 3.16.3
- [升级] jackson 版本升级至 2.15.2
v2.7.12.0
- 主要更新
- [升级] Spring Boot 版本升级至 2.7.12
- 其它更新
- [重构] 重新配置并统一 maven repositories 和 pluginRepositories。以 dante-engine dependencies 为核心,删除其它工程中,重复和冲突的配置。
- 依赖更新
- [升级] mapstruct-processor 版本升级至 1.5.5.Final
- [升级] maven-gpg-plugin 版本升级至 3.1.0
- [升级] commons-io 版本升级至 2.12.0
- [升级] redisson 版本升级至 3.21.3
- [升级] fastjson2 版本升级至 2.0.32
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.757
- [升级] alipay-sdk-java 版本升级至 4.35.132.ALL
- [升级] com.baidu.aip 版本升级至 4.16.16
- [升级] aliyun-sdk-oss 版本升级至 3.16.3
- [升级] jackson 版本升级至 2.14.3
v2.7.11.1
- 主要更新
- [升级] Spring Cloud 版本升级至 2021.0.7
- 依赖更新
- [升级] redisson 版本升级至 3.21.0
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.748
v2.7.11.0
- 主要更新
- [升级] Spring Boot 版本升级至 2.7.11
- [升级] Spring Authorization Server 版本升级至 0.4.2
- [升级] Debezium 版本及相关基础设施版本升级至 2.2
- 其它更新
- [漏洞] 修复 Snakeyaml (CVE-2022-1471) 存在反序列化漏洞 和 (CVE-2022-41854) 存在缓冲区溢出漏洞
- [新增] 新增服务优雅停机支持
- [优化] 优化数据自动初始化脚本放置位置,与新版本代码创建数据表需要启动两个服务机制进行统一。
- [修复] 修复自定义社交登录模式中,微信小程序参数获取未补充错误。
- 依赖更新
- [升级] snakeyaml 版本升级至 2.0
- [升级] fastjson2 版本升级至 2.0.29
- [升级] wxjava 版本升级至 4.5.0
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.744
- [升级] alipay-sdk-java 版本升级至 4.35.110.ALL
v2.7.10.2
- 主要更新
- [升级] Nacos 版本升级至 2.2.2
- [升级] Spring Authorization Server 版本升级至 0.4.2
- [升级] Camunda 版本升级至 7.19.0,同步更新数据库脚本
- [升级] Skywalking Agent 版本升级至 8.15.0
- [升级] Antisamy 版本升级至 1.7.3,同步升级 XSS 攻击防护策略配置文件
- 其它更新
- [优化] 优化 Docker Compose 脚本配置
- 依赖升级
- [升级] bcprov-jdk15to18 版本升级至 1.73
- [升级] fastjson2 版本升级至 2.0.28
- [升级] hutool 版本升级至 5.8.18
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.737
- [升级] alipay-sdk-java 版本升级至 4.35.107.ALL
- 升级说明
- 因仓库提交文件大小限制,所以本次发布不在上传 Skywalking Agent 相关 Jar 包,有需要请自行下载。
v2.7.10.1
- 主要更新
- [新增] 新增 MongoDB 基础 Entity、Repository、Service、Controller 和 MybatisPlus 基础 Controller,方便业务接口代码编写。
- 依赖更新
- [升级] docker-maven-plugin 版本升级至 0.42.1
- [升级] redisson 版本升级至 3.20.1
- [升级] springdoc 版本升级至 1.7.0
- [升级] fastjson2 版本升级至 2.0.27
- [升级] hutool 版本升级至 5.8.16
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.731
- [升级] qiniu-java-sdk 版本升级至 7.13.0
- [升级] alipay-sdk-java 版本升级至 4.35.101.ALL
- [升级] aliyun-sdk-oss 版本升级至 3.16.2
- [升级] xnio 版本升级至 3.8.9.Final
v2.7.10.0
- 主要更新
- [升级] 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
v2.7.9.2
- 主要更新
- [升级] nacos 版本升级至 2.2.1
- 其它更新
- [修复] 修复 SecurityUtils 无法获取当前登录用户信息问题 fix: #I6KOG6 (ISSUED by 大叔丨小巷)
- [修复] 修复 Content/Authorize 页面,页面缩放时,页面可能出现空白 fix: #I6KT7R (ISSUED by dens)
- 依赖升级
- [升级] springdoc 版本升级至 1.6.15
- [升级] fastjson2 版本升级至 2.0.26
- [升级] hutool 版本升级至 5.8.15
- [升级] wxjava 版本升级至 4.4.9.B
- [升级] mybatis 版本升级至 3.5.13
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.715
- [升级] alipay-sdk-java 版本升级至 4.35.79.ALL
- [升级] postgresql 版本升级至 42.6.0
v2.7.9.1
- 主要更新
- [修复] 修复单体版 MySQL 数据库初始化脚本错误。fix:#I6HRDP (ISSUED by 柳敏莘)
- [修复] 修复查询接口中包含 properties 数组属性会导致 Gateway UrlDecode 失败的问题 fix:#I6HOLA (ISSUED by dens)
- 依赖更新
- [升级] docker-maven-plugin 版本升级至 0.42.0
- [升级] redisson 版本升级至 3.20.0
- [升级] hutool 版本升级至 5.8.13
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.706
- [升级] alipay-sdk-java 版本升级至 4.35.65.ALL
- [升级] log4j 版本升级至 2.20.0
v2.7.9.0
- 主要更新
- [升级] Spring Boot 版本升级至 2.7.9
- [升级] Spring Cloud 版本升级至 2021.0.6
- 其它更新
- [新增] 菜单管理页面增加标题过滤条件
v2.7.8.1
- 主要更新
- [升级] Spring Authorization Server 版本升级至 0.4.1
- [升级] Skywalking Agent 版本升级至 8.14.0
- 其它更新
- [升级] Debezimu 相关组件版本升级至 2.1
- [删除] 删除 yunpian 短信模块及相关依赖
- [修复] Dashboard 页面,在切换 Tab 后,echarts 宽度不再自适应,显示成 100px 问题。
- [修复] 根据新版 axios typescript 定义,修改 axios 核心代码解决类型提示错误。
- [修复] 修复在最新版本 vite-plugin-dts 环境下,编译模块出现较多提示信息问题。
- 依赖升级
- [升级] docker-maven-plugin 版本升级至 0.41.0
- [升级] maven-embedder 版本升级至 3.9.0
- [升级] maven-compat 版本升级至 3.9.0
- [升级] redisson 版本升级至 3.19.3
- [升级] logstash-logback-encoder 版本升级至 7.3
- [升级] minio 版本升级至 8.5.2
- [升级] fastjson2 版本升级至 2.0.24
- [升级] hutool 版本升级至 5.8.12
- [升级] okhttps 版本升级至 4.0.1
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.697
- [升级] alipay-sdk-java 版本升级至 4.35.45.ALL
- [升级] com.baidu.aip 版本升级至 4.16.14
- [升级] aliyun-sdk-oss 版本升级至 3.16.1
- [升级] dom4j 版本升级至 2.1.4
- [升级] jackson 版本升级至 2.14.2
- [升级] postgresql 版本升级至 42.5.4
v2.7.8.0
- 主要更新
- [升级] Spring Boot 版本升级至 2.7.8 fix:#I6B4UT
- [重构] 重构 Athena 工程模块结构,简化该工程多模块结构,删除多余无意义的结构示例性结构,各模块的用途及含义更简洁清晰
- 其它更新
- [新增] 针对某一类权限校验并不严格的接口,新增只校验是否认证、不校验授权的权限校验策略,以提高权限校验的灵活度,降低权限配置维护的工作量。
- [新增] 只校验是否认证、不校验授权的权限校验策略配置
- [修复] 修复极端情况下,权限缓存数据丢失,接口请求将跳过权限验证的潜在安全问题。
- [修复] 修复 Spring Cloud Gateway 长期运行后出现 io.netty.util.internal.OutOfDirectMemoryError 问题。fix:#I6AZJX (ISSUED by 狂练胸肌李大懒)
- [优化] 将默认 WebSocket 连接地址设置为 permitAll 权限,跳过资源服务器检测,由 WebSocket 模块自主进行权限校验。
- [优化] 基于 axios 最新版本 typescript 定义,优化前端 @herodotus/core 模块 axios 核心代码,避免编译过程中出现类型校验错误。
- 依赖更新
- [升级] jetcache 版本升级至 2.7.3
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.681
- [升级] alipay-sdk-java 版本升级至 4.35.37.ALL
v2.7.7.5
- 主要更新
- [新增] 新增融合 Stomp WebSocket、私信、公告等功能的独立消息服务。支持前端与后端采用 WebSocket 和 REST 接口互发消息。
- [新增] 新增私信、公告发送,及新消息提醒、基于私信对话浏览信息功能
- [新增] 新增手工解析 Token 信息机制,同时支持 JWT Token 和 Opaque Token。
- [新增] WebSocket 模块,支持 WebSocket Token 鉴权及登录用户信息解析功能
- [新增] 新增实时在线用户统计及同步实时刷新功能
- 其它更新
- [重构] 重构基于 Redis 的 Session 共享配置代码,采用更合理的配置实现分布式微服务 Session 共享
- [修复] 优化微服务分布式 Session 共享配置,解决共享 Session 不一致问题。
- [修复] Spring Authorization Server 授权码模式下,WebSocket 获取的 Principal 类型无法解析问题。
- [修复] Antisamy XSS 校验结果包含换行符,导致 WebSocket 连接异常问题。
- [修复] 修复 WebSocket 握手阶段获取 Session 异常抛出 NullPointException 问题。
v2.7.7.4
- 主要更新
- [重构] 重构 Spring Authorization Server OAuth2 相关代码分包和模块结构,逻辑更内聚、职责更清晰、模块引用依赖更简洁
- 其它更新
- [修复] 修复 XSS Request 包装器 Parameter 方法错误,导致无法获取参数错误
- [新增] 新增手工解析 Token 信息机制,同时支持 JWT Token 和 Opaque Token。
v2.7.7.3
- 主要更新
- [重构] 删除 engine-protect 模块,相关代码合并至 engine-rest 模块中
- 其它更新
- [新增] 在 JWT Token、Opaque Token 和 IdToken 新增用户信息扩展字段,以方便前端直接使用,减少与后端的交互。
- [修复] 修复 前端使用授权码模式登录,授权码地址多出 "/api" 代理问题。fix: #I69XZC
- 依赖更新
- [升级] 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
v2.7.7.2
- 主要更新
- [修复] 修复条件查询 Token 参数错误,导致操作异常抛出 Unable to locate Attribute with the the given name [authorizationCode] 异常错误。fix:#I69CN8
v2.7.7.1
- 主要更新
- [升级] Spring Boot Admin 版本升级至 2.7.10
- 其它更新
- [修复] 修复遗漏 Spring Authorization Server 0.4.0 以后新增字段 authorized_scopes 问题
- [修复] 修复自定义授权模式使用 Refresh Token 重新申请 Token 抛错问题。
- 依赖更新
- [升级] fastjson2 版本升级至 2.0.22
- [升级] hutool 版本升级至 5.8.11
- [升级] 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
- [升级] Redisson 版本升级至 3.19.1
v2.7.7.0
- 主要更新
- [升级] Spring Boot 版本升级至 2.7.7
- 其它更新
- [升级] docker-maven-plugin 版本升级至 0.40.3
- [升级] redisson 版本升级至 3.19.0
- [升级] springdoc 版本升级至 1.6.14
- [升级] fastjson2 版本升级至 2.0.21
- [升级] jetcache 版本升级至 2.7.2
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.657
- [升级] alipay-sdk-java 版本升级至 4.35.9.ALL
- [升级] qiniu-java-sdk 版本升级至 7.12.1
- [升级] com.baidu.aip 版本升级至 4.16.13
v2.7.6.1
- 主要更新
- [升级] Nacos 版本升级至 2.2.0
- [升级] Spring Boot Admin 版本升级至 2.7.9
- 其它更新
- [重构] 前端 API 接口调用,修改为 proxy 代理模式,解决前后端跨域导致前端不创建 Cookie,后端 Session Id 不一致,Session 共享不生效问题。
- [修复] 修复华为云短信发送请求体类型设置错误
- [修复] 修复 MySQL 数据库初始化脚本中 JSON 数据格式错误,导致运行抛出参数校验错误问题
- 依赖更新
- [升级] redisson 版本升级至 3.18.1
- [升级] wxjava 版本升级至 4.4.6.B
- [升级] dysmsapi20170525 版本升级至 2.0.23
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.648
- [升级] alipay-sdk-java 版本升级至 4.35.0.ALL
- [升级] aliyun-sdk-oss 版本升级至 3.16.0
v2.7.6.0
- 主要更新
- Spring Boot 版本升级至 2.7.6
- 其它更新
- [修复] 解决使用 edge 浏览器并使用 feign,报错 Unexpected char 0x0a(PR by 狂练胸肌的李大懒)
- [修复] 修复前端唯一性字段在新建、编辑不同状态下校验不准确、状态不合理问题。解决导致编辑状态下唯一性字段数据未修改仍会校验失败问题。
- [修复] 优化微服务分布式 Session 共享配置,解决共享 Session 不一致问题。
- [新增] 数据初始化脚本补充 OIDC 客户端注册相关信息
- 依赖更新
- [升级] fastjson2 版本升级至 2.0.20
- [升级] dysmsapi20170525 版本升级至 2.0.23
- [升级] aliyun-java-sdk-core 版本升级至 4.6.3
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.641
- [升级] alipay-sdk-java 版本升级至 4.34.71.ALL
- [升级] aliyun-java-sdk-green 版本升级至 3.6.6
- [升级] postgresql 版本升级至 42.5.1
- [升级] jackson 版本升级至 2.14.1
v2.7.5.3
- 主要更新
- [升级] Spring Authorization Server 版本升级至 0.4.0
- [重构] 按照 Spring Authorization Server 0.4.0 最新代码结构和 API 用法,重构认证授权相关代码。
- 其它更新
- [新增] 新增 Token Settings 授权码模式 Code 有效时间字段。
- [优化] OAuth2 Application 中 accessTokenTimeToLive、refreshTokenTimeToLive、authorizationCodeTimeToLive 属性的默认值,修改为与 Spring Authorization Server TokenSettings 一致。
- [优化] 优化数据库初始化脚本中的初始数据,与 Spring Authorization Server 0.4.0 最新代码适配
- [优化] 优化分布式微服务 Session 共享配置。解决 Session 共享在 Gateway 中,出现注入重复导致无法启动问题。
- [升级] 升级 Antisamy XSS 攻击防护规则脚本。
- 依赖更新
- [升级] antisamy 版本升级至 1.7.2
- [升级] springdoc 版本升级至 1.6.13
- [升级] minio 版本升级至 8.4.6
- [升级] fastjson2 版本升级至 2.0.19
- [升级] Hutool 版本升级至 5.8.10
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.633
- [升级] alipay-sdk-java 版本升级至 4.34.52.ALL
v2.7.5.2
- 主要更新
- [升级] Spring Cloud 版本升级至 2021.0.5
- [升级] Skywalking Agent 版本升级至 8.13.0
- [新增] 在 Nacos 中增加 logback 配置,新增服务可外部化动态读取 logback.xml 配置模式。以便于更加灵活的进行日志输出配置。
- [新增] 外部配置 logback.xml 中,增加 Skywalking 日志上报、ELK 日志中心日志收集、Skywalking TraceId 等支持。同时提供常规及 MDC 两种配置。
- [新增] 在统一响应实体 Result 增加 TraceId 信息,在开启 Skywalking Tracing 的情况下,可在返回结果中,统一增加 TraceId,方便跟踪和调试。
- 其它更新
- [修复] 优化 Gateway 请求信息拦截机制,增加对 Feign 内部无权限标记的拦截,修复内部接口被外部直接调用的安全漏洞
- [升级] 升级 Camunda Open API 描述文件版本至 7.18.0
- [新增] 新增 logback-spring.xml 和 logback-spring-mdc.xml 两个 Nacos 配置文件
- 依赖升级
- [升级] jackson 版本升级至 2.14.0
- [升级] fastjson2 版本升级至 2.0.18
- [升级] wxjava 版本升级至 4.4.4.B
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.627
- [升级] qiniu-java-sdk 版本升级至 7.12.0
- [升级] alipay-sdk-java 版本升级至 4.34.47.ALL
v2.7.5.1
- 主要更新
- [升级] Spring Boot Admin 版本更新至 2.7.7
- [修复] 修复在 Opaque Token 格式下,通过客户端模式(Client Credentials) 获取 Token 后,基于 Scope 进行接口权限验证失败,出现"OAuth2ClientAuthenticationToken is not in the allowlist. If you believe this class is safe to deserialize, please provide an explicit mapping using Jackson annotations or by providing a Mixin" 问题。
- 其它更新 前端尝鲜版(dante-cloud-ui monorepo 分支)增加体验性功能
- [新增] API 模块封装 Camunda Deployment、ProcessDefinition、ProcessInstance 相关操作 API,结合 Camunda API 说明封装相关 Typescript 声明文件。
- [新增] 新增 Camunda Modeler 在线编辑结果上传部署至服务器端功能。
- [新增] 前端增加 Apps Widgets 列表功能,可方便快捷地进入流程编辑器和动态表单设计器界面。
- 依赖更新
- [升级] fastjson2 版本升级至 2.0.17
- [升级] jackson 版本强制升级至 2.14.0-rc3
- [升级] wxjava 版本升级至 4.4.3.B
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.616
- [升级] alipay-sdk-java 版本升级至 4.34.22.ALL
- [升级] com.baidu.aip 版本升级至 4.16.12
- [升级] qiniu-java-sdk 版本升级至 7.12.0
- 友情提示
- 如使用阿里 Maven 镜像,出现本项目或其它依赖包无法下载的情况,请切换其它 Maven 镜像,比如腾讯 Maven 镜像。
- 在 Maven Settings 文件中,将所需使用的 Maven Mirror 设置为第一个即可。
v2.7.5.0
重要更新
- [升级] Spring Boot 版本升级至 2.7.5
- [升级] Debezimu 版本升级至 2.0,相关 Docker Compose 中配置 Debezimu Kafka Zookeeper 镜像版本同步升级至 2.0。
- [变更] 代码开发、编译以及 Docker 基础镜像所使用 JDK 全面更换为 Bellsoft Liberica OpenJDK 发行版,以避免 Oracle JDK 版权问题。仍旧兼容 Oracle JDK,原有自主封装 Oracle JDK 已不再使用。fix:#I5WRXI (ISSUED by 疯狂的狮子 Li)
- [变更] 修改部分核心代码结构和依赖关系,严格遵循最小依赖的原则,规避模块依赖关系中引入过多的不必要依赖,引起冗余的组件或 Bean 注入问题。
其它更新
- [新增] 增加腾讯备选 Maven 仓库配置,以临时解决本月阿里仓库停更问题
- [优化] 优化 Recluse SMS 短信模块依赖配置,将通用依赖改为仓库下载方式。
- [优化] 修改 MySQL JDBC Driver 依赖 ArtifactId,替换为最新 ID,以规避 Maven 编译出现 WARN 提示
- [修复] 修复前端工程中,Scope 配置接口权限功能抛错导致操作异常问题。
依赖升级
- [升级] transmittable-thread-local 版本升级至 2.14.2
- [升级] fastjson2 版本升级至 2.0.16
- [升级] hutool 版本升级至 5.8.9
- [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.611
v2.7.4.5
重要更新
- [核心组件升级] Spring Boot Admin 版本升级至 2.7.6
- [核心组件升级] Nacos 版本升级至 2.1.2
- [核心组件升级] Camunda 版本升级至 7.18.0,同时更新 Camunda Open API 描述文件
- [核心组件升级] 自主封装 Oracle JDK 版本升级至 8u341, 系统所涉及的所有 Docker 均已修改为使用该版本。该镜像已经上传至 Docker Hub,可以直接使用。
其它更新
- [修复] 修复防刷机制控制范围过窄,缺少对用户标识的区分问题。fix: #I5WF5O (ISSUED by
我问这瓜保熟吗
) - [优化] 优化系统登录成功记录代码,增加代码健壮性。
- [修复] 修复防刷机制控制范围过窄,缺少对用户标识的区分问题。fix: #I5WF5O (ISSUED by
依赖更新
- [升级] springdoc 版本至 1.6.12
- [升级] transmittable-thread-local 版本至 2.14.1
- [升级] tencentcloud-sdk-java 版本至 3.1.609
友情提示
- 本月阿里云 Maven 仓库升级,暂停同步更新,新发布的包均无法从阿里云 Maven 仓库更新。请直接使用中央仓库或增加其它备份 Maven 仓库镜像
v2.7.4.4
- 重要更新
- [新增] 扩展 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 页面加载缓慢问题。
- 依赖更新
- [升级] commons-text 版本至 1.10.0
- [升级] tencentcloud-sdk-java-sms 版本至 3.1.608
- [升级] alipay-sdk-java 版本至 4.34.14.ALL
v2.7.4.3
主要更新
- [新增] 新增 Opaque Token (不透明令牌) 支持,并将其设置为默认 Token 格式,降低 JWT Token 被捕获解析的风险。仍旧保留 JWT Token 格式支持,可通过修改配置参数进行切换。
- [重构] 使用 Spring Authorization Server 标准的 Token 废弃机制,重构同一账号在同类型终端异处登录自动踢出(Kick Out)前一个登录用户功能。
- [修复] 结合 Opaque Token 修复 Kick Out 不生效问题。(注:Kick Out 仅在 Opaque Token 格式下有效。因 JWT Token 自身机制以及 Spring Authorization Server Token 验证实现方式与 Spring Security OAuth 的不同,使用 JWT Token 仅能实现 Token 过期验证,是无法实现 Kick Out 功能 )
- [新增] Monorepo 版前端工程新增 Dante Cloud 授权码登录预览功能
其它更新
- [重构] 重构部分枚举类,新增 Target 枚举,统一所有涉及本地及远程判断的枚举。
- [重构] 由于 Okhttps 大版本升级,包名进行了变更,因此涉及一部分代码修改重构。
- [删除] 删除无用的、自定义的 OAuth2ClientAuthorizationToken 类。
- [删除] 删除 AuthorizationServerConfiguration 中,冗余的 Authorization Server 配置
- [修复] 修复单体版参数配置错误,导致启动抛错问题。
- [优化] 结合 Opaque Token 机制,优化前端工程应用管理功能。
依赖更新
- [升级] mapstruct-processor 版本至 1.5.3.Final
- [升级] bcprov-jdk15to18 版本至 1.72
- [升级] okhttps 版本至 4.0.0
- [升级] dysmsapi20170525 版本至 2.0.22
- [升级] alipay-sdk-java 版本至 4.34.8.ALL
升级指南
本次更新涉及系统核心逻辑变化,升级新版代码涉及核心参数和数据的变更。如果是全新部署,可以跳过以下内容;如果是在系统,可以参考以下内容进行最小化修改。
- 修改 dante-cloud-platform.yaml 配置,增加 opaque 相关配置,具体修改内容参见工程中对应的配置文件。
- 手动修改数据和参数
- 修改数据表 oauth2_registered_client 中 token_settings 字段 JSON 数据,将其中 OAuth2TokenFormat 的值 “self-contained” 修改为 “reference”。
- 修改 数据表 oauth2_application 中 access_token_format 字段的值,将其值从“0”改“1”
- 修改完成之后,需要清理 Redis 缓存,并重新启动服务。
v2.7.4.2
- 重要更新
- [新增] 基于 pnpm 的 monorepo 模式新版前端应用,预览版上线
- 该版本基于 pnpm,采用 monorepo 模式对前端工程进行重构
- 抽取 utils、components、apis、bpmn-designer 等相关代码,形成共享模块。
- 共享模块已进行优化配置,可编译成独立的组件,单独以组件形式进行发布。
- 代码以共享模块的方式进行单独维护开发,降低现有工程代码复杂度,便于后续功能的扩展和代码的复用。
- [重构] 重构现有前端工程 TabView 相关代码和实现逻辑
- 完全基于 Quasar QRouteTab 组件的自身特性对 TabView 进行重构,将 TabView 与 Vue-Router 更好的融合,实现逻辑更清晰也更易维护。
- 新增 Tab 页局部刷新、关闭左侧、关闭右侧以及 Tab 页面保留等 TabView 操作功能
- 重新设计常规 Tab 页面、详情 Tab 页面,开启、关闭、跳转、显示位置等操作逻辑。
- 将 TabView 操作与 Tab 当前各种状态有机结合,规避不合理 Tab 操作出现。
- 重构 TabView Pinia Store 操作代码逻辑,合并相近逻辑,删除重复或无用代码。
- [新增] 基于 pnpm 的 monorepo 模式新版前端应用,预览版上线
- 其它更新
- [修复] 在最新 Vite 和 Vue-tsc 环境下出现
Write operation failed: computed value is readonly
问题。 - [修复] 优化单体版本应用配置,修正第三方登录配置错误,补充单体版多租户配置
- [优化] 优化 Nacos 配置文件,默认关闭多租户配置。
- [修复] 在最新 Vite 和 Vue-tsc 环境下出现
- 依赖更新
- [升级] redisson 版本至 3.17.7
- [升级] fastjson2 版本至 2.0.15
- [升级] dysmsapi20170525 版本至 2.0.21
- [升级] alipay-sdk-java 版本至 4.34.0.ALL
- 额外说明
- 想要尝鲜 pnpm monorepo 版本前端,请检出 dante-cloud-ui 工程中,monorepo 分支代码。
- 构建 monorepo 版本前端,是为扩展更多功能、增加应用级功能做铺垫。
- 微前端架构技术已经走通,未在 monorepo 版本中直接实现,主要考虑到微前端更适合大型前端拆解、多前端项目整合情况。构建一套完善的微前端应用,研发投入大、潜在问题多、使用复杂度高,并不适合本项目目前大多数用户的实际用途。采用一些性价比更高的替代方案,比如说 Nginx 的多应用似乎更可取。因此,目前尝试推出 monorepo 版前端,作为基础或过渡版本。在此版本基础之上,构建"微前端"应用,特别是基于 Micro-App 的微前端会非常容易。会适时并结合用户需求,再考虑是否转换为微前端架构前端应用。
v2.7.4.1
- 重要更新
- [新增] 新增 Spring Authorization Server 同一账号,在同类型终端异处登录自动踢出(Kick Out)前一个登录用户功能。可通过配置参数修改是否开启。该项功能与应用安全合规性检查项:同一终端不允许重复登录互斥(即不能同时开启,同一时间只能开启一项)。
- 其它更新
- [优化] 优化 Nacos 配置文件,删除 Redisson 统一开关配置,默认不启用 Redisson。
- [优化] 改进在线文档部分内容描述不正确问题 。fix: #I5TSEM (ISSUED by 等待是如此漫长)
- [优化] 优化数据自动初始化脚本放置位置,与新版本代码创建数据表需要启动两个服务机制进行统一。
- [修复] 增加 Redisson 密码配置,修复在 Redis 5 版本下设置密码后 Redisson 无法连接 Redis 问题。fix: #I5TS0Y (ISSUED by 等待是如此漫长)
- [修复] 修复前端工程,配置人员归属功能人员选择页面无法点开的问题。
- [修复] 修复前端工程,使用最新版 vue-router 会在控制台抛出
You are running the esm-bundler build of vue-i18n. It is recommended to configure your bundler to explicitly replace feature flag globals with boolean literals to get proper tree-shaking in the final bundle.
问题 - [修复] 修复删除无用 Token 抛出 No EntityManager with actual transaction available for current thread 错误
- 依赖更新
- [升级] minio 版本至 8.4.5
- [升级] hutool 版本至 5.8.8
- [升级] wxjava 版本至 4.4.2.B
- [升级] dysmsapi20170525 版本至 2.0.20
- [升级] tencentcloud-sdk-java 版本至 3.1.600
- [升级] alipay-sdk-java 版本至 4.33.60.ALL
- [升级] aliyun-sdk-oss 版本至 3.15.2
- [升级] snakeyaml 版本至 1.33
- [升级] 前端工程所有依赖包均升级至最新版本
v2.7.4.0
- 重要更新
- [升级] Spring Boot 版本升级至 2.7.4
- [修复] 优化 Spring Authorization Server 客户端模式下,根据 Scope 分配权限逻辑。使用统一逻辑修复客户端模式下,Scope 权限对应接口始终返回“没有权限访问”问题
- 其它更新
- [修复] 修复 OAuth2 Scope 分配权限接口实现逻辑错误问题。
- [修复] 修复前端 OAuth2 Scope 分配权限功能传递参数不足,导致权限无法增加问题。
- [修复] 修复在新版本 Spring Boot 环境下,@EntityListeners 复发获取 ApplicationContext 导致角色权限变更抛空错误
- [修复] 优化前端 Token 过期校验逻辑,修复在使用 Refresh Token 的情况下,不应该再进行 Token 是否过期校验,导致 Refresh Token 无法使用问题。fix: #I5SKFS (ISSUED by 狂练胸肌的李大懒)
- [修复]修复前端工程打卡编辑页面后,调整浏览器大小后,所有 tab 都显示空白问题。fix:#I5SB49 (ISSUED by SimonLiu)
v2.7.3.6
- 重要更新
- [升级] Spring Boot Admin 版本升级至 2.7.5
- [升级] 前端工程 Camunda Bpmn 在线编辑器核心组件大版本升级
- [安全] 强制升级 xnio 版本至 3.8.8.Final,修复安全漏洞 (CVE-2022-0084)
- 其它更新
- [新增] 新增 Spring Authorization Server 历史 Token 清理逻辑
- [修复] 前端工程编译结果与 Nginx 一起打包为 Docker 后,在浏览器刷新页面出现 404 问题。
- [优化] 优化 Token 过期检测逻辑,调整时钟偏移(Clock Skew),与 Spring Security OAuth2 Jose 默认实现逻辑保持一致。fix: #I5RWGA(ISSUED by 狂练胸肌李大懒)
- [优化] 优化前端封装 Axios 代码中阻止重复提交属性名称,将其修改为更容易理解的变量名称。
- [优化] 优化自定义 Spring Authorization Server JPA 模块部分查询操作,启用基于 Jetcache 自定义的 JPA 多级缓存支持,提升数据查询效率
- [优化] 优化部分代码日志输出级别,提升控制台日志输出内容的可聚焦性
- 依赖更新
- log4j2 版本升级至 2.19.0
- minio 版本升级 8.4.4
- fastjson2 版本升级至 2.0.14
- hutool 版本升级至 5.8.7
- mybatis 版本升级至 3.5.11
- tencentcloud-sdk-java-sms 版本升级至 3.1.597
v2.7.3.5
- 重要更新
- Spring Boot Alibaba 版本升级至 2021.0.4.0
- 自主封装 Oracle JDK 版本升级至 8u333, 系统所涉及的所有 Docker 均已修改为使用该版本。该镜像已经上传至 Docker Hub,可以直接使用。
- 自主封装 Sentinel Dashboard 基于 Sentinel 1.8.5 进行了全面升级。
- Sentinel Dashboard 基础 Spring Boot 版本已升级至 2.5.14 (Spring Boot 版本升级至 2.6.X 或 2.7.X,会出现无法登陆的情况,所以暂时只能升级至 2.5. X)
- 使用 Dante Engine 统一代码,优化自定义的基于 InfluxDB 的 Sentinel Dashboard 数据持久化存储代码及 Dockerfile 参数,可通过修改 docker-compose 中的参数动态开启或关闭持久化功能
- 使用 Dante Engine 统一代码,优化自定义的基于 Nacos 的 Sentinel Dashboard 流控规则存储及 Dockerfile 参数,可通过修改 docker-compose 中的参数动态开启或关闭保存流控规则至 Nacos 功能。
- 该镜像已经上传至 Docker Hub,通过命令 docker push herodotus/sentinel-dashboard:latest(或者 1.8.5) 可以直接获取使用。
- 其它更新
- [修复] 用户文档列表中无结果时也要更新列表数据,防止不在第一页时发两遍请求。(感谢 狂练胸肌李大懒提交的 PR)
- [修复] 强制升级部分组件依赖的 snakeyaml 版本, 修复低版本 snakeyaml 携带的 CVE-2022-25857,CVE-2022-38752,CVE-2022-38749 安全漏洞问题。
- [优化] 增加是否使用自动获取 Refresh Token 判断,在使用 Refresh Token 模式下,禁用关闭浏览器自动最退出系统功能。
- [升级] 前端工程 Vite 版本升级至 3.1.1
- 依赖更新
- log4j 版本升级至 2.18.0
- wxjava 版本升级至 4.4.1.B
- aliyun-java-sdk-core 版本升级至 4.6.2
- tencentcloud-sdk-java-sms 版本升级至 3.1.593
- alipay-sdk-java 版本升级至 4.33.42.ALL
v2.7.3.4
- 重要更新
- [升级] Spring Cloud 版本升级至 2021.0.4
- [升级] Skywalking Agent 版本升级至 8.12.0
- [新增] 基于 JPA 的多租户系统支持,支持 Database 和 Schema 两种模式,可通过配置进行开启和关闭。
- [重构] 基于 JetCache 的自定义 Hibernate 二级缓存,支持多租户模式下数据的分布式多级缓存。
- [重构] 重构前端详情页面参数的传递方式,解决 vue-router 自 4.1.4 版本不再建议使用 push param 传递参数而导致的新增、编辑功能不可用问题。
- 其它更新
- [优化] 优化部分代码日志输出内容及日志输出级别
- [优化] 优化基于 JetCache 的 Hibernate 二级缓存代码
- [升级] 升级 antisamy XSS 防护配置文件
- [修复] 临时修复 BPMN.js 在线工作流编辑器,在第一次加载页面时抛错无法显示 Canvas 和 Property Panel 问题。
- [修复] 第三方社交登录 logo 在生产环境下无法正常显示问题。
- [优化] 优化服务配置,将第三方社交登录相关配置移至 Nacos 方便修改。
- 依赖更新
- antisamy 版本升级至 1.7.1
- hutool 版本升级至 5.8.6
- tencentcloud-sdk-java-sms 版本升级至 3.1.590
- fastjson2 版本升级至 2.0.13
- alipay-sdk-java 版本升级至 4.33.39.ALL
v2.7.3.3
- 主要更新
- [新增] 前端根据后端配置的第三方社交登录信息,在前端登录页面自动生成第三方社交登录按钮。新增常见第三方社交登录 logo 图标,根据后端配置自动显示。
- [新增] 新增 JustAuth 的第三方社交登录前端 Callback 处理逻辑,让第三方社交登录逻辑更合理清晰
- 其它更新
- [修复] 修改社交登录示例配置格式,解决错误配置格式导致第三方社交登录核心配置信息无法注入问题
- [修复] 社交登录处理器 Bean 名称与 微信小程序登录处理器 Bean 名称混淆问题。
- [优化] 优化外部登录接入模块 (Access 模块) 部分 Exception 代码,将其融入平台整体错误体系。
- [优化] 去除 dante-engine 中无用的依赖配置
- 依赖更新
- tencentcloud-sdk-java 版本升级至 3.1.587
- 友情提示
- 目前前端工程支持第三方社交登录,必须改为 History 模式,暂不支持 Hash 模式。
- 因很多常用第三方登录,需要以企业信息进行注册。所以第三方登录并未覆盖所有情况以及参数测试,需根据实际使用情况自行增减。也欢迎提交 PR。
v2.7.3.2
- 主要更新
- [修复] 强制升级 postgresql jdbc driver 依赖包版本,解决 spring boot 2.7.3 默认依赖低版本 postgresql jdbc driver 携带的 SQL 注入漏洞(CVE-2022-31197)问题。
- [修复] 修复前端工程 keep-alive 不生效问题。fix:#I5ODHH (ISSUE By jokeway)
- [修复] 修复前端工程因升级 vue-router 最新版本,导致修改和编辑功能不可用问题。
- [修复] 修复前端工程因升级 Bpmn 和 Camunda 相关依赖包导致工作流在线编辑不可用问题。
- [重构] 将 Influxdb 相关模块调整至新增的 NoSQL 模块组,删除原有 temporal 相关模块。
- [新增] 新增 CouchDB 数据库集成模块
- [删除] 删除已有 Cmdb 相关模块和代码,以及 SQL 脚本配置,减少用户对该模块的误解。
- 依赖更新
- redisson 版本升级至 3.17.6
- springdoc 版本升级至 1.6.11
- alipay-sdk-java 版本升级至 4.33.26.ALL
- 友情提示
- 最新版本 vue-router、Bpmn 和 Camunda 相关组件存在破坏性升级,会导致前端工程已有功能不可用,因此不要随意升级依赖包版本,使用工程指定版本。
v2.7.3.1
- 主要更新
- [新增] 前端工程新增用户名非法字符检查,仅支持数字、字符、下划线和减号
- [新增] 前端工程新增日志审计数据导出为 Excel 功能
- [修复] 前端 Tabview 组件,当只剩一个 Tab 时,不应允许再关闭问题。(感谢 jokeway 提交的 PR)
- [修复] 前端解决当打开的 Tab 超出当前显示区域时,新开的 Tab 无法定位并显示的问题。(感谢 jokeway 提交的 PR)
- [修复] 优化应用安全合规性检查项:统一终端不允许重复登录相关代码逻辑。解决原有逻辑删除已有认证信息,导致 refresh token 失效问题。fix:#I5NYX2 ( ISSUE By 狂练胸肌李大懒)
- [修复] 修复系统错误反馈信息配置错误。fix:#I5N1VA ( ISSUE By 未来)
- [优化] 优化基于 JPA 的自定义 Spring Authorization Server AuthorizationService 数据访问代码。
- [优化] 优化 Spring Authorization Server 错误信息描述和错误码,可以更加准确的区分 Access Token 和 Refresh Token 过期的状态。
- 依赖更新
- jetcache 版本升级至 2.7.0 正式版
- fastjson2 版本升级至 2.0.12
- weixin-java-sdk 版本升级 4.4.0
- alipay-sdk-java 版本升级 4.33.12.ALL
- com.baidu.aip 版本升级至 4.16.11
v2.7.3.0
- 主要更新
- [升级] Spring Boot 版本升级至 2.7.3
- [新增] 新增 OAuth2 Token 过期后,用户可无感知自动获取新 Token 机制。(感谢
狂练胸肌李大懒
提交的 PR)
- 其它更新
- [修复] 应用安全合规代码,在容器环境下,受监控 Agent 影响,产生 Consider injecting the bean as one of its interfaces orforcing the use of CGLib-based proxiesby setting proxyTargetClass=true on @EnableAsync and/or @EnableCaching 错误问题。
- [修复] 修复自定义 Spring Authorization Server 认证模式,因 Token 必要参数缺失,导致通过 Refresh Token 获取新 Access Token 时抛出空指针错误。fix: #I5MF3B
- 依赖更新
- protobuf-java 版本升级至 3.21.5
- springdoc 版本升级至 1.6.10
- tencentcloud-sdk-java-sms 版本升级至 3.1.572
v2.7.2.6
- 主要更新
- [新增] 增加手机短信验证码登录沙盒验证测试模式。在此模式下,无须开通短信通道,就可以进行手机短信验证码注册和登录验证测试。
- 其它更新
- [修复] 强制升级 tea-xml 和 dom4j 依赖包版本,去除低版本 dom4j 携带的安全漏洞问题。
- [修复] 修复 Spring Authorization Server 自定义 Social Credentials 认证模式下,认证类型校验错误,导致手机验证码登录失败问题。
- [修复] 修复自定义 Social Credentials 社会化登录参数解析器配置遗漏,导致无法正确解析参数错误。
- [修复] 在远程访问获取用户数据模式下,Social Credentials 社会化登录第三方用户交换处理器未正确注入问题。
- [修复] 自定义 Social Credentials 认证模式,前后端数据传输的加密数据解密失败问题。
- [修复] OpenFeign 远程调用接口,传递实体对象数据丢失问题。
- [优化] 优化自定义 Social Credentials 认证模式手机验证码登录等参数合规性校验逻辑。
- [优化] 优化 Nacos 输出至日志中心的服务日志数据级别及包含内容配置
- [优化] 优化前端登录页面,开放手机验证码登录功能。
- [优化] 优化前端工程生产模式打包脚本配置
v2.7.2.5
- 重要更新
- Nacos 版本升级至 2.1.1。已提供最新版本 Nacos 数据库脚本。
- 其它更新
- [修复] 前端分页组件,选择"全部"选项,导致后端接口校验返回参数错误问题。fix #I5M1G6
- [修复] 前端登录认证过期后,浏览器存储无效 Token,再次启动应用过期提示框会被 loading 效果覆盖问题。fix #I5LKYI
- [修复] 在 MySQL 数据库环境下,如果编码为非 utf-8 的情况下,导致 sys_social_user 表无法创建的问题。fix #I5LWGK
- [修复] 以 jar 包形式运行单体版状态下,找不到依赖问题。
- [优化] Dockerfile 中增加默认编码设置,防止在未设置语言环境的操作系统中,出现乱码导致请求内容包含特殊字符被 XSS 拦截而产生反序列化问题。
- 依赖更新
- dysmsapi20170525 版本升级至 2.0.18
- tencentcloud-sdk-java-sms 版本升级至 3.1.568
- alipay-sdk-java 版本升级至 4.33.1.ALL
v2.7.2.4
- 主要更新
- Spring Boot Admin 版本升级至 2.7.4
- JetCache 版本升级至 2.7.0.RC3,以支持服务多实例环境下,服务本地缓存的同步。
- 根据 JetCache 2.7.0 版本的变化,调整 Nacos 相关配置。
- 优化重构所有 Stamp 相关代码,将所有标记为过时的 @CreateCache 相关代码,全部修改为最新的代码化配置形式。
- 依赖更新
- WxJava 版本升级至 4.3.9.B
- Aliyun-java-sdk-core 版本升级至 4.6.1
- Dysmsapi20170525 版本升级至 2.0.17
- Tencentcloud-sdk-java 版本升级至 3.1.565
- Alipay-sdk-java 版本升级至 4.31.84.ALL
v2.7.2.3
重磅!Dante Cloud 所有核心代码全部开源。
主要更新
- 接口权限鉴权:全面整合
@PreAuthorize
注解权限与URL
权限,通过后端动态配置,无须在代码中配置Spring Security
权限注解以及权限方法,即可实现接口鉴权以及权限的动态修改。采用分布式鉴权方案,规避 Gateway 统一鉴权的压力以及重复鉴权问题 - 动态权限数据分发:采用分布式服务独立鉴权方案,
Spring Security
@PreAuthorize
的权限注解、权限方法以及URL
权限,通过后端动态配置后,实时动态分发至对应服务。 - User 数据策略访问:
OAuth2
UserDetails
核心数据支持直连数据库获取和Feign
远程调用两种模式。OAuth2
直连数据库模式性能更优,Feign
访问远程调用可扩展性更强。可通过配置动态修改采用策略方式。 - 手机短信验证码注册认证:采用自定义
OAuth2
授权模式,使用统一Token
接口,实现手机验证码登录认证,与平台为统一体系,统一返回OAuth2
Token,支持服务接口鉴权 - 第三方系统社交注册认证:集成
JustAuth
,采用自定义OAuth2
授权模式,使用统一Token
接口,实现基于JustAuth
实现第三方系统社交登录认证,与平台为统一体系,统一返回OAuth2
Token,支持服务接口鉴权。所有JustAuth
支持的第三方系统均支持。 - 微信小程序注册认证:采用自定义
OAuth2
授权模式,使用统一Token
接口,实现支持微信小程序登录认证,与平台为统一体系,统一返回OAuth2
Token,支持服务接口鉴权。 - 其它方式注册认证:采用策略模式对外部系登录认证和用户注册进行接入支持,采用
OAuth2
默认认证接口。目前未集成的外部系统,可参考标准,适当增减参数,即可支持接入。 - 多通道 SMS 集成:集成阿里,百度,中国移动,华为,京东,极光,网易,七牛,腾讯,又拍,云片等平台短信发送通道。可通过配置动态选择具体使用通道。支持多模版定义以及模版参数顺序控制
- 微信小程序订阅消息:支持微信小程序订阅消息发送。提供订阅消息模版工厂,可根据自身业务需求,编写少量代码既可以拓展支持新订阅消息模版。
- 接口权限鉴权:全面整合
依赖更新:
- hutool 版本升级至 5.8.5
- docker-maven-plugin 版本升级至 0.40.2
- tencentcloud-sdk-java-sms 版本升级至 3.1.561
v2.7.2.2
[1]、特别说明
Dante Cloud
(但丁,原 Eurynome Cloud) 正式加入 Dromara
开源社区。Dante Cloud
将继续秉承“简洁、高效、包容、务实”的理念,不断地深耕细作、去粗取精,用心打造一款适应未来信息化建设需求的精致产品。同时,与 Dromara 开源社区以及社区中所有的优秀人才一起互相扶持、并肩前行,创造更多、更好、更精的产品以回馈社会,促进软件开源的发展。
谢谢大家对 Eurynome Cloud 支持与厚爱,希望大家继续给与 Dante Cloud 以及 Dromara 开源社区关注与支持
[2]、为什么更名为 Dante Cloud
原项目名称 Eurynome Cloud,很多朋友都反映名字太长、读起来拗口、不容易记等问题。因此在加入 Dromara 开源社区之际,将名字进行了变更。
Dante,即但丁·阿利基耶里(公元 1265 年-公元 1321 年),13 世纪末意大利诗人,现代意大利语的奠基者,欧洲文艺复兴时代的开拓人物之一,以长诗《神曲》(原名《喜剧》)而闻名,后来一位作家叫薄伽丘将其命名为神圣的喜剧。
他被认为是中古时期意大利文艺复兴中最伟大的诗人,也是西方最杰出的诗人之一,最伟大的作家之一。恩格斯评价说:“封建的中世纪的终结和现代资本主义纪元的开端,是以一位大人物为标志的,这位人物就是意大利人但丁,他是中世纪的最后一位诗人,同时又是新时代的最初一位诗人”
更名为 Dante Cloud,寓意本项目会像恩格斯对但丁的评价一样,在行业变革的时期,可以成为一款承上启下,助力企业信息化建设变革的产品。
[3]、本次更新内容
由于项目名称的变更,为了降低和规避使用者产生不必要的误解,因此对项目代码、模块、Nacos 配置、初始数据进行了同步修改。
- 主要更新
- 项目地址变更为:https://gitee.com/dromara/dante-cloud
- 主工程所有模块名称,使用最新名称进行了修改。
- 主工程所有代码所在的包,使用最新名称进行了修改。
- Nacos 配置文件名称及相关配置项,使用最新名称修改。
- 数据库初始化脚本默认数据,涉及项目名称的内容进行了修改。
- 其它更新
- 修复 MySQL 数据初始化脚本错误
- OkHttps 版本升级至 3.5.3
- Tencentcloud-sdk-java-sms 版本升级至 3.1.559
友情提示
- 因代码模块名和代码包名存在变更,直接更新代码会在 IDE 工具中产生冗余结构,可以直接删除,建议全新检出工程以彻底规避该问题。
- 因 Nacos 配置文件名称存在变更,需要重新导入 Nacos 配置。
v2.7.2.1
主要更新
- [修复] 用户账号登录超出错误次数被锁定以后,自动恢复账号状态代码使用错误参数导致恢复出错问题。fix: #I5J8QS
- [修复] 系统页面长时间停留在登录页面,自定义 Session 过期,后端错误提示不友好问题。fix: #I5J9S8
- [修复] 修改密码传递至后端加密数据无法正确解密,出现缓存反序列化错误问题。fix: #I5JEF3
- [修复] 使用全名替换 dependencies dependencyManagement 配置中使用变量配置的 groupId,修复外部新建服务工程无法准确获取主工程生成的依赖包问题。
- [删除] 删除 JPush 相关的信息推送和短信发送相关组件模块
- [优化] 优化权限数据同步分发数据存储逻辑,将本地和远程缓存同时存储,修改为只在本地缓存存储。
依赖更新
- JetCache 版本升级至 2.6.7
- WxJava 版本升级至 4.3.8.B
- Tencentcloud-sdk-java-sms 版本升级至 3.1.558
v2.7.2.0
主要更新
- Spring Boot 版本升级至 2.7.2
- Spring Boot Admin 版本升级至 2.7.3
- Vite 版本升级至 3.0.2
- 使用 JetCache 重构已有自定义 JPA 多级二级缓存代码,将系统中所有多级缓存统一为使用 JetCache。也为后续升级 JetCache 2.7.X,实现服务本地缓存自动同步更新功能做铺垫。
- 新增极简 CMDB 配置管理服务及前端管理功能,用于管理应用系统、服务器、数据库等基础配置信息。
其它更新
- [修复] 修复用户密码过期状态判断条件使用错误,fix #I5I7ZZ
- [修复] 修复后端配置前端菜单角色信息,前端工程读取错误,导致菜单无法过滤问题。
- [新增] 优化数据库初始化脚本,增加菜单默认初始化数据以及测试用切换账号数据。
- [新增] 增加后端菜单数据节点排序功能,可通过 Ranking 字段进行配置。
- [优化] 优化服务间权限数据同步代码逻辑,删除不合理代码、简化同步实现逻辑。
- [删除] 删除 cache-sdk-layer 和 cache-layer-spring-boot-starter 两个模块
依赖更新
- redisson 版本升级至 3.17.5
- tencentcloud-sdk-java-sms 版本升级至 3.1.557
- alipay-sdk-java 版本升级至 4.31.72.ALL
- com.baidu.aip 版本升级至 4.16.10
v2.7.1.3
主要更新
- [新增] 增加菜单管理功能,支持后端数据动态转换为前端菜单,根据用户角色动态切换菜单
- [新增] 增加基于 Spring Authorization Server 的 Token 信息扩展,客户端在获取 Token 时就可以同时获取用户的相关信息,方便客户端区分用户身份信息,减少重复请求。使用前后端数据加密,进一步保护敏感信息。
- [升级] 前端工程 Vite 版本升级至 3.0.1
其它更新
- [优化] 优化系统用户登录合规性记录代码,去除重复性逻辑及部分硬代码
- [优化] 优化 ServiceContext 代码逻辑,增加统一的 HTTP 地址 Protocol 头处理机制,实现代码中 HTTP 或 HTTPS 协议头的统一配置和修改
- [修复] 修复 Swagger 认证功能不生效无法在 Swagger 中进行测试问题,以及多环境下 Swagger 是否开启控制失效问题。
- [修复] 修复单体版 Swagger 多是否开启控制失效问题, 以及 Swagger 界面中自动生成的接口地址错误问题。
- [升级] 升级 Antisamy XSS 拦截分析配置文件版本
依赖更新
- antisamy 版本升级至 1.7.0
- minio 版本升级至 8.4.3
- jetcache 版本升级 2.6.6
- dysmsapi20170525 版本升级至 2.0.16
- tencentcloud-sdk-java 版本升级 3.1.552
- alipay-sdk-java 版本升级至 4.31.64.ALL
v2.7.1.2
主要更新:
- Spring Boot Admin 版本升级至 2.7.2
- 增加应用安全合规检查相关支持功能
- [新增] 用户账号过期时间和用户密码过期时间。优化系统用户是否可用、是否锁定以及账号过期时间和密码过期的状态控制
- [新增] 在同一类型终端下,允许同一账号重复登录限制。可通过配置修改默认允许重复登录数值,默认值为 1.
- [新增] 用户登录错误次数限制,超过最大错误次数系统将自动锁定该用户账号(前提是系统中已存在的用户)。提供自动解锁功能和管理员解锁支持。
- [新增] 新增用户登入、登出系统记录功能。包含,登录账号、时间、IP、使用的终端类型、浏览器类型、操作系统等相关信息。
- 增加基于 Minio 对象存储的大文件分片上传功能。
其它更新
- [优化] 进一步优化 Spring Authorization Server 认证过程错误体系与 Spring Security 登录错误体系的融合。解决 Spring Authorization Server 认证错误信息无法触发 Spring Security 自身特性问题。
- [优化] 优化 Spring Authorization Server 错误提示信息,让登录错误反馈信息更加友好和准确。
- [优化] 自定义认证模式代码,进行详细的用户信息校验,用户登录相关错误抛出机制和逻辑。在登录出错的情况下,抛出合理的 OAuth2 认证错误信息,便于区分错误类型以及进行应用安全合规性校验。
- [优化] 优化基于 JPA 的自定义 Spring Authorization Server 数据访问相关代码,优化 OAuth2AuthorizationService 删除逻辑处理,增加过期 Token 清理逻辑。
- [优化] 优化基于 JPA 的自定义 Spring Authorization Server 数据访问相关代码,补充部分常用字段索引的自动创建配置,提升数据查询效率。
- [优化] 优化涉及 @RequestBody 注解接口的前后端数据加密加密传输的解密逻辑,除了维持原有整个 JSON 加解密外,增加 JSON 属性遍历解密,以提升前后端数据加解密的灵活性。
- [优化] 优化部分 starter 自动配置文件,改用 Spring Boot 最新的 org.springframework.boot.autoconfigure.AutoConfiguration.imports 配置文件
- [新增] 新增 Spring Authorization Server 主要接口,是真正的退出接口,取代原有使用 Spring Authorization Server 默认提供的撤销 Token 接口。
- [新增] 调用开放型接口前(无须鉴权的接口),新增对客户端的有效性的校验,以增强接口调用的安全性
- [新增] 增加登录界面自定义 Session 检测,Session 未创建成功或后端无法正常连接,则禁止登录。
- [新增] 因代码中多处使用基于多级缓存的计数逻辑,由此新增基于缓存的计数逻辑抽象类,方便此类功能代码的编写。
- [新增] 前端设计接口或权限的功能,增加权限接口的排序查询支持。
- [新增] 前端修改用户密码功能,密码复杂度校验。
- [新增] 增加 Redis 事件监听配置,实现 Redis 过期数据的监听和逻辑处理。
- [新增] 增加 ZonedDateTime 时间类型转换工具类,方便 Minio API 代码的使用。
- [新增] 增加 Minio 对象存储容器化部署 Docker-compose 脚本
- [修复] 涉及排序的接口,默认参数值设置错误问题。
- [修复] 修复由于默认缓存时间设置过短,导致前后端数据加解密失效问题。修改为默认与客户端配置 accessToken 失效相同。
依赖更新:
- WxJava 版本升级至 4.3.7.B
- Dysmsapi20170525 版本升级至 2.0.15
- Tencentcloud-sdk-java-sms 版本升级至 3.1.546
- Alipay-sdk-java 版本升级至 4.31.48.ALL
- Jpush-client 版本升级至 3.6.6
- Jiguang-common 版本升级至 1.2.2
v2.7.1.1
- 新版前端发布
基于 Vue3、Vite2、Pinia、Quasar2、Typescript、Hooks 等最新技术栈,全新构建前端工程正式发布
新版前端特点:
- 未使用任何流行开源模版,使用全新技术栈,完全纯"手写"全新前端工程。
- 借鉴参考流行开源版本的使用和设计,新版前端界面风格和操作习惯尽量与当前流行方式统一。
- 充份使用 Typescript 语言特性,解决大量类型校验问题,尽可能规避 "any" 式的 Typescript 编程语言使用方式。
- 充份使用 Composition Api 和 Hooks 等 Vue3 框架新版特性进行代码编写。
- 充份利用 Component、Hooks 以及 Typescript 面向对象等特性,抽取通用组件和代码,尽可能降低工程重复代码。
- 对较多 Quasar 基础组件和应用功能组件进行封装,以方便代码的统一修改维护和开发使用。
- 对生产模式下,对基于 Vite2 的工程打包进行深度性能优化。
- 提供以 docker-compose 方式,对工程生产代码进行容器化打包和部署。
其它更新
- [优化] 基于 commons-pool2, 将 Minio 对象存储的 MinioClient 代码进行池化,以提升与 Minio 服务端的交互效率。
- [优化] 补充和优化 MinioProperties 对象池配置参数。多数配置默认参数,与 commons-pool2 包提供的默认值统一。
- [优化] 重新梳理对象存储模块错误错误 Exception,将其融入平台整体错误体系,返回给前端更友好错误信息提示。
- [重构] 重构 Minio Oss 操作基础 Service 代码,丰富 Minio 操作 Service 代码,涵盖大部分 Minio SDK 支持的 API。
- [修复] 修复 Oss 模块组件代码包中,Minio 模块条件注解不生效,导致 Minio 包无法通过注解开启问题。
依赖更新
- Hutool 版本升级至 5.8.4
- Mybatis-plus-generator 版本升级至 3.53
- Tencentcloud-sdk-java-sms 版本升级至 3.1.540
- Com.baidu.aip 版本升级至 4.16.9
- Aliyun-sdk-oss 版本升级至 3.15.1
v2.7.1.0
- 重要更新
- Spring Boot 版本升级至 2.7.1
- Spring Boot Admin 版本升级至 2.7.1
- Skywalking Java Agent 版本升级至 8.11.0
- 其它更新
- [新增] 增加通过范围代码查询应用范围接口
- [新增] 增加自定义打包的 JDK 镜像 herodotus/oracle-jdk:8u331,彻底根除服务在 Docker 环境下由于使用 OpenJDK 版本不同的差异导致无法读取字体出错,以及打包成镜像过程中下载字体慢的问题。该镜像已经上传至 Docker Hub,可以直接下载使用。
- [新增] 对几款常用的 OpenJDK 基础镜像进行了验证,在 Dockerfile 中,新增了适合使用的两个版本 JDK 基础镜像配置,放开注释即可选择使用。
- [优化] 优化涉及字体读取的行为验证码和图形验证码代码,增强在不同系统和不同 Java 版本下的兼容性。
- [修复] 调整 Skywalking Docker Compose 配置参数,解决 8.7.0-es7 以后版本 Skywalking Docker 无法正常启动问题。
- [删除] 删除项目核心 dependencies 中,与新版本 spring-boot-dependencies 中重复的依赖及版本 pom 配置,尽量使用 spring-boot-dependencies 对项目大部分依赖版本进行管控,减少依赖的重复配置以及版本不兼容问题。
- 依赖更新
- WxJava 版本升级至 4.3.6.B
- mapstruct-processor 版本升级至 1.5.2.Final
- mybatis-plus-boot-starter 版本升级至 3.5.2
- tencentcloud-sdk-java 版本升级至 3.1.537
- alipay-sdk-java 版本升级至 4.31.28.ALL
- jpush-client 版本升级至 3.6.3
v2.7.0.60
- 重要更新
- Spring Authorization Server 版本升级至 0.3.1
- 系统使用 Java 版本降级兼容 Java 8,经验证目前本系统在 Java 8、11、17 环境下均可以正常稳定运行。
- 其它更新
- [修复] 修复人员归属管理功能中,删除已配置人员归属会出现 Jackson 反序列化问题。
- [优化] 优化单位树和部门树,树形数据组织代码,对不同类型的根节点数据,统一处理为系统定义标准根节点,便于前端组件使用和封装。
- [优化] 优化社交登录接口相关代码,同时增加 @Inner 注解,解决该接口内部调用跳过权限验证问题。
- [优化] 优化自定义 OAuth2 Security 权限元数据管理接口相关代码
- [重构] 重构权限表达式枚举类代码,与系统已有枚举常量体系统一。调整该类所在包,便于前端将其常量使用。
- [删除] Spring Security 5.7.0 版本以前,Spring Security WebAuthenticationDetails 类只支持 HttpServletRequest 做为参数,这导致无法在 Spring Security 自身的登录页面增加验证码等额外信息。因此,提取了 WebAuthenticationDetails 代码进行扩展,以支持登录验证码功能。随着 Spring Security 的版本升级至 5.7.1,该问题已经被修复,因此删除原有自行扩展代码。
- 依赖更新
- OkHttp 版本升级至 4.10.0
v2.7.0.50
- 重要更新
- Spring Boot Admin 版本升级至 2.7.0
- 主要更新
- [新增] 新增读取全部角色和读取全部 Scope 接口,删除已有基于权限类别读取权限接口
- [新增] 自定义 Validation 注解 EnumeratedValue,支持对指定枚举的 name 或 ordinal 值进行校验,提升接口的健壮性。
- [新增] Spring Data JPA 分页查询数据排序支持。通过接口动态传递额外参数,实现分页数据的排序。
- [修正] 修复幂等和防刷拦截器读取配置不正确问题。优先读取注解配置参数,如注解为设置参数值,则默认使用统一配置参数。
- [优化] 优化 Security 工具类,使用 Spring Security 最新的获取 PasswordEncoder 工厂类重构密码创建方法和密码校验方法。
- [优化] 优化幂等和防刷注解和配置的默认参数值,设置更合理的参数,解决幂等和防刷过于敏感问题。
- 依赖更新
- docker-maven-plugin 版本升级至 0.40.1
- maven-embedder 版本升级至 3.8.6
- maven-compat 版本升级至 3.8.6
- redisson 版本升级至 3.17.4
- minio 版本升级至 8.4.2
- hutool 版本升级至 5.8.3
- weixin-java-sdk 版本升级至 4.3.5.B
- tencentcloud-sdk-java 版本升级至 3.1.530
- qiniu-java-sdk 版本升级至 7.11.0
v2.7.0.40
- 主要更新:
- [修复] 修改幂等防护注解默认配置,解决行为验证码验证过程中,频繁出现幂等错误提示问题。
- [修复] 修正因统一 Jackson ObjectMapper 配置,产生时间类型反序列化不正确,导致 Spring Authorization Server 认证相关操作抛错问题。
- [优化] 优化 Protect 包内相关 Exception 及配置,将其融入到系统的错误体系中,让返回错误信息更加直观也更加人性化。
- 依赖更新
- Docker-maven-plugin 版本升级至 0.40.0
- Mapstruct-processor 版本升级至 1.5.1.Final
- WxJava 版本升级至 4.3.5.B
- Mybatis-plus-boot-starter 版本升级至 3.5.2
- Tencentcloud-sdk-java 版本升级至 3.1.526
- Alipay-sdk-java 版本升级至 4.31.7.ALL
v2.7.0.30
- 主要更新
- [新增] 统一 OkHttp 、HttpClient 自定义配置,实现 OkHttp 、HttpClient 与 RestTemplate 、Openfeign 整合。统一使用 Feign 配置参数,对 OkHttp 、HttpClient 进行参数设定。可通过配置参数,策略化设置使用 OkHttp 还是 HttpClient 作为 RestTemplate 、Openfeign 的基础 HttpClient。
- [新增] 增加 OkHttp 、HttpClient 平滑退出机制,服务退出前自动销毁已经创建的 Client。将 OkHttp 错误响应与已有错误体系整合,使用统一响应结构返回数据。
- [新增] 重新定义 Feign 配置,实现 Feign 调用日志输出。统一 Feign 错误解码器,并与已有错误体系整合。
- [新增] 重构 Feign 与 Sentinel 整合代码,补充 Feign 自动降级处理。增加统一的 fallback 处理机制,无须再进行 FeignClient Fallback 配置。
- [新增] 增加 @Inner 注解,实现 Feign 内部接口调用无须进行权限验证,同时 Gateway 以外调用仍需权限验证的机制。无须在 Feign 接口中传递额外参数,注意:该注解只能在 @FeignClient 定义类中使用。
- [修复] 调整 WebMvc 配置,解决原有配置方式下自定义 interceptor 不生效,导致防刷、前后端数据传输加解密不工作问题。
- [修复] Dockerfile 和 Docker Compose 配置文件错误。升级依赖的 JDK 版本,去除原有字体下载配置。
- [优化] 调整 JacksonConfiguration 代码所在的包,让代码归类放置更合理。解决自定义 JacksonConfiguraiton 注入顺序不当而不生效问题。
- [优化] 用更优的办法,解决在 JDK 17 环境下,因 okhttp 和 okio 版本不匹配,而导致的运行错误问题。
- [优化] 修改 Nacos 配置,去除上一版本为临时解决 JDK 17 下 Okhttp 兼容问题增加的配置。
- [优化] 使用 Spring Boot 2.7.0 新的自动配置注册文件,替换 facility-spring-boot-starter、web-spring-boot-starter 等模块 spring.factories 自动配置文件
- [文档] 补充部分组件简要说明 Readme,帮助快速了解组件用途。
- 依赖升级
- Redisson 版本升级至 3.17.3
- SpringDoc 版本升级至 1.6.9
- Hutool 版本升级 5.8.2
- Qiniu-java-sdk 版本升级至 7.10.4
- Alipay-sdk-java 版本升级至 4.27.1.ALL
v2.7.0.20
- 重要更新
- Dante Cloud 版本使用 JDK 从 8 升级至 17 (注意:现有版本不在兼容 JDK 8)
- 主要更新
- Spring Cloud 版本升级至 2021.0.3
- Spring Authorization Server 版本升级至 0.3.0
- 其它更新
- 根据 Spring Authorization Server 0.3.0 代码的变化,修改和调整现有系统代码
- 为支持 JDK 17,同时解决老旧依赖包安全漏洞问题,临时删除现有 baidu 短信模块
- 升级 Kryo 版本至 5.3.0,增加自定义拓展代码,解决 Kryo 现有版本与 JDK 17 不兼容问题而导致的 Jetcache 无法使用问题。
- 升级 Xnio 版本,解决 Undertow 在 JDK 17 环境下运行,抛出
Could not initialize class org.xnio.channels.Channels
错误,导致服务无法运行问题。 - 修复 docker-compose 配置错误。
- 修复现有工程中残留的 FastJson 使用代码。
- 依赖更新
- JetCache 版本升级至 2.6.5
- Tencentcloud-sdk-java 版本升级至 3.1.516
- 额外说明
- 因 Spring Authorization Server 0.3.0 默认 JDK 已升级至 11,在 JDK 8 环境下编译出错,已无法兼容 JDK 8,所以考虑升级系统使用 JDK 版本。
- 2022 年 11 月,Spring Boot 3 将会发布,最低版本要求 JDK 17。因此,直接将 JDK 版本升级至 17,为升级至 Spring Boot 3 提前做铺垫准备。
v2.7.0.10
- 主要更新
- Fastjson 版本升级至 1.2.83。消除 Fastjson 反序列化任意代码执行漏洞。
- 使用 Jackson 全面替换工程中涉及的 Fastjson 代码。保留工程 Fastjson 依赖,用于统一控制其它第三方依赖包中依赖的 Fastjson 版本。
- 合并原有 assistant-sdk-json 包至 assistant-core。新增 Gson 通用工具类。
- 重构缓存相关模块,将 redis 和 caffeine 模块独立出来。使用标准化方式重新配置 redis,解决早期在 jar 包模式下,自定义 Redis 配置不生效问题
- 使用 Spring Boot 2.7.0 新的自动配置注册文件,调整部分 starter 自动注入配置文件
- 增加基于 Redis 的 Spring Cloud Session 共享基础配置。同时支持 Servlet 和 Webflux
- 去除重复定义的 JPA 实体自定义 KEY Generator 名称
- 其它更新
- Redisson 版本升级 3.17.2
- Logstash Logback Encoder 版本升级至 7.2
- WxJava 版本升级至 4.3.4.B
- MyBatis 版本升级至 3.5.10
- Tencentcloud-sdk-java 版本升级 3.1.514
- Qiniu-java-sdk 版本升级至 7.10.3
- Alipay-sdk-java 版本升级至 4.23.26.ALL
- com.baidu.aip 版本升级至 4.16.8
v2.7.0.0
- 主要更新
- Spring Boot 版本升级至 2.7.0
- 其它更新
- 修正新版 Spring Boot 下 applicationContext 获取 Bean RequestMappingHandlerMapping 出错问题。
- 修正权限数据通过消息队列传递, Jackson 反序列化出错问题。
- 修正新版 Spring Boot 下,OkHttp 与已有 Spring Cloud 版本不兼容,导致服务无法启动问题。
- 将 RestTemplate 底层客户端组件,临时由 OkHttp 改为 HttpClient,以规避 Okhttp 与 Spring Cloud 不兼容问题
- 依赖更新
- Maven Invoker 版本升级至 3.2.0
- Minio 版本升级至 8.4.1
- Hutool 版本升级至 5.8.1
- Okhttps 版本升级至 3.5.2
- WxJava 版本升级至 4.3.3.B
- Alipay-sdk-java 版本升级至 4.23.21.ALL
v2.7.0.RC1
- 主要更新
- Spring Boot Admin 版本升级至 2.6.7
- Nacos 版本更新至 2.1.0, 同步更新 Nacos Docker 版本,新增 Nacos 2.1.0 SQL 脚本。(提示:该版本有数据结构变化,建议备份已有配置信息,重新导入数据库脚本)
- 增加 Spring Authorization Server 自定义密码认证模式前后端数据加密传输。
- 增加国密算法 SM2 SM4,采用数字信封技术融合国密 SM2 SM4 算法,实现前后端数据加密传输。保留基于 RSA 和 AES 的前后端加密传输方式,可通过配置选择切换。
- 整合 rest-sdk-crypto、rest-sdk-secure、assistant-sdk-secure 代码包,形成统一的防护组件,包含前后端数据加密、接口幂等、防刷、Xss 和 SQL 注入防护,以及国密 SM2、SM4、RSA、AES 等加密逻辑。
- 其它更新
- Hutool 版本升级至 5.8.0
- Bce-java-sdk 版本升级至 0.10.208
- Minio 版本升级至 8.4.0
- Alipay-sdk-java 版本升级至 4.23.0.ALL
v2.7.0.Beta4
- 主要更新
- [升级] Spring Authorization Server 版本升级至 0.2.3 版本
- [升级] Spring Boot 版本升级至 2.6.6
- [新增] 基于 Spring Authorization Server 0.2.3 最新代码调用方式,重构自定义 OAuth2 密码模式
- [新增] 对 OAuth2 OIDC 认证模式的支持,补充前端 OIDC 认证相关配置操作
- [新增] OAuth2 OIDC 认证方式下,对应的 /userinfo 接口调用支持 和 客户端注册支持
- [新增] OAuth2 Authorization Code PKCE 认证模式支持
- [新增] OAuth2 Client Credentials 模式下,提供 Refresh Token。
- [新增] OAuth2 Client Credentials 模式下,支持使用 Scope 权限对接口进行验证。
- [新增] 在已有的 oauth2-sdk-authorization-server 模块下,增加客户端 Scope 的权限配置功能,并与已有的用户权限体系解耦
- [新增] 自定义 Social Credentials 认证模式,支持手机短信验证码、微信小程序、第三方应用登录
- [修复] 在 OAuth2 OIDC 认证方式下,/userinfo 接口调用始终为 401 问题。
- [修复] 自定义 Spring Authorization Server JPA 存储模式参数丢失,遗漏 Scope 设置,导致 /userinfo 调用失败问题
- [修复] No AuthenticationProvider found for UsernamePasswordAuthenticationToken 问题导致的用户名无法登录问题
- [修复] 服务启动过程中,由于异步操作与事务操作冲突,导致的 JetCache 数据存储产生并发异常
- [修复] 改进 @Async 注解调用代码,解决由 jdk 自动代理与 CGlib 代理两种代理方式的区别造成代码抛出异常
- [修复] 改进 OAuth2 基础操作代码,解决 Spring Authorization Server 部分配置不能设置为空值的问题
- [修复] Spring Cloud Bus 进行远程事件发布时,所有事件监听代码均会接收数据,无法根据服务 Destination 定向处理的问题。
- [优化] 优化 SecurityGlobalExceptionHandler,支持 OIDC 场景下对错误内容的拦截,并将其融合进整体错误体系
- [优化] EndpointProperties 配置,区分系统涉及的 url 以及 endpoint,以便支持更多用途
- [优化] 重构并抽象出策略事件 Event,以规范化大量使用的混合本地时间和远程事件的各类操作。
- [优化] 规范化所有 Enum 类,使用统一方式为前端提供常量
- [优化] 优化 OAuth2 应用管理前后端交互相关代码及 OpenApi 文档说明
- 其它更新
- Spring boot admin 版本升级至 2.6.4
- Redisson 版本升级至 3.17.0
- Antisamy 版本升级至 1.6.6
- Fastjson 版本升级至 1.2.80
- Okhttps 版本升级至 3.4.6
- Bce-java-sdk 版本升级至 0.10.202
- Alipay-sdk-java 版本升级至 4.22.75.ALL
- Qiniu-java-sdk 版本升级至 7.9.5
- Logback 版本升级至 1.2.11
- 尝鲜注意事项
- 建议新建目录、单独检出 Dante Cloud 2.7.0 分支代码,以防对现有代码产生影响。
- 数据表结构以及 Nacos 存在较大变化,建议重新建库、重新导入 Nacos 配置。
- 支持 MySQL 数据库,但是尚未进行充份的验证和测试,为规避不必要的问题,建议直接使用 PostgreSQL 数据库。
- Herodotus Engine 是独立的、可编译的、组件库式的工程,具体使用需要在其它 Spring Boot 工程中引入相关的组件模块。独立出的各个模块,已经同步至 Maven 中央仓库,检出 Dante Cloud 2.7.0 分支代码既可以直接使用。当然,也可以先检出 Herodotus Engine 工程,编译后再进行 Dante Cloud 项目的使用。
- 想要研究、学习、了解已有的模块代码,可以访问 Herodotus Engine 代码库,地址:https://gitee.com/herodotus/herodotus-engine
v2.7.0.Beta3
重大更新
- 全面拥抱 Spring Authorization Server。基于 Spring Authorization Server 重新改版,替换即将停止维护的 Spring Security OAuth2。再也不用担心 Spring Security OAuth2 停止维护了。
- 基于 Spring Data JPA,重新构建 Spring Authorization Server 基础数据存储代码。替代原有 JDBC 数据访问方式,破除 Spring Authorization Server 原有数据存储局限,扩展为更符合实际应用的方式。配合自定义多级缓存加持,认证过程更加顺滑。
- 基于 Spring Authorization Server,在 OAuth 2.1 规范基础之上,增加自定义“密码”认证模式,以兼容现有基于 OAuth 2 规范的、前后端分离的应用可以平滑使用。
- 基于 Spring Authorization Server 新的数据存储结构,重新定义应用管理、客户端管理功能,同步修改前后端代码,管理更加便捷。
- 完全遵照 Spring Security 5 以及 Spring Authorization Server 的代码规范,进行 OAuth2 认证服务器核心代码的开发。
- 除了支持 Spring Authorization Server 的标准的 Token 加密校验方式外,还了增加支持自定义证书的 Token 加密方式,可通过配置动态修改。
- 重新梳理并调整优化已有配置参数,让工程配置参数更加清晰,层级更加合理。同时,拆分原有使用内部类定义的配置参数,进一步由配置参数导致的代码耦合。
- 同步优化 Nacos 配置内容,采用 Spring Authorization Server 标准 Token 校验方式,新服务增加无须再增加配置文件和进行 Client 配置。
- 重新梳理本微服务架构内的错误体系及相关代码,已有的 Exception 类放入更合理的保重,无须再经过修改通用基础包中代码,即可便捷的将新的 Exception 融入到系统的错误体系中。同时,仍旧支持自定义错误码以及人机交互友好的自定义错误提示。
- 对已有代码进行了深度的“庖丁解牛”。严格遵照“单一职责”原则,根据各个组件的职责以及用途,拆解细化为多个各自独立组件模块,在最大程度上降低代码间的耦合。降低工程代码编译耗时,改进 CICD 效率,提升代码可维护性。
- 除已有的组件模块外,对现有工程代码分包也进一步调整,分包和逻辑更加清晰。
其它更新
- 优化接口权限鉴权逻辑,解决通配符类型权限与全路径权限冲突或重复的问题,实现重复权限剔除并以最大化匹配方式进行权限匹配逻辑。
- 由于 Spring Authorization Server 机制和模式的变化,原有团队管理功能已不符合实际,相关功能已删除。
- 前端部分功能配合后端功能变化进行同步修改和改进。
- 原有 Herodotus Engine 工程中的模块,根据实际代码变更。代码包以及代码进行了一定的优化和整合。
- 核心依赖 dependencies 采用参数方式,统一定义版本号方便其它依赖工程覆盖和修改版本号。
- 改进错误信息展示,同时支持 Mvc 和 Json 两种方式,通过浏览器操作的 Mvc 方式错误也可以通过界面展示了。
尝鲜注意事项
- 建议新建目录、单独检出 Dante Cloud 2.7.0 分支代码,以防对现有代码产生影响。
- 数据表结构以及 Nacos 存在较大变化,建议重新建库、重新导入 Nacos 配置。
- 支持 MySQL 数据库,但是尚未进行充份的验证和测试,为规避不必要的问题,建议直接使用 PostgreSQL 数据库。
- Herodotus Engine 是独立的、可编译的、组件库式的工程,具体使用需要在其它 Spring Boot 工程中引入相关的组件模块。独立出的各个模块,已经同步至 Maven 中央仓库,检出 Dante Cloud 2.7.0 分支代码既可以直接使用。当然,也可以先检出 Herodotus Engine 工程,编译后再进行 Dante Cloud 项目的使用。
- 想要研究、学习、了解已有的模块代码,可以访问 Herodotus Engine 代码库,地址:https://gitee.com/herodotus/herodotus-engine
友情提示:
本次代码发布,为尝鲜预览版,请结合自己的实际需求,谨慎选择使用!
Spring Authorization Server 也在不断的改进中,0.2.3 和 0.2.2 代码就有较大差异,因此暂时不要将该版本用于生产,随着 Spring Authorization Server 升级,代码还会进行较大的修改。
v2.7.0.Beta2
- 更正工程 Readme 文档表述错误内容。
- 优化自定义 Hibernate Dialect,增加 PostgreSQL 环境下对 CLOB 和 BLOB 数据类型的统一支持。为 Spring Authorization Server 的使用奠定基础
- 完善大量 Herodotus Engine 代码中的注释内容,解决代码编译生成 Javadoc 显示大量告警信息问题。
- 由于使用组件库的方式,源代码包和 Javadoc 包均已生成。已有微服务工程无须再进行源代码的编译,因此去掉 Dante Cloud 主工程源代码编译配置和相关依赖。
v2.7.0.Beta1
重要变更
- 将现有 Dante Cloud 微服务架构,进行了深度的“庖丁解牛”。将完整的微服务架构,根据各个组件的职责以及用途,拆解细化为多个各自独立组件模块,在最大程度上降低代码间的耦合。并将组件模块单独提取为一个独立的工程项目。
- 已有 Dante Cloud 微服务架构,根据新的模块化代码结构,进行了重构。
升级目的
- 2021 年 11 月 8 日 Spring 官方已经强烈建议使用 Spring Authorization Server 替换已经过时的 Spring Security OAuth2.0。距离 Spring Security OAuth2.0 结束生命周期还有小半年的时间,所以准备用 Spring Authorization Server 对已有的 Dante Cloud 微服务架构进行升级
- Dante Cloud 微服务架构,一直遵循“高内聚、低耦合”的原则,在开发和维护的过程中不断优化已有代码,尽一切可能降低代码的耦合性。但是,毕竟所有的代码都堆积在同一个工程中,代码间的过度依赖和互相耦合还是较为严重。这为 Spring Authorization Server 替换 Spring Security OAuth2.0 带来了较大的阻力和难度。
- 为了进一步降低代码与代码间、模块与模块间的耦合度,进行了本次版本更新,并衍生了 Herodotus Engine 工程。
- 同时,本次版本迭代,也是为了后期升级使用 Spring Boot 3.X 和 JDK 17,做先期主备。
新模式特点
- 严格遵照“单一职责”原则,进行各个模块的划分和代码拆解。
- 严格遵循 Spring Boot 编码规则和命名规则。
- 大多数模块均支持 @EnableXXX 注解 和 starter,不仅提升了模块使用的便捷性,同时在开发使用过程中,让 Spring Bean 的注入顺序更加可控和便于理解。
- 借鉴 Spring Boot 模块化设计思想,通过接口化编程、策略化 Bean 注入 以及丰富的自定义 @ConditionalXXX 注解,让模块的添加和使用更加灵活便捷。
- 各模块既可以综合在一起使用,也可以在其它 Spring Boot 工程中独立使用
新模式优势
- 虽然模块看似很多,但是每个模块职责单一、代码清晰,更有利于聚焦和定位问题。
- 通过对微服务架构的“庖丁解牛”,初学者不再需要在代码的海洋里“遨游”,通过针对性地了解各个模块,以点带面快速掌握微服务架构整体结构。
- 模块间的依赖极大的降低,想要替换为 Spring Authorization Server,影响到的代码和范围将会很小。该工程也是使用 Spring Authorization Server 的前序工作
- 每个模块均是最小化依赖第三包,规避依赖包过度依赖,特别是 starter 过多依赖,导致不可预知、难以调试、不好修改等问题。
- 降低微服务系统代码量,独立组件可提前编译并上传至 Maven 仓库,降低工程代码编译耗时,改进 CICD 效率。
尝鲜注意事项
- 建议新建目录、单独检出 Dante Cloud 2.7.0 分支代码,以防对现有代码产生影响。
- 独立出的各个模块,已经同步至 Maven 中央仓库,检出 Dante Cloud 2.7.0 分支代码既可以直接使用。当然,也可以先检出 Herodotus Engine 工程,编译后再进行 Dante Cloud 项目的使用。
- 想要研究、学习、了解已有的模块代码,可以访问 Herodotus Engine 代码库,地址:https://gitee.com/herodotus/herodotus-engine
- 如果之前已经使用、部署过 Dante Cloud 微服务系统,那么尝鲜使用 2.7.0.Beta1 版,无须修改和变更数据库。但是需要更新 Nacos 配置,具体变化可自行详细对比工程中 Nacos 配置文件。前端工程无须做任何修改,即可使用该版本后端系统。
- Herodotus Engine 是独立的、可编译的、组件库式的工程,具体使用需要在其它 Spring Boot 工程中引入相关的组件模块。
友情提示: 本次代码发布,为尝鲜预览版,请结合自己的实际需求,谨慎选择使用!