更新日志

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

# 更新日志

# 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

# v2.6.7.20

  • 主要更新
    • Nacos 版本更新至 2.1.0, 同步更新 Nacos Docker 版本,新增 Nacos 2.1.0 SQL 脚本。(提示:该版本有数据结构变化,建议备份已有配置信息,重新导入数据库脚本)
  • 其它更新
    • 删除 commons-beanutils 依赖,并重构该依赖涉及的代码,解决由其依赖的 commons-collections 3.X 包引起的安全漏洞。
    • 删除 h2 database 依赖,解决由于 Spring Boot 默认依赖版本 h2 driver 引起的安全漏洞问题。
  • 依赖更新
    • Minio 版本升级至 8.4.0
    • Okhttps 版本升级至 3.5.1
    • Alipay-sdk-java 版本升级至 4.23.0.ALL

# v2.6.7.10

  • 主要更新
    • Spring Cloud 版本升级至 2021.0.2
  • 其它更新
    • Antisamy 版本升级至 1.6.8,同步更新防护配置文件
    • Redisson 版本升级至 3.17.1
    • Minio 版本升级至 8.3.9
    • WxJava 版本升级至 4.3.2.B
    • Bce-java-sdk 版本升级至 0.10.207
    • Qiniu-java-sdk 版本升级至 7.10.2
    • Alipay-sdk-java 版本升级至 4.22.113.ALL

# v2.6.7.0

  • 主要更新
    • Spring Boot 版本升级至 2.6.7
    • 去除 Spring Integration 强制降级配置,恢复使用 Spring Boot 默认依赖版本
    • 由于 Fastjson 2.0.1 版本存在破坏性升级,暂不做升级处理。
    • 使用最新版本 Antisamy XSS 防护配置文件。
    • Debezium 相关 Docker 版本升级至 1.9
  • 其它更新
    • Lombok 版本升级至 1.18.24
    • Springdoc 版本升级至 1.6.8
    • WxJava 版本升级至 4.3.1.B
    • Bce-java-sdk 版本升级至 0.10.206
    • Alipay-sdk-java 版本升级至 4.22.110.ALL
    • Aliyun-sdk-oss 版本升级至 3.14.1

# v2.7.0.Beta5

  • 主要更新
    • [新增] 新增自定义 Spring Authorization Server 授权码模式登录认证页面和授权确认页面
    • [新增] 自定义 Spring Authorization Server 授权码模式登录使用 AES 进行数据加密传输。
    • [新增] 自定义 Spring Authorization Server 授权码模式登录增加验证码支持,支持多种验证码类型,暂不支持行为验证码。
    • [新增] 新增基于 Spring Authorization Server 的单体版应用,做为系统的有益补充,无须搭建复杂基础设施,即可快速搭建运行。
    • [优化] 优化平台错误体系,融合 Spring Authorization Server Form Login 以及验证码相关错误。
    • [优化] 优化调整 Spring Security 相关的依赖,增加自定义 Jackson Module 序列化,解决扩展的 WebAuthenticationDetails 无法反序列化问题。
  • 其它更新
    • Spring Boot Admin 版本升级至 2.6.6
    • Camunda 版本升级至 7.17.0
    • Antisamy 版本升级至 1.6.7
    • logstash-logback-encoder 版本升级至 7.1.1
    • Skywalking 版本升级至 8.10.0
    • Minio 版本升级 8.3.8
    • JetCache 版本升级至 2.6.4
    • Okhttps 版本升级至 3.5.0
    • Wxjava 版本升级至 4.3.0
    • bce-java-sdk 版本升级至 0.10.204
    • qiniu-java-sdk 版本升级至 7.10.0
    • alipay-sdk-java 版本升级至 4.22.86.ALL
  • 尝鲜注意事项
    1. 建议新建目录、单独检出 Eurynome Cloud 2.7.0 分支代码,以防对现有代码产生影响。
    2. 数据表结构以及 Nacos 存在较大变化,建议重新建库、重新导入 Nacos 配置。
    3. 支持 MySQL 数据库,但是尚未进行充份的验证和测试,为规避不必要的问题,建议直接使用 PostgreSQL 数据库。
    4. Herodotus Engine 是独立的、可编译的、组件库式的工程,具体使用需要在其它 Spring Boot 工程中引入相关的组件模块。独立出的各个模块,已经同步至 Maven 中央仓库,检出 Eurynome Cloud 2.7.0 分支代码既可以直接使用。当然,也可以先检出 Herodotus Engine 工程,编译后再进行 Eurynome Cloud 项目的使用。
    5. 想要研究、学习、了解已有的模块代码,可以访问 Herodotus Engine 代码库,地址:https://gitee.com/herodotus/herodotus-engine (opens new window)

# v2.6.6.20

  • 主要更新
    • JetCache 版本升级至 2.6.3,感谢原作者修复 Spring Boot 2.6 下依赖循环问题。删除本项目原有临时解决 JetCache 依赖循环代码。
    • Spring Boot Admin 版本升级至 2.6.6
    • Skywalking Agent 版本升级至 8.10.0
  • 其它更新
    • Antisamy 版本升级至 1.6.7
    • Logstash Logback Encoder 版本升级至 7.1.1
    • Minio 版本升级 8.3.8
    • Okhttps 版本升级至 3.5.0
    • WxJava 版本升级至 4.3.0
    • Bce-java-sdk 版本升级至 0.10.204
    • Qiniu-java-sdk 版本升级至 7.10.0
    • Alipay-sdk-java 版本升级至 4.22.86.ALL

# v2.6.6.10

  • 主要更新
    • Spring Boot Admin 版本升级至 2.6.5
    • Camunda 版本升级至 7.17.0,同时升级 Camunda Open API 文档,补充 Camunda 7.17.0 数据库脚本
  • 其它更新
    • Antisamy 版本升级至 1.6.6.1
    • Springdoc 版本升级至 1.6.7
    • Okhttps 版本升级至 3.4.6
    • Qiniu-java-sdk 版本升级至 7.9.5
    • Alipay-sdk-java 版本升级至 4.22.81.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
  • 尝鲜注意事项
    1. 建议新建目录、单独检出 Eurynome Cloud 2.7.0 分支代码,以防对现有代码产生影响。
    2. 数据表结构以及 Nacos 存在较大变化,建议重新建库、重新导入 Nacos 配置。
    3. 支持 MySQL 数据库,但是尚未进行充份的验证和测试,为规避不必要的问题,建议直接使用 PostgreSQL 数据库。
    4. Herodotus Engine 是独立的、可编译的、组件库式的工程,具体使用需要在其它 Spring Boot 工程中引入相关的组件模块。独立出的各个模块,已经同步至 Maven 中央仓库,检出 Eurynome Cloud 2.7.0 分支代码既可以直接使用。当然,也可以先检出 Herodotus Engine 工程,编译后再进行 Eurynome Cloud 项目的使用。
    5. 想要研究、学习、了解已有的模块代码,可以访问 Herodotus Engine 代码库,地址:https://gitee.com/herodotus/herodotus-engine (opens new window)

# v2.6.6.0

  • 重要更新
    • Spring Boot 版本升级至 2.6.6。以规避(CVE-2022-22965)问题。当前环境不具备漏洞出现条件,只是进一步预防和规避。
  • 其它更新
    • Okhttps 版本升级至 3.4.5
    • WxJava 版本升级至 4.2.9.B
    • Bce-java-sdk 版本升级至 0.10.202

# v2.6.5.0

  • 重要更新
    • Spring Boot 版本升级至 2.6.5
    • Spring Boot Admin 版本升级至 2.6.3
  • 一般更新
    • 强制降低 Spring Integration 版本至 5.5.9,临时解决 Spring Integration 5.5.10 不兼容 Java 8 问题。已提交 ISSUE 至 Spring Integration 项目 #3761 (opens new window)。确定在 Spring Integration 5.5.11 修复该问题
    • 修复 @Async 与 @Transactional 注解冲突,导致 @Transactional 失效问题。
    • 修复因@Transactional 失效,导致的权限数据存储死锁问题。
  • 依赖更新
    • Redisson 版本升级至 3.17.0
    • Fastjson 版本升级至 1.2.80
    • Okhttps 版本升级至 3.4.4
    • Bce-java-sdk 版本升级至 0.10.201
    • Alipay-sdk-java 版本升级至 4.22.67.ALL
    • Logback 版本升级至 1.2.11

# v2.7.0.Beta3

  • 重大更新

    1. 全面拥抱 Spring Authorization Server。基于 Spring Authorization Server 重新改版,替换即将停止维护的 Spring Security OAuth2。再也不用担心 Spring Security OAuth2 停止维护了。
    2. 基于 Spring Data JPA,重新构建 Spring Authorization Server 基础数据存储代码。替代原有 JDBC 数据访问方式,破除 Spring Authorization Server 原有数据存储局限,扩展为更符合实际应用的方式。配合自定义多级缓存加持,认证过程更加顺滑。
    3. 基于 Spring Authorization Server,在 OAuth 2.1 规范基础之上,增加自定义“密码”认证模式,以兼容现有基于 OAuth 2 规范的、前后端分离的应用可以平滑使用。
    4. 基于 Spring Authorization Server 新的数据存储结构,重新定义应用管理、客户端管理功能,同步修改前后端代码,管理更加便捷。
    5. 完全遵照 Spring Security 5 以及 Spring Authorization Server 的代码规范,进行 OAuth2 认证服务器核心代码的开发。
    6. 除了支持 Spring Authorization Server 的标准的 Token 加密校验方式外,还了增加支持自定义证书的 Token 加密方式,可通过配置动态修改。
    7. 重新梳理并调整优化已有配置参数,让工程配置参数更加清晰,层级更加合理。同时,拆分原有使用内部类定义的配置参数,进一步由配置参数导致的代码耦合。
    8. 同步优化 Nacos 配置内容,采用 Spring Authorization Server 标准 Token 校验方式,新服务增加无须再增加配置文件和进行 Client 配置。
    9. 重新梳理本微服务架构内的错误体系及相关代码,已有的 Exception 类放入更合理的保重,无须再经过修改通用基础包中代码,即可便捷的将新的 Exception 融入到系统的错误体系中。同时,仍旧支持自定义错误码以及人机交互友好的自定义错误提示。
    10. 对已有代码进行了深度的“庖丁解牛”。严格遵照“单一职责”原则,根据各个组件的职责以及用途,拆解细化为多个各自独立组件模块,在最大程度上降低代码间的耦合。降低工程代码编译耗时,改进 CICD 效率,提升代码可维护性。
    11. 除已有的组件模块外,对现有工程代码分包也进一步调整,分包和逻辑更加清晰。
  • 其它更新

    • 优化接口权限鉴权逻辑,解决通配符类型权限与全路径权限冲突或重复的问题,实现重复权限剔除并以最大化匹配方式进行权限匹配逻辑。
    • 由于 Spring Authorization Server 机制和模式的变化,原有团队管理功能已不符合实际,相关功能已删除。
    • 前端部分功能配合后端功能变化进行同步修改和改进。
    • 原有 Herodotus Engine 工程中的模块,根据实际代码变更。代码包以及代码进行了一定的优化和整合。
    • 核心依赖 dependencies 采用参数方式,统一定义版本号方便其它依赖工程覆盖和修改版本号。
    • 改进错误信息展示,同时支持 Mvc 和 Json 两种方式,通过浏览器操作的 Mvc 方式错误也可以通过界面展示了。
  • 尝鲜注意事项

    1. 建议新建目录、单独检出 Eurynome Cloud 2.7.0 分支代码,以防对现有代码产生影响。
    2. 数据表结构以及 Nacos 存在较大变化,建议重新建库、重新导入 Nacos 配置。
    3. 支持 MySQL 数据库,但是尚未进行充份的验证和测试,为规避不必要的问题,建议直接使用 PostgreSQL 数据库。
    4. Herodotus Engine 是独立的、可编译的、组件库式的工程,具体使用需要在其它 Spring Boot 工程中引入相关的组件模块。独立出的各个模块,已经同步至 Maven 中央仓库,检出 Eurynome Cloud 2.7.0 分支代码既可以直接使用。当然,也可以先检出 Herodotus Engine 工程,编译后再进行 Eurynome Cloud 项目的使用。
    5. 想要研究、学习、了解已有的模块代码,可以访问 Herodotus Engine 代码库,地址:https://gitee.com/herodotus/herodotus-engine (opens new window)

友情提示:

本次代码发布,为尝鲜预览版,请结合自己的实际需求,谨慎选择使用!

Spring Authorization Server 也在不断的改进中,0.2.3 和 0.2.2 代码就有较大差异,因此暂时不要将该版本用于生产,随着 Spring Authorization Server 升级,代码还会进行较大的修改。

# v2.6.4.20

  1. Spring Cloud Gateway 安全问题修复 (CVE-2022-22947)
  2. 依赖包版本升级
    • maven-embedder 版本升级至 3.8.5
    • maven-compat 版本升级至 3.8.5
    • WxJava 版本升级至 4.2.8.B
    • bce-java-sdk 版本升级至 0.10.200
    • qiniu-java-sdk 版本升级至 7.9.4
    • alipay-sdk-java 版本升级至 4.22.57.ALL
    • com.baidu.aip 版本升级至 4.16.7

# v2.6.4.10

  • 主要更新

    1. 增加 SpringDoc 配置,采用最新配置方式,解决 Swagger UI 认证界面无法输入 Client Secret 以及反复输入Client IdClient Secret 问题。该问题需要更新 Nacos 配置才能生效。(注意:正式使用,建议单独为 Swagger 分配 Client IdClient Secret,以确保安全性)
    2. 为提升 Swagger UI 显示内容的时效性,默认关闭 Swagger UI 页面缓存。
    3. 修改 Swagger UI 支持认证模式,默认支持 OAuth2 Password 模式和 Client Credentials 模式,关闭 Authorization Code 模式以及支持 PKCE 的 Authorization Code 模式
  • 其它更新

    • Guava 版本升级至 31.1-jre
    • Hutool 版本升级至 5.17.22
    • WxJava 版本升级至 4.2.7.B
    • Mybatis-plus-generator 版本升级至 3.5.2
    • Bce-java-sdk 版本升级至 0.10.199
    • Alipay-sdk-java 版本升级至 4.22.49.ALL

# v2.6.4.0

  • 主要更新
    1. Spring Boot 版本升级至 2.6.4
    2. Spring Cloud Alibaba 版本升级至 2021.0.1.0
    3. 删除为升级 Spring Boot 2.6.X,而编写的临时解决 Sentinel 循环注入代码,全新使用 Spring Cloud Alibaba 标准代码。
  • 其它更新
    • docker-maven-plugin 版本升级至 0.39.1
    • minio 版本升级至 8.3.7
    • log4j-api 版本升级至 2.17.2

# v2.6.3.30

  • 主要更新

    • Spring Cloud 版本升级至 2021.0.1
  • 其它更新

    • Hutool 版本升级至 5.17.21
    • WxJava 版本升级至 4.2.6.B
    • alipay-sdk-java 版本升级至 4.22.37.ALL
  • 额外说明

近期发布版本的频次降低,更新的内容也比较少。主要原因一方面是恰逢新春佳节,另一方面也是最主要的原因也是为后期的更新迭代做积极的准备和开发工作。

为什么现在积极准备后期的更新迭代,主要是因为后期的更新迭代对现有系统影响比较大:

Spring 官宣 spring-security-oauth 即将不再维护。虽然 spring-security-oauth2-autoconfigure 等组件包依旧可用,现目前 Spring 依赖的 spring-security-oauth2-autoconfigure 版本比较低,高版本所有的代码均已标记为过期。

所以近期一直在进行使用 Spring Authorization Server 替换现有 spring-security-oauth 的开发工作。包括 Herodotus Engine 工程的提取,以及 Eurynome Cloud v2.7.0.Beta2 的开发,均是为了降低已有系统代码间耦合,为 Spring Authorization Server 使用和升级铺路。

Spring Boot 3 下一代框架将基于 Java 17; Kafka 3.0 也已经宣布弃用 Java 8 的支持;Hibernate 宣布他们目前积极维护的分支都支持 Java17。Java 生态正在潜移默化进入一个新的时代,所以开始着手准备支持 Java 17 势在必行。

虽然说 Java 一直都是向下兼容的,但是微服务架构依赖的第三方开源包非常多,势必会存在一些依赖组件包在 Java 17 下使用不畅的情况,所以需要及时更新或替换。不断的升级更新,跟随业界的发展趋势,用新的技术来改善开发和使用。同时,规避处于长期不更新导致后期即使很小的更新都会牵一发而动全身的尴尬境地。

# v2.7.0.Beta2

  1. 更正工程 Readme 文档表述错误内容。
  2. 优化自定义 Hibernate Dialect,增加 PostgreSQL 环境下对 CLOB 和 BLOB 数据类型的统一支持。为 Spring Authorization Server 的使用奠定基础
  3. 完善大量 Herodotus Engine 代码中的注释内容,解决代码编译生成 Javadoc 显示大量告警信息问题。
  4. 由于使用组件库的方式,源代码包和 Javadoc 包均已生成。已有微服务工程无须再进行源代码的编译,因此去掉 Eurynome Cloud 主工程源代码编译配置和相关依赖。

# v2.7.0.Beta1

  • 重要变更

    • 将现有 Eurynome Cloud 微服务架构,进行了深度的“庖丁解牛”。将完整的微服务架构,根据各个组件的职责以及用途,拆解细化为多个各自独立组件模块,在最大程度上降低代码间的耦合。并将组件模块单独提取为一个独立的工程项目。
    • 已有 Eurynome Cloud 微服务架构,根据新的模块化代码结构,进行了重构。
  • 升级目的

    • 2021 年 11 月 8 日 Spring 官方已经强烈建议使用 Spring Authorization Server 替换已经过时的 Spring Security OAuth2.0。距离 Spring Security OAuth2.0 结束生命周期还有小半年的时间,所以准备用 Spring Authorization Server 对已有的 Eurynome Cloud 微服务架构进行升级
    • Eurynome Cloud 微服务架构,一直遵循“高内聚、低耦合”的原则,在开发和维护的过程中不断优化已有代码,尽一切可能降低代码的耦合性。但是,毕竟所有的代码都堆积在同一个工程中,代码间的过度依赖和互相耦合还是较为严重。这为 Spring Authorization Server 替换 Spring Security OAuth2.0 带来了较大的阻力和难度。
    • 为了进一步降低代码与代码间、模块与模块间的耦合度,进行了本次版本更新,并衍生了 Herodotus Engine 工程。
    • 同时,本次版本迭代,也是为了后期升级使用 Spring Boot 3.X 和 JDK 17,做先期主备。
  • 新模式特点

    1. 严格遵照“单一职责”原则,进行各个模块的划分和代码拆解。
    2. 严格遵循 Spring Boot 编码规则和命名规则。
    3. 大多数模块均支持 @EnableXXX 注解 和 starter,不仅提升了模块使用的便捷性,同时在开发使用过程中,让 Spring Bean 的注入顺序更加可控和便于理解。
    4. 借鉴 Spring Boot 模块化设计思想,通过接口化编程、策略化 Bean 注入 以及丰富的自定义 @ConditionalXXX 注解,让模块的添加和使用更加灵活便捷。
    5. 各模块既可以综合在一起使用,也可以在其它 Spring Boot 工程中独立使用
  • 新模式优势

    1. 虽然模块看似很多,但是每个模块职责单一、代码清晰,更有利于聚焦和定位问题。
    2. 通过对微服务架构的“庖丁解牛”,初学者不再需要在代码的海洋里“遨游”,通过针对性地了解各个模块,以点带面快速掌握微服务架构整体结构。
    3. 模块间的依赖极大的降低,想要替换为 Spring Authorization Server,影响到的代码和范围将会很小。该工程也是使用 Spring Authorization Server 的前序工作
    4. 每个模块均是最小化依赖第三包,规避依赖包过度依赖,特别是 starter 过多依赖,导致不可预知、难以调试、不好修改等问题。
    5. 降低微服务系统代码量,独立组件可提前编译并上传至 Maven 仓库,降低工程代码编译耗时,改进 CICD 效率。
  • 尝鲜注意事项

    1. 建议新建目录、单独检出 Eurynome Cloud 2.7.0 分支代码,以防对现有代码产生影响。
    2. 独立出的各个模块,已经同步至 Maven 中央仓库,检出 Eurynome Cloud 2.7.0 分支代码既可以直接使用。当然,也可以先检出 Herodotus Engine 工程,编译后再进行 Eurynome Cloud 项目的使用。
    3. 想要研究、学习、了解已有的模块代码,可以访问 Herodotus Engine 代码库,地址:https://gitee.com/herodotus/herodotus-engine (opens new window)
    4. 如果之前已经使用、部署过 Eurynome Cloud 微服务系统,那么尝鲜使用 2.7.0.Beta1 版,无须修改和变更数据库。但是需要更新 Nacos 配置,具体变化可自行详细对比工程中 Nacos 配置文件。前端工程无须做任何修改,即可使用该版本后端系统。
    5. Herodotus Engine 是独立的、可编译的、组件库式的工程,具体使用需要在其它 Spring Boot 工程中引入相关的组件模块。

友情提示: 本次代码发布,为尝鲜预览版,请结合自己的实际需求,谨慎选择使用!

# v2.6.3.20

  • 重要更新

    • Skywalking 版本升级至 8.9.0
    • 升级 Antisamy xml 配置,强化 XSS 防控能力
  • 其它更新

    • docker-maven-plugin 版本升级至 0.39.0
    • antisamy 版本升级至 1.6.5
    • springdoc 版本升级至 1.6.6
    • skywalking 版本升级至 8.9.0
    • minio 版本升级 8.3.6
    • bce-java-sdk 版本升级至 0.10.193
    • qiniu-java-sdk 版本升级至 7.9.3
    • alipay-sdk-java 版本升级至 4.22.32.ALL
    • jpush-client 版本升级至 3.6.1

# v2.6.3.10

  1. Spring Boot Admin 版本升级至 2.6.2
  2. 修改 Dockerfile 配置,将 alpine 容器源修改为阿里源,提升打包 Docker 字体等资源下载速度
  3. 修复服务打包成 Docker 镜像后,openjdk:8-jdk-alpine 无法找到字体,导致渲染图形验证码抛空问题。
  4. 将 alpine 容器默认 UTC 时区,修改为 "GTM + 8" 时区
  5. 前端工程 Vuetify 版本升级至 2.6.3。同步升级大量其它依赖包版本。
  6. 后端工程依赖升级:
    • Redisson 版本升级至 3.16.8
    • Hutool 版本升级至 5.7.20
    • WxJava 版本升级至 4.2.5.B
    • mybatis-plus-boot-starter 版本升级至 3.5.1
    • dysmsapi20170525 版本升级至 2.0.9
    • bce-java-sdk 版本升级至 0.10.190
    • alipay-sdk-java 版本升级至 4.22.30.ALL
    • baidu-java-sdk 版本升级至 4.16.5
    • aliyun-sdk-oss 版本升级至 3.14.0

# v2.6.3.0

  • 重要更新

    1. Spring Boot 版本升级至 2.6.3
    2. Nacos 版本升级至 2.0.4
  • 其它更新

    • okhttps 版本升级至 3.4.2
    • minio 升级 值 8.3.5

# v2.6.2.90

  1. Spring Boot Admin 升级至 2.6.1
  2. 修复前端工程,因阿里库依赖包签名不正确,导致执行 yarn 编译命令以及 yarn 升级依赖命令,会抛出 Integrity check failed for "graceful-fs" (computed integrity doesn't match our records 错误问题。

# v2.6.2.80

  • 重要更新
  1. Spring Boot Admin 升级至 2.6.0。
    • Spring Boot Admin 监控元数据包含 null 值会抛出 NullPointerException 的问题已解决。感谢 Eurynome Cloud 技术交流群群友【liviing{}{}】发现此问题,并提供解决方案。才得以提交 ISSUE 至 Spring Boot Admin 得到快速解决, ISSUE ID:#1925。
  2. Sentinel 全面升级至 1.8.3
    • 解决使用 Spring Cloud Alibaba 2021.1 导致 Sentinel 无法升级问题。
    • 封装的 Sentinel Dashboard 同步升级至 1.8.3。最新打包 herodotus/sentinel-dashboard 镜像已上传至 Docker Hub
    • Docker Compose 脚本修改为使用最新 herodotus/sentinel-dashboard:1.8.3
  3. 新增支付核心模块
    • 支付模块对阿里支付、微信支付核心支付 API 进行了封装,支持普通商户及 ISV 模式,使用更加便捷。
    • 商户信息可配置,支持多商户管理。默认使用配置文件进行商户信息配置,支持使用关系型数据库进行商户信息存储,也可灵活自定义其它类型的存储媒介。
    • 采用事件机制实现支付异步通知以及异步回调处理,规避多次异步通知问题。
    • 最大程度上降低支付模块与实际业务的耦合性,便于开发更加独立的、更易扩展的订单、支付等微服务。
  • 其它更新
    1. 解决阿里支付 SDK 自身依赖包与 Antisamy 依赖冲突,导致系统接口无法正常调用问题。
    2. 解决行为验证码偶尔出现缓存数据无法序列化问题。
    3. 前端工程升级大量依赖包,重新编译组件库。
    4. 后端依赖包版本升级
      • Springdoc 版本升级至 1.6.4
      • Hutool 版本升级至 5.7.19
      • WxJava 版本升级至 4.2.4.B
      • mybatis-plus-boot-starter 版本升级至 3.5.0
      • aliyun-java-sdk-core 版本升级至 4.6.0
      • bce-java-sdk 版本升级至 0.10.188
      • qiniu-java-sdk 版本升级至 7.9.2
      • alipay-sdk-java 版本升级至 4.22.17.ALL
      • jpush-client 版本升级至 3.6.0
      • jiguang-common 版本升级至 1.2.0

# v2.6.2.70

  1. 升级 bcprov-jdk15on 版本,修复安全漏洞 CVE-2020-28052,解决 bcprov-jdk15on 在工程中存在多个版本重复的依赖包问题。
  2. 优化平台新服务创建 Maven Archetype,解决 .gitignore 被过滤不会拷贝的问题。
  3. 增加 Maven 管理代码包,可通过代码或界面操作实现新服务的创建

# v2.6.2.60

  1. 新增平台服务 Maven Archetype,方便新服务的构建和开发
  2. 优化平台核心 Maven Dependences,去除无用依赖内容,让 pom.xml 内容更清晰
  3. 升级 Debezimu 版本至 1.8,同步修改 docker-compose 脚本。
  4. 删除原有验证码接口无用的权限设置代码
  5. 删除 eurynome-cloud-influxdb 和 eurynome-cloud-oss 模块代码,减少额外代码对学习本系统带来的复杂度
  6. 升级系统依赖包版本:
    • Springdoc 版本升级至 1.6.3
    • Hutool 版本升级至 5.7.18
    • Mybatis 版本升级至 3.5.9
    • Log4j 版本升级至 2.17.1

# v2.6.2.50

  1. Jetcache 版本升级至 2.6.2 (提了 Jetcache 2.6.1 版本 redis 缓存 key 中包含 null 的 ISSUE,作者快速响应并修复,感谢 Jetcache 作者)
  2. 强制升级 Logback 版本至 1.2.10,以规避 Logback 安全漏洞 CVE-2021-42550
  3. 回滚 Spring Boot Admin 版本至 2.5.4,以临时解决 Spring Boot Admin 2.5.5 版本在元数据包含 null 值的情况下会抛出 NullPointerException 的问题。已向 Spring Boot Admin 提出 ISSUE #1925,待修正后再升级
  4. 重构 eurynome-cloud-captcha 包代码,将行为验证码与图形验证码以及 Hutool 验证码整合并统一,目前支持滑块拼图、文字点选、算数类型、中文类型、字母类型、GIF 类型,以及 Hutool 圆圈干扰、扭曲干扰、线段干扰等多种类型验证码。
  5. 使用独立的、统一的接口进行验证码调用以及验证码的验证。通过修改接口即可动态变更验证码的显示和调用。
  6. 通过 Spring Boot 配置,可以动态修改验证码的大小、内容、字体等多维度参数,让验证码的显示更具多样性和灵活性。
  7. 重构 OAuth2 授权码模式登录页面代码,替换已有验证码,更换为新的统一验证码接口。不再使用已经不再维护的第三方开源验证码包。
  8. 修正前端验证码组件,在重新设置滑块大小参数情况下,滑块显示位置错误并导致验证失败问题。
  9. 调整部分代码日志级别,减少日志在 Debug 模式下不必要的日志输出
  10. 依赖包升级:
    • Redisson 版本升级至 3.16.7
    • Springdoc 版本升级至 1.6.2
    • Fastjson 版本升级至 1.2.79

# v2.6.2.40

  • 重大更新
    • Spring Boot 版本升级至 2.6.2
    • lombok 版本升级至 1.18.22
    • docker-maven-plugin 版本升级至 0.38.1
  • 其它更新
    • Jetcache 回滚至 2.6.0 版本,规避 Jetcache 2.6.1 版本在 redis 中生成缓存 key 中包含 null 的问题

# v2.6.2.30

  • 重大更新
    • Spring Boot Admin 版本升级至 2.5.5
  • 其它更新
    • Apache Log4j2 版本升级至 2.17.0,解决第三个安全漏洞 CVE-2021-45105
    • 独立的 eurynome-cloud-upms-api 包,已经失去单独提取的意义,将其与 eurynome-cloud-upms-logic 包整合。
    • 新增认证成功后,登录信息日志记录。

# v2.6.2.20

  1. Apache Log4j2 版本升级至 2.16.0,彻底根除安全漏洞问题
  2. 新增组合式、可配置化的图形验证码功能。独立出单独验证码模块,为后续更多的验证码集成奠定基础。 主要特点
    • 同时支持滑块拼图验证码和文字点选验证码。
    • 后端可通过配置,灵活定制和修改验证码细节;
    • 前端组件化封装,可通过参数动态指定所使用的验证码
    • 使用统一接口实现不同验证码的生成与验证。
    • 与平台自定义 Session 高度融合,整合幂等、防刷等管控机制,前后端数据加密传输,提升验证码使用安全性。
    • 验证码反馈信息,与平台统一错误体系有机结合,用户体验进一步提升。
  3. 优化 Feign 请求信息传输,修正 UserAgent 信息被修改后未回置问题。
  4. 前端工程升级大量依赖包,重新编译组件库代码。
  5. 后端核心依赖包版本升级
    • Springdoc 版本升级至 1.6.1
    • Mybatis 版本升级至 3.5.8

# v2.6.2.10

  1. 修复 Apache Log4j2 的远程代码执行漏洞安全问题
  2. 进一步优化调整核心代码模块依赖关系,降低模块间的耦合程度,减少部分核心模块被过度依赖的情况。
  3. 升级依赖包版本
    • Logstash Logback Encoder 版本升级至 7.0.1
    • Hutool 版本升级至 5.7.17
    • aliyun-java-sdk-core 版本升级至 4.5.30
    • dysmsapi20170525 版本升级至 2.0.8
    • qiniu-java-sdk 版本升级至 7.9.0

# v2.6.2.0

  1. 重构平台基础核心代码,调整部分核心代码归属模块,让各个核心代码模块逻辑更加清晰、职责更加内聚。
  2. 调整核心代码模块依赖关系,降低模块间的耦合程度,减少部分核心模块被过度依赖的情况。
  3. 升级大量基础核心依赖包版本
    • Fastjson 版本升级至 1.2.78
    • JetCache 版本升级至 2.6.1
    • Redisson 版本升级至 3.16.6
    • SpringDoc 版本升级至 1.5.13
    • Minio 版本升级至 8.3.4
    • Okhttps 版本升级至 3.4.1
  4. 前端工程升级使用依赖包版本,重新编译组件库。

# v2.6.1.0

  • 重大更新

    1. Spring Boot 版本升级至 2.6.1
    2. Spring Cloud 版本升级至 2021.0.0
    3. 新增 Sentinel 自动降级处理机制。
  • 其它更新

    1. 解决 JetCache 2.6.0 在 Spring Boot 2.6.X 环境下,Bean 循环依赖问题。
    2. 解决 Spring Cloud Alibaba Sentinel 2021.1 在 Spring Boot 2.6.X 环境下,Bean 循环依赖问题。
    3. 解决 Spring Boot 2.6.X 环境下,由于代码方法变更,导致接口自动化扫描抛空错误问题。
    4. 解决 Sentinel 与 Feign 冲突问题。
    5. 解决 Spring Cloud OAuth2 由于无用代码的注入,导致的 Bean 循环依赖问题。
    6. 前端 Vuetify 版本升级至 2.6.1,升级相关依赖包版本,重新编译组件库

# v2.5.7.20

  1. 修正 OpenFeign 调用过程中,UserAgent 头信息被修改,新增的(KHTML,like Gecko) 信息中,产生换行符,导致 illegalArgumentException 问题。
  2. 修正平台 data-access-strategy: remote (OpenFeign 数据访问模式) 模式下,核心接口未授权问题。
  3. 优化平台全局错误信息描述和后端响应的错误信息,让错误提示信息更加准确以及更加友好
  4. 修正 OAuth2 Throwable Cause 信息转换成 自定义错误信息类型错误问题。
  • 依赖包版本更新
    • aliyun-java-sdk-core 升级至 4.5.30
    • dysmsapi20170525 升级至 2.0.7
    • aliyun-sdk-oss 升级至 3.13.2
    • jpush-client 升级至 3.5.5
    • jiguang-common 升级至 1.1.12
    • bce-java-sdk 升级至 0.10.185

# v2.5.7.10

  1. Skywalking 版本升级至 8.8.0
  2. 修正 docker-compose 配置错误问题
  3. okhttps 升级至 3.3.1

# v2.5.7.0

  • 重大更新

    1. Spring Boot 升级至 2.5.7
  • 其它更新

    1. 优化 Spring Cloud Gateway 响应体分段传输代码。修复在响应体特别大的情况下,Spring Cloud Gateway 读取响应体出错问题。
    2. 优化 Linux 和 Windows 两个版本的 docker-compose 脚本,修正脚本配置错误以及镜像引用错误。
    3. 优化部分后端响应的错误信息,让错误提示信息更加准确以及更加友好
    4. 优化前端登录页面部分错误信息提示展示方式。
    5. 修复前端登录页面密码输入错误后,再次发送请求不执行的问题。

# v2.5.6.60

  • 重大更新

    1. Spring Cloud Alibaba Sentinel 升级至 1.8.2
    2. 扩展改造 Spring Cloud Alibaba Sentinel,实现应用上报的 Metrics 持久化存储到 Influxdb 时序数据库中,支持反向将 Sentinel 流控配置信息以配置文件的形式持久化存储至 Nacos 中。时序数据存储基于 Influxdb 1.X 版本实现,默认使用原有内存方式存储数据,可通过配置参数动态开启或关闭 Influxdb 和 Nacos 存储机制。
    3. 全面使用扩展的 Sentinel Dashboard 进行限流、熔断、降级等管理。扩展的 Sentinel Dashboard 已封装为 Docker 镜像,并上传至 Docker Hub,可通过命令 docker pull herodotus/sentinel-dashboard:1.8.2(latest) 使用。Sentinel、Influxdb、Nacos 等相关内容均支持动态参数配置。
    4. 新增 TICK 开源监控产品套件 Telegraf、InfluxDB、Chronograf、Kapacitor 支持,新增 Influxdb 集成模块,补充平台时序数据存储、管理能力以及拓展更多维度的运行监控和数据展现能力。提供默认配置文件及 docker-compose 脚本。
    5. 新增 Linux 相关操作系统下使用的 docker-compose 脚本,同时提供 Linux 和 Windows 两种系统 docker-compose 脚本供选择使用。
  • 其它更新

    1. 修正 Docker 打包参数错误,解决 Docker 打包过程中无法定位服务 jar 文件问题。
    2. 前端 Vuetify 版本升级至 2.6.0
    3. 前端工程升级大量依赖包版本,重新编译生成组件库

# v2.5.6.50

  • 重大更新
    1. 重构平台 Engine 代码,提取并新建 Cache、 Web、 Message 等代码模块。代码逻辑更内聚、模块职责更清晰。规避由于代码包以及模块间过度依赖,而导致模块使用过程中必须通过排除依赖或排除注入才能正常使用模块的问题。从根本上根除,由于过度依赖导致 spring-integration、spring-actuator 等组件在不受控的状态下启动或检查额外依赖组件问题。
    2. 增加 Sentinel 配置持久化机制。默认使用 Nacos 进行配置持久化存储与更新。
    3. 原 Management 服务名称变更为 Monitor,独立出 Management 服务作为平台各项配置统一管理服务。
    4. Spring Boot Admin 升级至 2.5.4 版本

# v2.5.6.40

  1. 前端工程支持 docker-compose 打包,进行容器化部署。集成 Nginx,支持 gzip 压缩,提升页面首次加载效率。
  2. 解决 Vue 工程打包部署至 Nginx,favicon.ico 图标报 404 错误
  3. 优化 Management 服务 Docker 打包逻辑,修复 Spring Boot Admin 混入 Skywalking 监控逻辑问题。
  4. 修复 Spring Boot Admin 在正式环境下,依赖的 spring-boot-starter-actuator 主动连接 Redis 问题。
  5. 优化 docker-compose 脚本,补充 BPMN 服务运行脚本。
  6. 优化 Logstash 日志收集内容格式,修复 Logback 会创建多个 Logback 上下文导致冲突的问题
  7. 补充 Nacos 2.0.3 数据库初始化脚本,删除低版本无用脚本。
  8. docker-maven-plugin 升级至 0.38.0
  9. Vuetify 升级至 2.5.14。

# v2.5.6.30

  1. 修复单体版代码依赖错误问题。单体版补充 Camunda 工作流功能。
  2. 优化代码包结构,外部依赖应用提取为单独包结构,方便代码管理及维护
  3. 增加对象存储(OSS)模块,开放 Minio 对象存储功能,支持注解@EnableXXX 条件开启和关闭。
  4. 优化日志全链路跟踪信息,在 ELK 日志中心存储的结构。让日志聚合分析更加清晰准确。
  5. 优化数据库初始化数据脚本。
  6. Hutool 升级至 5.7.16
  7. 前端工程升级依赖包版本,Vuetify 升级至 2.5.13,重新编译组件库。

# v2.5.6.20

  • 后端更新

    1. 修复 Gateway 网关服务,在生产环境下,关闭 SpringDocSwagger ,Bean 注入不正确问题。
    2. 优化 Gateway 网关服务发现服务动态接入服务 Swagger 文档监听器配置,通过配置动态关闭,在生产环境下不再开启。
    3. 单体版应用默认端口修改为 8847,与微服务版 Gateway 一致,方便前端接入
    4. 升级依赖包版本:
      • Redisson 升级至 3.16.4
      • Okhttps 升级至 3.3.0
      • weixin-java-miniapp 升级至 4.2.0
  • 前端更新

    1. 优化组件库中,各个组件的配置以及导出逻辑,解决在生产模式下,组件库中组件显示不正确问题。
    2. 对生产模式下,Vue 工程打包进行深度性能优化。
    3. 对打包生成的各类资源进一步压缩,降低资源文件大小。
    4. 依赖包拆分变更为使用动态配置,编译时将所有依赖包都动态拆分为独立 js 文件,无须再根据分析结果手动进行拆分配置,极大地降低 Vue 默认打包文件的大小,解决首屏加载时间过长问题。
    5. 修复前端工程打包之后,部署至 Nginx 或 Express 页面空白或显示不正确问题。
    6. 解决 Vue 工程打包,index.html 文件丢失问题。
    7. 升级大量依赖包版本,重新编译库

# v2.5.6.10

  • 重大更新

    1. Spring Boot Admin 升级至 2.5.4
    2. Camunda Open Api 升级至 7.16.0
  • 其它更新

    1. 修复 Camunda Open API 在 Swagger 中,无法正常显示问题。
    2. 删除本地静态文档,后续请使用在线文档进行查阅。
    3. 优化在线文档显示,增强在线文档可读性与易读性。
    4. 增加 Jenkins 持续集成组件部署配置
    5. 前端工程升级大量依赖包,重新编译生成组件库

# v2.5.6.0

  1. Spring Boot 版本升级至 2.5.7
  2. 优化自定义多级缓存,对不同的 JPA 实体(数据表)设置不同的缓存时间,支持使用 Spring Boot Yml 配置,。支持 Duration 时间表达式,配置更灵活方便,提升自定义多级缓存的可控性。
  3. 使用基于 Caffeine 和 Redis 的多级缓存,实现 Mybatis 自定义二级缓存,让 Mybatis 的数据缓存也可以支持分布式,同时降低数据缓存频繁访问 Redis 问题。

# v2.5.5.70

  • 重大更新

    1. 在现有架构基础之上,集成 Redisson 客户端。与 Spring Data Redis 同时使用,支持 Redisson 与 Lettuce 或 Jedis 共存。
    2. 重构核心包 eurynome-cloud-data 内主要 Configuration 代码。让各个 Configuration 职责更清晰,代码更内聚,更加便于理解,使用及扩展。
    3. 增加 WebSocket 核心代码模块,全面使用 STOMP 上层协议,支持 WebSocket 集群 Session 共享,信息广播及点对点发送,在线统计,可方便拓展断开重连,心跳机制。
  • 其它更新

    1. 前端工程升级大量依赖包版本,重新编译生成组件库
    2. SpringDoc 升级至 1.5.12
    3. Hutool 升级至 5.7.15
    4. JustAuth 升级至 1.16.5

# v2.5.5.60

  1. 整合职责相近代码包,删除 eurynome-cloud-common 代码包,让各个代码包职责更明晰,逻辑更清楚。
  2. 增加开发环境配置基础知识文档,帮助萌新少走弯路,可以更快地投入到系统的使用和代码研究学习的过程中来。
  3. 依赖组件升级
    • Hutool 升级至 5.7.14
    • JustAuth 升级至 1.6.5
    • Camunda 升级至 7.16.0
    • okhttps 升级至 3.2.0
    • bce-java-sdk 升级至 0.10.179
    • jpush-client 升级至 3.5.3
  4. Camunda 数据库脚本升级至 7.16.0

# v2.5.5.50

  1. 新增 Social Authentication 自定义授权模式方式,替代传统 Filter 过滤器方式,优化手机验证码,微信小程序,第三方认证的集成与 Token 的分派。代码更加简洁易于维护,解决了第三方认证游离于 OAuth 2 管控体系之外的问题。
  2. 本着“高内聚,低耦合”的原则,调整代码,优化代码分包。提升代码分包的合理性,降低各代码包之间的耦合性。
  3. 清除大量无用代码。
  4. 前端代码升级大量依赖包版本,重新编译库。
  5. 新增 Social Authentication 授权模式配置功能。
  6. 回滚 compression-webpack-plugin 组件版本,解决高版本运行错误问题。
  7. 补充在线文档 IDEA 使用常见问题章节。
  8. 解决 MySQL 数据更新脚本数据类型不兼容问题

# v2.5.5.40

  1. 简化 OAuth2 资源服务器 ResourceServerConfigure 配置,代码更简洁规范。
  2. 进一步融合 OAuth2 错误体系,解决 OAuth2 部分错误提示与系统自定义错误体系不一致,不融合的问题。
  3. 解决包含路径参数的接口,可以跳过鉴权机制直接访问问题
  4. 解决人员与用户 @OneToOne 映射,由 Jackson 反序列化实体导致 JPA 保存或修改失败问题。
  5. 优化接口统一信息反馈类别,新增空数据信息结果反馈,让信息反馈内容更加友好
  6. 补充常用正则表达式库
  7. 优化人员管理,角色管理关键信息异步校验功能,解决人员管理,使用枚举作为数据类型类型导致的修改数据错误问题。
  8. 新增为组织机构人员分配默认用户功能。
  9. 新增系统默认角色配置功能。支持机构人员,手机验证码,微信小程序,QQ,微博,百度,微信开放平台,微信公众号,企业微信二维码,企业微信网页,钉钉,钉钉账号,阿里云,淘宝,支付宝,Teambition,华为,飞书,京东,抖音,今日头条,小米,人人,美团,饿了么,酷家乐,喜马拉雅,码云,开源中国,Github,Gitlab,Stackoverflow,Coding,谷歌,微软,脸书,领英,推特,亚马逊,Slack,Line,Okta,Pinterest 等多种途径或第三方登录默认角色的配置。

# v2.5.5.30

  1. Debezimu 升级至 1.7.0.Final
  2. 优化统一结果返回实体封装,使用更加便捷。
  3. 使用统一结果返回实体新接口,替换已有代码。
  4. 优化接口数据前后端加密传输机制,全面支持使用 Spring @RequestParam 注解接口数据加解密。
  5. 统一使用 @RequestParam 注解接口加解密方式,改进 OAuth 2 密码模式,用户名,密码参数加密,不再使用传统 Filter 方式,代码更加简洁规范清晰。
  6. 重新调整 WebMvc 配置核心代码,依赖关系更合理,代码逻辑更清晰。
  7. 优化完善前端用户管理相关功能。
  8. 增加基于 VeeValidate 组件的服务端异步校验机制

# v2.5.5.20

  • 重大更新

    1. Spring Boot Admin 升级至 2.5.2
    2. 基于最新版 Axios 定义,所有 Delete 接口,修改为路径参数形式
    3. 混合 RSA(非对称) 和 AES(对称加密) 算法,基于自定义注解,设计接口数据前后端加密传输机制。
    4. 设计自定义数据传输 Session,规避 Vue Session 变化问题。基于自定义 Session,实现 AES KEY 动态生成,加密传输,一人一钥的安全机制,提高系统安全性。
    5. 实现 OAuth 2 密码模式,用户名,密码参数加密传输。
  • 其它更新

    1. 修复 Spring Validation 错误信息不会抛出,循环引用问题。
    2. 前端 Utils 工具包,新增加密算法模块
    3. 基于最新版 Axios 定义,优化 Axios 请求通用代码
    4. 实现前端 node-rsa 包 RSA 算法,与后端 Hutool SecureUtil RSA 算法互相加,解密。
  • 依赖包版本升级

    1. Guava 升级至 31.0.1-jre
    2. SpringDoc 升级至 1.5.11
    3. Mybatis Plus Generator 升级至 3.5.1
    4. 前端工程升级大量依赖包

# v2.5.5.10

  1. 解决 OAuth2 自带业务表通过 Spring Data JPA 自动创建,字段名变化为小写问题。
  2. 完善前端 Camnuda 工作流编辑器组件功能。
  3. 完善前端部分功能,解决已知问题。
  4. 更新在线文档,补充前端工程详细介绍。

# v2.5.5.0

  • 重大更新

    1. Spring Boot 升级至 2.5.5
    2. Spring Cloud 升级至 2020.0.4
    3. 大幅改进系统数据库表和数据初始化方式,实现 OAuth2 业务表自动创建,取消使用脚本的创建方式,提升便捷性
    4. 新增人力资源管理相关功能,功能和模型设计实现与 Camunda 用户体系统一。便于用户体系数据的同步和管理。
    5. 基于 rollup,lerna 和 yarn workspaces,以 monorepo 方式重新构建前端工程。新版前端工程是以 Vue2,Typescript 开发的,组件库式的前端功能。代码更清晰,组件化和重用化程度更高。为升级至 Vue3 做前序铺垫。
  • 其它更新

    1. 解决 Skywalking UI 连接 Skywalking OAP Server 出错问题。
    2. 修改防刷机制的默认配置
    3. 重新梳理错误体系,优化错误信息,错误提示更加友好。
    4. 解决单体版对 Basic 模式认证跨域拦截的问题
    5. 实现 OAuth2 Password 模式部分参数加密传输方式,提升系统安全性。
    6. 修复老版本前端工程已知问题。
    7. 在线文档同步更新。
  • 依赖包版本升级

    1. Hutool 升级至 5.7.13
    2. okhttps 升级至 3.1.5
    3. weixin-java-miniapp 升级至 4.1.9.B
    4. JustAuth 升级至 1.16.4
    5. jasypt-spring-boot-starter 升级至 3.0.4
    6. mybatis-plus-boot-starter 升级至 3.4.3.4
    7. dysmsapi20170525 升级至 2.0.5

# v2.5.4.140

  1. 优化 Antisamy 通用代码,提升 Xss 分析西能,去除严格拦截导致的 JSON 解析错误。
  2. 解决本地权限缓存并发写入冲突,抛出 com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException 问题。
  3. 解决 OAuth Starter 引入 Upms Logic 重复导入权限数据问题。
  4. 修改默认验证码字体配置
  5. 去除无用依赖包
  6. 新增 MySQL57 数据库切换配置。更新 Nacos 配置 SQL 脚本,增加最新导入包。
  7. 新增 Camunda 官方脚本
  8. 优化数据导入脚本

# v2.5.4.130

  1. 修复单体版 Knife4j 依赖错误问题
  2. 修复单体版配置错误问题
  3. 增加 Gitee 流程模版
  4. 修复 OAuth2 自定义 confirm_access.html,error.html,login.html 页面,数据类型编译错误。
  5. 优化自定义页面显示内容,增加 Exception StackTrace 输出
  6. 修复 XssUtils 校验出错问题。
  7. 优化 ResourceServer 安全配置
  8. 修复 OAuth2 四种模式中授权码模式(Authorization Code),隐式授权模式(Implicit Grant)模式出错问题。
  9. 解决前端控制台出错问题
  10. 更新在线文档,增加 OAuth2 四种模式验证说明

# v2.5.4.120

  1. 使用 Springdoc 全面替换 Springfox,配置更灵活,配置更多样
  2. Swagger 文档注解全面升级为支持 OpenAPI
  3. 使用 Springdoc 重构文档聚合功能,支持聚合查阅和服务独立查阅。Knife4j 同步升级至 3.0.3 版本。
  4. Swagger 文档默认支持 OAuth2 Password,Authorization Code 两种认证流程
  5. 整合 Camunda Engine Rest 与 Swagger,实现 Camunda API 接口文档查阅,支持聚合查阅。
  6. 修复 Bpmn 服务默认启动 Tomcat 问题。
  7. 升级前端依赖包版本
  8. 更新 Nacos 配置文件及导入包
  9. 更新在线文档

# v2.5.4.110

  1. 重新构建项目文档体系,使用纯静态页面,替代已有 Gitee Wiki 文档。优化文档结构,提升文档阅读体验。提供全文搜索,便于文档查阅。支持文档独立部署,方便使用者搭建独立的文档服务查阅。
  2. 更换 Nacos 导入包,解决上一版本导入包导入重复问题
  3. Update Readme

# v2.5.4.100

  1. 重新梳理所有 Nacos 配置,提取共性配置至统一配置文件,优化配置属性结构和归类,便于参数修改,降低维护复杂度
  2. 重构数据库相关 Nacos 配置,优化 Maven,Nacos 多环境配置与数据库切换的联动性,让数据库切换所需修改的参数更少,切换更顺滑
  3. 解决 eurynome-cloud-monitor 编译出现的 Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on 4. project XXXX: Input length = 1 -> [Help 1]错误
  4. 解决 Redis 设置密码后,无法连接出现 NOAUTH Authentication required 错误
  5. 增加 MySQL 数据库默认数据初始化脚本
  6. 增加最新版 Nacos 配置导入包
  7. 修复前端 UI 申请 APPKEY 页面错误
  8. 修复前端 UI 切换至单体版后,连接错误问题。
  9. 升级前端 UI 依赖包版本。
  10. 同步更新相关文档,补充新建子模块,常见问题等部分文档。

# v2.5.4.90

  1. 使用 Mybatis Plus 全面替换已有 Mybatis,与 Spring Boot Data JPA 共存且支持同时使用。使用任何技术都可以无障碍的进行业务代码编写。
  2. 整合 Mybatis Plus 和 Spring Boot Data JPA 更换数据库配置属性,一处修改即可以同时修改 Mybatis Plus 和 Spring Boot Data JPA 使用数据库类型。
  3. 新增接口 XSS 脚本攻击过滤机制,同时支持请求参数和 JSON 请求体过滤。采用 Ebay XSS 过滤模型,进一步提升防控能力。
  4. 新增 SQL 注入攻击防控机制。
  5. 解决 eurynome-cloud-gateway 和 eurynome-cloud-monitor 服务启动调用 Kafka 问题。
  6. 解决 CacheConfigException 错误问题,在错误体系中增加配置参数不合理提醒,让信息反馈更加友好。
  7. 解决 Spring Boot Admin 不支持 Java 8 时间类型问题。
  8. 解决 Spring Boot Admin 不显示 Git Properties 信息问题。
  9. 解决修改 Redis 密码配置生效问题
  10. 梳理 dependencies 依赖包,对已有依赖进行进行更合理的分类,更加便于依赖包的找寻和维护。
  11. 升级依赖包版本
    • spring-boot-admin 升级至 2.5.1
    • git-commit-id-plugin 升级至 4.9.10
    • docker-maven-plugin 升级至 0.37.0
    • hutool 升级至 5.7.10
    • okhttps 升级至 3.1.4
    • JustAuth 升级至 1.16.3
    • aliyun-java-sdk-core 升级至 4.5.25
    • baiducloud-java-sdk 升级至 0.10.175
    • aliyun-java-sdk-oss 升级至 3.13.1
    • cn.jpush.api 升级至 3.5.2
  12. 规范项目文档,增加系统部署,数据库切换等多部分内容
  13. 增加 Nacos 配置导入包,在没有自动部署功能支持的情况下,也可以更加方便的导入配置。
  14. 替换 UI SweetAlert 过期方法,解决弹出框不会关闭问题
  15. 解决授权码模式(authorization code)验证码被拦截问题

# v2.5.4.80

  • 合并 eurynome-cloud-curd 包和 eurynome-cloud-rest 包,减少包数量,提升代码维护便捷度。
  • 增加接口幂等处理机制,防止重复提交。增加接口防刷限制机制,防止接口恶意频繁刷新。
  • 接口幂等和防刷机制,均支持全局配置控制,同时提供@Idempotent 和@AccessLimited 注解进行灵活的,个性化的配置。
  • 接口幂等和防刷机制,缓存标记采用分布式多级缓存进行存储,将低单一访问 Redis 带来的访问压力,同时支持多实例数据多级缓存本地数据同步。
  • 接口幂等和防刷机制,所涉及标记缓存时间配置全部统一支持 Duration 时间格式,简化配置参数,提升配置便捷度。同时,优化平台错误响应体系,返回更加友好的错误信息提示。
  • 定义 Stamp 签章体系,采用统一体系,对 SMS 短信验证码,JustAuth State,环信 Token 以及接口幂等和防刷等需临时存储标记相关应用进行统一实现。同时,采用分布式多级缓存进行数据存储,降低单一访问 Redis 压力。

# v2.5.4.65

  • 优化 Skywalking 打包内容,直接使用 Skywalking 官方容器
  • 补充 RequestMappingScanner 对应事件代码,解决单体版扫描 Rest API 接口后不会存储问题
  • 优化数据库脚本以及数据库表结构和默认数据自动初始化机制。解决在第一次运行时,Spring Data JPA JDBC 初始化机制与 Hibernate 初始化机制冲突问题。
  • 在 Gitee Wiki 中,增加数据库初始化说明文档
  • 删除部分预留代码,减少暂时不必要的代码对使用者带来的误导。
  • 前端 UI 中,增加部分配置,使用者可以通过注释部分配置,让前端 UI 快速支持单体版。

# v2.5.4.60

  • Spring Boot 版本升级至 2.5.4
  • Skywalking 版本升级至 8.7.0
  • 微服务日志输出至日志中心格式。
  • 增加 Swagger 注入条件注解,优化日志中心相关配置采用统一常量控制
  • 增加自定义 Property"助手"数据统一自动编译生成配置,无须额外设置,在 IDE 中编辑配置属性时可自动弹出提示
  • 修复 Kafka 配置不生效问题。
  • 解决单体版自动启动 Kafka 问题。
  • 暂时关闭单体版 Swagger,规避 Swagger 会自动启动 Kafka 问题。

# v2.5.4.55

  • 整合代码,将 constant 包代码整合至 common 包中。删除 constant 包。
  • 完善 Rest 接口校验机制,以及相关自定义错误码
  • 统一 spring boot validation 错误信息,将其整合至平台统一响应实体 Result 中。无须在各个 Rest 接口中,添加 BindingResult 参数。

# v2.5.4.50

  • 优化服务本地权限存储逻辑,解决权限属性数据重复存储,不会替换问题。
  • 重新梳理 Spring Security OAuth2 方法级表达式动态权限鉴权逻辑,摒弃无用的权限验证 Voter 逻辑,使用统一逻辑实现@PreAuthorize 注解权限的全面动态可配置化。统一平台接口- 白名单,IP 地址白名单,以及 Scope 绑定 URL 的管理。
  • 重构 UserDetails 用户信息组织逻辑,使用 Spring Security 标准代码,替换自定义逻辑代码,降低代码冗余,与自研方法级动态权限完美融合。
  • 优化平台权限从 Controller 扫描,汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构,UPMS 自身应用需求,分布式架构以及分布式各服- 务多实例等各种应用场景。
  • 修复部分已知 BUG,将部分代码中日志由@Slf4j 改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时 Idea 提醒代码不一致问题。
  • 清理系统无用代码。
  • 增加方法级动态权限演示动图,更新 Readme

# v2.5.4.40

  • 优化自定义多级缓存,实现可以统一设置 allowNullValues 值,并解决存储空值时卡死问题。
  • 重新梳理,优化系统权限从 Controller 扫描,汇总存储至服务器以及动态修改后最终回传同步至服务的整理逻辑以及事件流。完美支持单体式架构,UPMS 自身应用需求,分布式架构以及- - 分布式各服务多实例等各种应用场景。
  • 增加 Kafka 条件注入配置,将条件转换为@ConditionalOnXXX,方便管理和维护。避免单体版应用相关依赖过度依赖 Kafka 而导致的无法启动
  • 修复部分已知 BUG,将部分代码中日志由@Slf4j 改回传统日志编写方式,一方面提高编译效率,另一方面解决源代码包查看时 Idea 提醒代码不一致问题。
  • 去除传统 Kafka Producer 通用类,改为统一使用 Spring Cloud Bus

# v2.5.4.30

  • 重新调整 Property 配置,规范 Property 定义。修改相关配置
  • 调整包,以及包相关依赖关系。让包之间的依赖更加合理
  • 增加 Kafka 配置,增加@KafkaListener 动态控制,以避免在不需要的情况下 Kafka 的自动开启。
  • 调整部分常理代码位置,常量代码基本调整完成
  • 将原有自定义条件,转换为@ConditionalOnXXX 注解,让使用更加便捷
  • 日志中心是否开启状态,改为@ConditionalOnLogCenterEnabled 注解

# v2.5.4.20

  • 本地权限缓存更换为 JetCache,为服务多实例的权限扫描和存储提供更好的支持
  • 将数据访问策略从 Conditional 类,升级为 Conditional 注解,使用更加便捷
  • 调整包依赖关系,新建 assistant,constant 包,删除 message 包。
  • 逐步将平台中各类非独有常量移入 constant 包方便管理和修改
  • 采用 Spring Boot Event 和 Spring Cloud Bus Event 机制重构接口收集逻辑。支持单体架构,UPMS,分布式多实例等不同场景接口扫描的特殊需求
  • 优化 Docker Compose 配置,使用 Debezium Kafka 替换已有 kafka,以支持 Debezium 应用
  • 删除无用代码

# v2.5.4.10

  • 全网首个实现 Spring Security 动态 URL 权限与注解表达式权限有机整合,并且可以动态配置的微服务框架。
  • 全面支持方法级权限控制,Security OAuth2 permitAll 等方法权限以及@PreAuthorize 注解权限,均支持动态配置。目前支持以下权限的动态配置: · hasRole · hasAnyRole · hasAuthority · hasAnyAuthority · hasIpAddress · #oauth2.clientHasRole · #oauth2.clientHasAnyRole · #oauth2.hasScope · #oauth2.hasAnyScope · #oauth2.hasScopeMatching · #oauth2.hasAnyScopeMatching · #oauth2.denyOAuthClient · #oauth2.isOAuth · #oauth2.isUser · #oauth2.isClient
  • 彻底解决使用 withObjectPostProcessor 方式,会覆盖外部匹配规则问题。
  • 真正实现 Scope 权限与 URL 权限的关联与管控,拓展 OAuth2 默认只进行 Scope 简单对比的实现逻辑。
  • 实现动态权限配置的多服务同步。
  • 暂时去除 JetCache,全面使用自研支持 Hibernate 二级缓存的多级缓存。
  • 修改配置文件配置
  • 删除无用代码

# v2.5.3.60

  • Nacos 版本升级至 2.0.3
  • Hutool 版本升级至 5.7.6
  • 修改部分代码名称
  • 修改配置文件配置参数

# v2.5.3.50

  • 将所有服务包括 UAA 的权限存储,改为本地和认证中心,多级分布式存储和验证。
  • 增加策略模式,支持认证中心权限数据直连和远程消息两种存储方式动态切换。
  • 改进自研多级缓存,解决 Hibernate 二级缓存进行数据缓存时产生的事务锁问题。
  • 删除无用代码
  • 为动态 Scope 权限做铺垫。
  • 全面支持方法级权限控制。

# v2.5.3.40

  • Spring Boot 版本升级至 2.5.4
  • 采用新的 Hash 算法,缩短权限标识;简化用户权限信息,以缩短平台生成 JWT Token 的长度
  • git commit 插件由 pl.project13.maven » git-commit-id-plugin 改为 io.github.git-commit-id » git-commit-id-maven-plugin。
  • git commit 插件升级至 5.0.0 版本

# v2.5.3.30

  • 重构用户中心用户人员体系,将平台用户,第三方社交登录用户,人事管理用户以及 Camunda 工作流用户体系无缝融合。
  • 人事管理体系人员唯一化管理,同时支持企业,党组,团青等多种类型的机构类型,便于企业人事管理。
  • 基于 Debezium 实现数据库变更数据捕获,实现人事管理信息与 Camunda 工作流用户实时同步。
  • 树形结构通用代码实现逻辑与 Hutool Tree 一致,因此采用 Hutool Tree 全面替换已有的 Tree 代码。
  • 删除不再使用的通用类代码。
  • 修改说明文档

# v2.5.3.10

  • 自研基于 Caffeine 和 Redis 分布式两级缓存
  • 完美支持 JPA Hibernate 二级缓存
  • 完美支持各类查询数据缓存以及 JPA @ManyToMany, @ManyToOne 等关联查询。
  • 实现基于 Caffeine 的 Hibernate 二级缓存,可与自研两级缓存快速切换,仅使用本地缓存。
  • 极大的简化了原有自研的基于 JetCache 的缓存使用方式。
  • 保留 JetCache,可根据实际使用需要使用。
  • 已有服务接口相关代码,均已更新自研分布式两级缓存模式。

# v2.5.2.40

  • Redis Value 默认序列化工具修改为 Jackson2JsonRedisSerializer
  • jetcache valueEncoder 和 valueDecoder 修改为 kryo
  • 部分代码的日志改为传统方式,不再使用@Slf4j 注解
  • 抽象实体共性属性,拓展基础实体,以支持 JPA 视图类的 ORM 映射。
  • 重构基础 Service,将基础 Service 的读操作与其它操作分离,以支持“视图”相关 Service 的编写。
  • 重构基础 Controller,将基础 Controller 的读操作与其它操作分离,以支持“视图”相关 Controller 的编写。
  • 将 Hibernate Validator 替换为 spring-boot-starter-validation
  • 删除 JPA 过期方法封装

# v2.5.2.30

  • Spring Boot 版本升级至 2.5.2
  • Spring Boot Admin 版本升级至 2.4.2
  • 升级其它相关依赖版本

# v2.5.2.25

  • Skywalking 升级至 8.6.0

# v2.5.2.20

  • Spring Boot 升级至 2.5.1
  • Camunda 升级至 7.15.0
  • 其它依赖包版本升级
  • Swagger 回滚至 2.9.2,解决 Swagger 接口测试相关问题以及 Knife4 Authorize 不显示问题
  • 结构性调整平台相关配置属性

# v2.5.1.0

  • Spring Boot 大版本升级至 2.5.0

# v2.4.5.60

  • 修改负载均衡不生效问题
  • 调整包依赖关系
  • 升级版本

# v2.4.5.48

  • 正式发布开源版本
上次编辑于: 2022年4月30日 22:18
贡献者: 码匠君