3.0.X 更新日志

码匠君大约 13 分钟

3.0.X 更新日志

v3.0.2.1

  • 主要更新
    • [升级] Spring Cloud 版本升级至 2022.0.1
    • [升级] Spring Boot Admin 版本升级至 3.0.0
    • [升级] Spring Cloud Tencent 版本升级至 1.8.5-2022.0.1
    • [升级] Skywalking Agent 版本升级至 8.14.0
  • 其它更新
    • [新增] 增加本项目涉及的 Skywalking 常用 Agent Plugins,方便生产环境直接打包使用。
    • [修复] Dashboard 页面,在切换 Tab 后,echarts 宽度不再自适应,显示成 100px 问题。
  • 依赖更新
    • [升级] Okhttps 版本升级至 4.0.1

v3.0.2.0

  • 主要更新
    • [升级] Spring Boot 版本升级至 3.0.2 fix:#I6B4UT
    • [升级] Spring Boot Admin 版本升级至 3.0.0-M9 fix:#I6B4WO
    • [升级] Spring Cloud Tencent 版本升级至 1.8.4-2022.0.0 fix:#I6B4WM
    • [重构] 重构 Athena 工程模块结构,简化该工程多模块结构,删除多余无意义的结构示例性结构,各模块的用途及含义更简洁清晰
  • 其它更新
    • [新增] 针对某一类权限校验并不严格的接口,新增只校验是否认证、不校验授权的权限校验策略,以提高权限校验的灵活度,降低权限配置维护的工作量。
    • [新增] 只校验是否认证、不校验授权的权限校验策略配置
    • [修复] 修复极端情况下,权限缓存数据丢失,接口请求将跳过权限验证的潜在安全问题。
    • [修复] 修复 Spring Cloud Gateway 长期运行后出现 io.netty.util.internal.OutOfDirectMemoryError 问题。fix:#I6AZJX (ISSUED by 狂练胸肌李大懒)
    • [修复] 修复遗漏 Spring Authorization Server 0.4.0 以后新增字段 authorized_scopes 问题
    • [修复] 修复自定义授权模式使用 Refresh Token 重新申请 Token 抛错问题。fix:#6
    • [优化] 将默认 WebSocket 连接地址设置为 permitAll 权限,跳过资源服务器检测,由 WebSocket 模块自主进行权限校验。
    • [优化] 基于 axios 最新版本 typescript 定义,优化前端 @herodotus/core 模块 axios 核心代码,避免编译过程中出现类型校验错误。
  • 依赖更新
    • [升级] 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
    • [升级] jetcache 版本升级至 2.7.3
    • [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.681
    • [升级] alipay-sdk-java 版本升级至 4.35.37.ALL

v3.0.1.0

  • 主要更新
    • [升级] Spring Boot 版本升级至 3.0.1
    • [升级] Spring Cloud Alibaba 版本升级至 2022.0.0.0-RC1
    • [升级] Spring Cloud Tencent 版本升级至 1.8.2-2022.0.0
    • [升级] Nacos 版本升级至 2.2.1-RC
    • [升级] MyBatis Plus 版本升级至 3.5.3.1
  • 新增特性
    • [新增] 新增融合 Stomp WebSocket、私信、公告等功能的独立消息服务。支持前端与后端采用 WebSocket 和 REST 接口互发消息。
    • [新增] 新增私信、公告发送,及新消息提醒、基于私信对话浏览信息功能
    • [新增] 新增手工解析 Token 信息机制,同时支持 JWT Token 和 Opaque Token。
    • [新增] WebSocket 模块,支持 WebSocket Token 鉴权及登录用户信息解析功能
    • [新增] 新增实时在线用户统计及同步实时刷新功能
    • [新增] 前端新增基于用户 ID,动态生成默认 Avatar 功能。
    • [新增] 前端新增独立个人设置页面,包含私信、公告查阅功能
    • [新增] 前端采用新版 Stomp JS 实现 WebSocket 支持。
  • 其它更新
    • [优化] 去除额外增加的 JetCache 自动注入配置代码,改为使用新版 JetCache 自身配置。
    • [优化] 在 Token 中增加额外用户信息,方便前端使用,减少重复查询。
    • [优化] 调整部分模块 DTO 代码放置目录
    • [优化] 恢复 Spring Cloud Alibaba 相关代码,删除 Sentinel 临时支持新版 Spring Boot 代码。
    • [优化] 将默认基础设施修改为 Alibaba,删除 Spring Cloud Alibaba 基础设施环境中 Zookeeper 服务发现配置。
    • [重构] 删除 engine-protect 模块,相关代码合并至 engine-rest 模块中
    • [修复] 修复 XSS Request 包装器 Parameter 方法错误,导致无法获取参数错误。
    • [修复] 修复 Anti 萨摩耶 XSS 防护代码额外增加的标识符引起的 WebSocket Token 无法正确解析问题。
    • [修复] 修复因 Hibernate 6 代码变化,导致基于 JetCache 自定义 JPA 二级缓存分页查询数据不正确问题。
    • [修复] 修复前端异常提示框弹出后,在不同时机下,特别是调试阶段,vue-router 实例不存在导致的页面不会刷新问题。
  • 依赖更新
    • [升级] jetcache 版本升级至 2.7.2
    • [升级] hutool 版本升级至 5.8.11
    • [升级] spring-boot-admin 版本升级至 3.0.0-M8
    • [升级] spring-security-cas 版本升级至 5.8.1
    • [升级] springdoc 版本升级至 2.0.2
    • [升级] 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
    • [升级] alipay-sdk-java 版本升级至 4.35.9.ALL
    • [升级] com.baidu.aip 版本升级至 4.16.13

v3.0.0.0

  • 重要更新

    • Spring Boot 版本升级至 3.0.0
    • Spring Cloud 版本升级至 2022.0.0
    • Spring Authorization Server 版本升级至 1.0.0
    • Spring Cloud Tencent 版本恒机制 1.8.2-2022.0.0
    • Spring Boot Admin 版本升级至 3.0.0-M6
    • Spring Doc 版本升级至 2.0.1
  • 其它更新

    • [重构] 根据新版 Spring Authorization Server 代码结构及类命名,对 Spring Authorization Server 相关代码进行重构适配。
    • [重构] OAuth2 Application 实体类增加 authorization code time-to-live 字段。
    • [重构] OAuth2 Application 中 accessTokenTimeToLive、refreshTokenTimeToLive、authorizationCodeTimeToLive 属性的默认值,修改为与 Spring Authorization Server TokenSettings 一致。
    • [重构] 重构 Spring Authorization Server OAuth2 相关代码分包和模块结构,逻辑更内聚、职责更清晰、模块引用依赖更简洁
    • [重构] 使用 SpringSecurity 6 最新代码逻辑,重新实现接口鉴权。
    • [重构] 重构基于 Redis 的微服务 Session 共享配置代码,采用更合理的配置实现分布式微服务 Session 共享
    • [新增] 新增 Token Settings 授权码模式 Code 有效时间字段。
    • [新增] 在 Nacos 中增加 logback 配置,新增服务可外部化动态读取 logback.xml 配置模式。以便于更加灵活的进行日志输出配置。
    • [新增] 外部配置 logback.xml 中,增加 Skywalking 日志上报、ELK 日志中心日志收集、Skywalking TraceId 等支持。同时提供常规及 MDC 两种配置。
    • [新增] 在统一响应实体 Result 增加 TraceId 信息,在开启 Skywalking Tracing 的情况下,可在返回结果中,统一增加 TraceId,方便跟踪和调试。
    • [变更] 服务注册临时改为使用 zookeeper。
    • [变更] 数据库初始化脚本中的初始数据,与 Spring Authorization Server 0.4.0 最新代码适配
    • [变更] 默认 JDK 版本及 pom.xml 中 <java.version> 指定为变更为 JDK 17。
    • [变更] Docker 默认 JDK 基础镜像变更为 JDK 17。
    • [变更] spring.factories 全部替换为新版格式并启用 @AutoConfiguration。原有 ...AutoConfiguration 形式命名配置类,变更为...Configuration 形式命名。
    • [变更] 取消自定义登录页面中使用 Thymeleaf 内置 Reqeust、Session 对象,改用 Model 方式进行传递。
    • [变更] 适配新版本依赖注解引用及代码用法
    • [变更] 删除 Knife4j 相关依赖,后续版本不再提供 Knife4j API 支持。
    • [变更] 不再提供 docker-maven-plugin 支持,去除相关配置
    • [修复] 使用 Feign 调用接口时,上游接口 content_type 会传递至下游,错误的 content_type 导致下游接口调用出错问题。
    • [修复] 在 3.0.0 环境下,Thymeleaf 不再支持 Request、Session 对象调用,导致自定义 Spring Authorization Server 登录页面解析错误
    • [修复] OpenFeign 使用 OkHttp 做基础请求组件时,启动服务抛出对象无法注入错误问题。
    • [优化] 优化 git-commit-id 配置,变更为只在服务类型模块中生成相关信息,提升主工程编译速度
    • [优化] 优化 dependencies 及 pom 配置,去除冗余重复配置,降低 maven 内容的重复化配置。减少不必要的 Maven 插件配置,提升工程代码整体编译效率
    • [优化] 整体调整各类模块 pom build 配置,适当增加冗余重复配置,以支持 Spring Native 编译需要。规避对所有模块进行 Native 编译产生错误问题。
  • 配置变更

    • javax 属性节点全部变更为 jakarta
    • spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults 值修改为 true
    • org.hibernate.dialect.PostgreSQL10Dialect 变更为 org.hibernate.dialect.PostgreSQLDialect
    • Redis 相关配置全部移动到 data 属性节点下
  • 依赖升级

    • [升级] Nacos 版本升级至 2.2.0
    • [升级] wxjava 版本升级至 4.4.6.B
    • [升级] antisamy 版本升级至 1.7.2
    • [升级] redisson 版本升级至 3.19.0
    • [升级] minio 版本升级至 8.4.6
    • [升级] fastjson2 版本升级至 2.0.21
    • [升级] Hutool 版本升级至 5.8.10
    • [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.650
    • [升级] dysmsapi20170525 版本升级至 2.0.23
    • [升级] alipay-sdk-java 版本升级至 4.35.7.ALL
    • [升级] aliyun-java-sdk-core 版本升级至 4.6.3
    • [升级] qiniu-java-sdk 版本升级至 7.12.1
    • [升级] aliyun-java-sdk-green 版本升级至 3.6.6
    • [升级] postgresql 版本升级至 42.5.1
    • [升级] jackson 版本升级至 2.14.1
    • [升级] jasypt-spring-boot-starter 版本升级至 3.0.5

v3.0.0-RC3

  • 主要更新
    • [升级] Spring Cloud 版本升级至 2022.0.0-RC3
    • [新增] Spring Cloud Tencent 熔断、限流、元数据处理支持
  • 其它更新
    • [重构] 前端 API 接口调用,修改为 proxy 代理模式,解决前后端跨域导致前端不创建 Cookie,后端 Session Id 不一致,Session 共享不生效问题。
    • [重构] 调整 Engine 工程模块结构,整合消息模块和 WebSocket 模块。
    • [修复] 修复华为云短信发送请求体类型设置错误
    • [修复] 修复模块编译组件时,vite-plugin-dts 提示找不到第三方模块抛出错误提示问题。
  • 依赖升级
    • [升级] redisson 版本升级至 3.18.1
    • [升级] alipay-sdk-java 版本升级至 4.34.86.ALL

v3.0.0-RC2

  • 主要更新
    • [升级] Spring Cloud Tencent 版本升级至 1.8.1-2022.0.0-RC2
    • [新增] 现有工程新增对 Spring Cloud Tencent 的适配和支持。
    • [新增] 新增 Spring Cloud Alibaba、Spring Cloud Tencent 和 Spring Cloud 原生全家桶微服基础设施适配切换能力,以相对便捷的方式快捷迁移使用 Alibaba、Tencent、Spring 等基础设施环境
  • 其它更新
    • [修复] 解决使用 edge 浏览器并使用 feign,报错 Unexpected char 0x0a(PR by 狂练胸肌的李大懒)
    • [修复] 修复前端唯一性字段在新建、编辑不同状态下校验不准确、状态不合理问题。解决导致编辑状态下唯一性字段数据未修改仍会校验失败问题。
    • [修复] 优化微服务分布式 Session 共享配置,解决共享 Session 不一致问题。
    • [修复] 在 docker 环境下,服务默认选择容器内部 IP 而不会映射本机 IP 问题。
    • [优化] 优化 Spring Authorization Server 认证服务配置,整理代码逻辑、去除冗余重复的配置
  • 依赖更新
    • [升级] springdoc 版本升级至 2.0.0
    • [升级] 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

v3.0.0-RC1

  • 主要更新
    • Spring Boot 版本升级至 3.0.0
    • Spring Authorization Server 版本升级至 1.0.0
  • 其它更新
    • [重构] 重构 Spring Authorization Server 扩展模块,调整代码结构,逻辑定位更清晰。删除无用包。
    • [重构] 使用 SpringSecurity 6 最新代码逻辑,重新实现接口鉴权。
    • [重构] 调整部分 Starter 配置类包路径
    • [变更] 服务注册发现临时改用 zookeeper
  • 依赖更新
    • [升级] spring-security-cas 版本升级至 5.8.0
    • [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.637
    • [升级] alipay-sdk-java 版本升级至 4.34.64.ALL

v3.0.0-M5

  • 主要更新
    • [升级] Spring Cloud 版本升级至 2022.0.0-RC2
    • [修复] 修复使用 Feign 调用接口时,上游接口 content_type 会传递至下游,错误的 content_type 导致下游接口调用出错问题。
    • [修复] 在 3.0.0 环境下,Thymeleaf 不再支持 Request、Session 对象调用,导致自定义 Spring Authorization Server 登录页面解析错误
    • [优化] 优化 Okhttp 与 Feign 整合配置代码
  • 依赖更新
    • [升级] jetcache 版本升级至 2.7.1
    • [升级] redisson 版本升级至 3.18.0
    • [升级] fastjson2 版本升级至 2.0.19
    • [升级] wxjava 版本升级至 4.4.5.B
    • [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.633
    • [升级] alipay-sdk-java 版本升级至 4.34.52.ALL
    • [升级] antisamy 版本升级至 1.7.2
    • [升级] hutool 版升级至 5.8.10

v3.0.0-M4

  • 主要更新
    • [升级] Spring Boot 版本升级至 3.0.0-RC2
    • [升级] SpringDoc 版本升级至 2.0.0-RC1
    • [升级] Skywalking Agent 版本升级至 8.13.0
    • [修复] OpenFeign 使用 OkHttp 做基础请求组件时,启动服务抛出对象无法注入错误问题。
    • [修复] 修复 Spring Cloud Gateway 不兼容低版本 SpringDoc 导致启动出错问题。
    • [修复] 优化 Gateway 请求信息拦截机制,增加对 Feign 内部无权限标记的拦截,修复内部接口被外部直接调用的安全漏洞
    • [删除] 删除 Knife4j 组件依赖,后续版本不在提供 Knife4j 支持。
    • [优化] 优化 SpringDoc 依赖关系及 Swagger UI 包引入。
    • [新增] 在 Nacos 中增加 logback 配置,新增服务可外部化动态读取 logback.xml 配置模式。以便于更加灵活的进行日志输出配置。
    • [新增] 外部配置 logback.xml 中,增加 Skywalking 日志上报、ELK 日志中心日志收集、Skywalking TraceId 等支持。同时提供常规及 MDC 两种配置。
    • [新增] 在统一响应实体 Result 增加 TraceId 信息,在开启 Skywalking Tracing 的情况下,可在返回结果中,统一增加 TraceId,方便跟踪和调试。
    • [变更] 服务注册临时改为使用 zookeeper。
  • 依赖升级
    • [升级] 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

v3.0.0-M3

  • 主要更新
    • [升级] Spring Boot 版本升级至 3.0.0-RC1
    • [升级] Spring Cloud 版本升级至 2022.0.0-M5
    • [升级] Spring Authorization Server 版本升级至 1.0.0-RC1
    • [升级] Spring Boot Admin 版本升级至 3.0.0-M5
    • [升级] git-commit-id-maven-plugin 插件依赖更新
    • [重构] Openfeign HttpClient 配置改用 HttpClient5 配置方式
    • [重构] UUIDGenerator 改为 UuidGenerator
    • [重构] 所有涉及 javax 的代码,重构为适配 Jakarta。
    • [重构] 重构 Spring Authorization Server 扩展模块,调整代码结构,逻辑定位更清晰。删除无用包。
    • [重构] 使用 SpringSecurity 6 最新代码逻辑,重新实现接口鉴权。
    • [重构] 原有 JPA @GenericGenerator 注解全部使用最新支持方式替换
    • [重构] 将 JPA 过时查询缓存标记常量修改为最新常量
    • [重构] spring.factories 全部替换为新版格式
    • [重构] 重构权限数据存储、分发代码,替换原有 Spring Security 5 逻辑。
    • [新增] 临时新增 Sentinel Spring WebMvc Adapter,以解决 当前版本 Sentinel 没有没有适配 Jakarta 问题
    • [删除] 删除原有自定义 Hibernate PostgreSQL Jsonb 支持代码
    • [优化] hibernate dialect 改为 org.hibernate.dialect.PostgreSQLDialect
    • [优化] 更新 Redis 和 JetCache 配置,适配最新版 Spring Boot
    • [优化] 调整 jetcache 依赖,临时解决 Bean 注入顺序不生效问题
    • [优化] use_jdbc_metadata_defaults: true 修改为 true

v3.0.0-M2

  • 主要更新
    • [升级] Spring Authorization Server 版本升级至 0.4.0-M2
    • [重构] 重构核心代码,适配 Spring Authorization Server 0.4.0-M2。

v3.0.0-M1

  • 主要更新
    • [变更] 默认 JDK 版本及 pom.xml 中 <java.version> 指定为变更为 JDK 17。
    • [变更] Docker 默认 JDK 基础镜像变更为 JDK 17。
    • [升级] Spring Authorization Server 版本升级至 0.4.0-M1
    • [重构] 根据新版 Spring Authorization Server 代码结果及变更,对现有工程代码进行重构适配。
    • [重构] OAuth2 Application 实体类增加 authorization code time-to-live 字段。
    • [重构] OAuth2 Application 中 accessTokenTimeToLive、refreshTokenTimeToLive、authorizationCodeTimeToLive 属性的默认值,修改为与 Spring Authorization Server TokenSettings 一致。
    • [变更] 变更数据库初始化脚本中的初始数据,与最新代码适配
  • 依赖更新
    • [升级] wxjava 版本升级至 4.4.4.B
    • [升级] tencentcloud-sdk-java-sms 版本升级至 3.1.623
    • [升级] qiniu-java-sdk 版本升级至 7.12.0
    • [升级] alipay-sdk-java 版本升级至 4.34.43.ALL