v1.1.0
[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-core、ballcat-common-model、ballcat-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-redis、ballcat-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