Releases: dromara/dante-cloud
Releases · dromara/dante-cloud
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
- 重要更新
- Eurynome 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 版本。
- 重构缓存相关模块,将 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