Skip to content

v1.1.0

Compare
Choose a tag to compare
@Hccake Hccake released this 25 Apr 05:38
· 267 commits to master since this release

[1.1.0] 2022-04-24

💛 Warning

  • 数据权限中 DataScope 不兼容更新,getTableNames 修改为 includes

  • Redis 组件中的 ballcat.redis.locked-time-out 配置修改为ballcat.redis.default-lock-timeout 并修改默认值为 10s

  • spring-javaformat 新版本优化了链式调用代码的格式化,更新后重新 format 代码,会导致大量文件更新。

  • 授权服务器的登录验证码开关默认值切换为 false,开启了验证码校验的注意修改对应配置为 true.

  • ballcat-admin-core 模块不再默认开启资源服务器的配置,需要用户在自己的配置类上手动添加 @EnableOauth2ResourceServer 注解。

  • ballcat-admin-core 不再传递授权服务器的依赖,用户根据自己的需要在配置类上添加对应的注解,以及 pom.xml 中引入对应的依赖:

    • 切换到 spring authorization server

            <!-- 基于 spring authorization server 的授权服务器 -->
          <dependency>
              <groupId>com.hccake</groupId>
              <artifactId>ballcat-spring-security-oauth2-authorization-server</artifactId>
          </dependency>

      添加注解 @org.ballcat.springsecurity.oauth2.server.authorization.annotation.EnableOauth2AuthorizationServer

    • 或者继续使用 spring-oauth2

               <!-- 已废弃,基于 spring oauth2 的授权服务器 -->
           <dependency>
               <groupId>com.hccake</groupId>
               <artifactId>ballcat-auth-controller</artifactId>
               <scope>provided</scope>
           </dependency>

      添加注解 @com.hccake.ballcat.auth.annotation.EnableOauth2AuthorizationServer

  • spring authorization server 的登陆和退出端点变更为 /oauth2/token/oauth2/revoke,请求方式也略有不同,请注意同步前端更新

⭐ Features

全局

  • 🔥 移除 dynamic-datasource 和 jasypt 等未在 ballcat 仓库中直接使用的第三方工具的版本管理
  • ✨ 版本统一由ballcat-dependencies模块管理,顶级父工程不再重复管理
  • 🚨 处理部分 SonarLint Error

OAuth2 授权服务器

涉及模块:ballcat-spring-security-oauth2-authorization-server

  • ✨ 使用 accessTokenResponseHandler 方式配置 token 增强,方便作用于所有的 grant_type
  • ⚡ 授权服务器的登录验证码开关默认值设置为 false
  • ✨ 提供默认的 BallcatOAuth2TokenCustomizer,方便做远程 token 自省
  • ✨ (授权服务器) 不再自动配置,改为使用 @EnableOauth2AuthorizationServer 注解显式开启
  • ✨ 添加 AnonymousForeverAuthenticationProvider,用于在使用错误 token 的访问资源时不终止流程,而是切换身份到匿名用户访问
  • ✅ (OAuth2) 添加授权服务器部分功能的单元测试
  • ✨ 提供了 OAuth2AuthorizationObjectMapperCustomizer 类,方便用户扩展 OAuth2Authorization 的序列化逻辑

OAuth2 资源服务器:

涉及模块:ballcat-spring-security-oauth2-resource-server

  • ⚡ (资源服务器) 远程不透明令牌自省器从 nimbus 实现迁移到 spring 实现,并移除 nimbus 依赖
  • ⚡ (资源服务器) 优化远程自省时解析的 attributes,只保留必要属性
  • ⚡ 删除手动指定鉴权管理器操作,开启资源服务器后默认会创建

后台管理模块

  • 🐛 fix 角色分页查询条件错误添加了 code 的问题

通用模块

涉及模块:ballcat-common-coreballcat-common-modelballcat-common-util

  • ♻️ BooleanEnum 重构, 同时管理 boolean 类型和对应的 int 类型值, 使用包装类, 方便与包装类进行 equals 判断, 避免拆箱的空指针
  • ♻️ 重载部分R对象方法
  • 🎨 精简依赖范围 ballcat-common-util 的依赖 hutool-extra 缩小为 hutool-core
  • ✨ 添加 array 工具类
  • ✨ 添加https部分静态实现
  • 🐛 修复 AbstractQueueThread 线程被中断的情况下, 未正确调用 shutdown 方法的问题
  • ⚡ 补充部分工具类
  • ✨ 添加spring 环境工具类
  • ✨ 添加LocalDateTime工具类
  • ⚡ markdown支持代码写入
  • ✨ 添加指定动态休眠的定时器

脱敏工具

涉及模块:ballcat-common-desensitize

  • ⚡ Holder 中的数据存储从静态常量修改为实例属性
  • ✅ 修复在不同顺序下执行测试用例导致结果不同的问题

IP 组件

涉及模块:ballcat-spring-boot-starter-ip2region

  • ✨ Ip工具类添加两个静默查询方法

Redis 组件

涉及模块:ballcat-common-redisballcat-spring-boot-starter-redis

  • ✨ 缓存锁添加几个超时时间的重载方法,方便用户自己控制锁释放时间
  • ♻️ 分布式锁使用spring内置断言替代hutool断言
  • ballcat.redis.locked-time-out 配置修改为ballcat.redis.default-lock-timeout 并修改默认值为 10s
  • ⚡ CacheLock 类移动到 lock 包下,同时移除内部 redisTemplate 的引用,改为使用 RedisHelper
  • ✨ redis 支持对redis的新增、修改、删除、过期的监听

数据权限

涉及模块:ballcat-spring-boot-starter-datascope

  • ✨ 新增 DataPermissionUtils#executeAndIgnoreAll 方法,方便忽略数据权限进行方法执行

  • 💥 DataScope 使用 includes 方法替换原 getTableNames 方法,以便支持更加多元化的方式来判断是否需要控制当前表

mybatis

涉及模块:ballcat-extend-mybatis-plus

  • ✨ LambdaQueryWrapperX#isPresent 添加对 Optional 和 Map 的判空支持

NTP 服务

涉及模块:ballcat-extend-ntp

  • ✨ 添加ntp模块, 添加 NtpCn 类便于国内使用

钉钉通知

涉及模块:ballcat-extend-dingtalk

  • ⚡ 钉钉消息发送模块请求工具转为okhttp
  • 🐛 修复 MarkDown 引用文本换行异常
  • ⚡ MarkDown 添加支持多行引用文本的方法
  • ✅ 添加钉钉消息发送测试用例

🔨 Dependency

  • ⬆️ commons-net from 3.8.0 to 3.9.0
  • ⬆️ springdoc-openapi from 1.6.13 to 1.7.0
  • ⬆️ spring-boot from 2.7.6 to 2.7.11
  • ⬆️ easyexcel from 3.1.2 to 3.1.5
  • ⬆️ hutool from 5.8.10 to 5.8.16
  • ⬆️ mybatis-plus from 3.5.2 to 3.5.3.1
  • ⬆️ spring-authorization-server from 0.4.0 to 0.4.2
  • ⬆️ spring-javaformat from 0.0.35 to 0.0.38
  • ⬆️ xxl-job from 2.3.1 to 2.4.0
  • ⬆️ lombok from 1.18.24 to 1.18.26
  • ⬆️ ip2region from 2.6.6 to 2.7.0