更新日志

码匠君 ... 2022-4-2 大约 33 分钟

# 更新日志

# 2.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)

# 2.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

# 2.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

# 2.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

# 2.7.3.3

  • 主要更新
    • [新增] 前端根据后端配置的第三方社交登录信息,在前端登录页面自动生成第三方社交登录按钮。新增常见第三方社交登录 logo 图标,根据后端配置自动显示。
    • [新增] 新增 JustAuth 的第三方社交登录前端 Callback 处理逻辑,让第三方社交登录逻辑更合理清晰
  • 其它更新
    • [修复] 修改社交登录示例配置格式,解决错误配置格式导致第三方社交登录核心配置信息无法注入问题
    • [修复] 社交登录处理器 Bean 名称与 微信小程序登录处理器 Bean 名称混淆问题。
    • [优化] 优化外部登录接入模块 (Access 模块) 部分 Exception 代码,将其融入平台整体错误体系。
    • [优化] 去除 dante-engine 中无用的依赖配置
  • 依赖更新
    • tencentcloud-sdk-java 版本升级至 3.1.587
  • 友情提示
    • 目前前端工程支持第三方社交登录,必须改为 History 模式,暂不支持 Hash 模式。
    • 因很多常用第三方登录,需要以企业信息进行注册。所以第三方登录并未覆盖所有情况以及参数测试,需根据实际使用情况自行增减。也欢迎提交 PR。

# 2.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 相关组件存在破坏性升级,会导致前端工程已有功能不可用,因此不要随意升级依赖包版本,使用工程指定版本。

# 2.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

# 2.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

# 2.7.2.6

  • 主要更新
    • [新增] 增加手机短信验证码登录沙盒验证测试模式。在此模式下,无须开通短信通道,就可以进行手机短信验证码注册和登录验证测试。
  • 其它更新
    • [修复] 强制升级 tea-xml 和 dom4j 依赖包版本,去除低版本 dom4j 携带的安全漏洞问题。
    • [修复] 修复 Spring Authorization Server 自定义 Social Credentials 认证模式下,认证类型校验错误,导致手机验证码登录失败问题。
    • [修复] 修复自定义 Social Credentials 社会化登录参数解析器配置遗漏,导致无法正确解析参数错误。
    • [修复] 在远程访问获取用户数据模式下,Social Credentials 社会化登录第三方用户交换处理器未正确注入问题。
    • [修复] 自定义 Social Credentials 认证模式,前后端数据传输的加密数据解密失败问题。
    • [修复] OpenFeign 远程调用接口,传递实体对象数据丢失问题。
    • [优化] 优化自定义 Social Credentials 认证模式手机验证码登录等参数合规性校验逻辑。
    • [优化] 优化 Nacos 输出至日志中心的服务日志数据级别及包含内容配置
    • [优化] 优化前端登录页面,开放手机验证码登录功能。
    • [优化] 优化前端工程生产模式打包脚本配置

# 2.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

# 2.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

# 2.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

# 2.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

# 友情提示

  1. 因代码模块名和代码包名存在变更,直接更新代码会在 IDE 工具中产生冗余结构,可以直接删除,建议全新检出工程以彻底规避该问题。
  2. 因  Nacos  配置文件名称存在变更,需要重新导入  Nacos  配置。

# 2.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

# 2.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

# 2.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

# 2.7.1.2

  • 主要更新:

    • Spring Boot Admin 版本升级至 2.7.2
    • 增加应用安全合规检查相关支持功能
      1. [新增] 用户账号过期时间和用户密码过期时间。优化系统用户是否可用、是否锁定以及账号过期时间和密码过期的状态控制
      2. [新增] 在同一类型终端下,允许同一账号重复登录限制。可通过配置修改默认允许重复登录数值,默认值为 1.
      3. [新增] 用户登录错误次数限制,超过最大错误次数系统将自动锁定该用户账号(前提是系统中已存在的用户)。提供自动解锁功能和管理员解锁支持。
      4. [新增] 新增用户登入、登出系统记录功能。包含,登录账号、时间、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

# 2.7.1.1

  • 新版前端发布

基于 Vue3、Vite2、Pinia、Quasar2、Typescript、Hooks 等最新技术栈,全新构建前端工程正式发布

新版前端特点:

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

# 2.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

# 2.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

# 2.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

# 2.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

# 2.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

# 2.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 提前做铺垫准备。

# 2.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

# 2.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.6.7.30

  • 主要更新
    • Spring Boot Admin 版本升级至 2.6.7
  • 其它更新
    • Maven Invoker 版本升级至 3.2.0
    • Minio 版本升级至 8.4.1
    • Hutool 版本升级至 5.8.0
    • Bce-java-sdk 版本升级至 0.10.209
    • Alipay-sdk-java 版本升级至 4.23.11.ALL
    • Aliyun-sdk-oss 版本升级至 3.15.0

# 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
上次编辑于: 2022年9月23日 11:17
贡献者: 码匠君