Releases: ZeroOrInfinity/UMS
Releases · ZeroOrInfinity/UMS
2.0.6
Fixes and Improvements:
- 特性: 添加定时刷新验证码图片缓存的定时任务功能与相应的属性配置.
- 增强: 添加图片验证码缓存功能, 支持定时刷新缓存验证码. 在单机上测试: 获取实时验证码: 响应验证码的时间为 15-30 ms 获取缓存验证码: 响应验证码的时间为 1-4 ms.
- 增强: 添加滑块验证码图片缓存功能, 支持定时刷新缓存验证码图片.
- 改进: 添加 SLF4J MDC 日志链路追踪的开关属性
- 改进: 改进滑块验证码生成算法, 可以根据使用者提供的源图片(支持多图)与模板图片(只需白色背景的图片, 支持多图) 生成滑块验证码..
- 修复: 修复 enableRefreshTokenJob 属性不能控制是否开启定时刷新 accessToken 任务的 bug.
- 修复: 当 imageCodeFactory 实现自定义逻辑后, 无法创建 ImageCodeGenerator 的 bug.
- 修复: 不能通过实现 ImageCodeFactory 且注入 IOC 容器后不能替换 DefaultImageCodeFactory 的 bug.
- 修复: 修复示例中 ValidateCodeCacheType 不能注入的问题.
- 修复: 第三方授权登录时, 缓存到 redis 时, 设置 state 缓存时间时少个时间单位, 变成 offset错误的 bug. 感谢: 永生的灯塔水母.
- 优化: permitAllUrls 存储到 servletContext 的格式, 由 Map 改为 Set, 方便调用.
- 优化: 更改 定时任务的 Executor 属性名称, 使其能应用在其他定时任务上.
- 优化: 优化 ip 的获取方式. 删除设置图片验证码宽与高的 request 参数属性. 更新与优化验证码示例等.
2.0.5
Fixes and Improvements:
- 修复: permitUrls 当不带方法后缀时不生效的 bug.
- 特性: 添加基于 SLF4J MDC 机制的日志链路追踪功能.
2.0.4
Fixes and Improvements:
- 修复: 生成 userConnectionUpdateExecutor 时 maximumPoolSize 小于 corePoolSize 的 bug. 感谢: 永生的灯塔水母.
- 修复: AuthStateRedisCache.java containsKey(key) 方法的 bug. 感谢: 永生的灯塔水母.
- 修复: 成功处理器redirect方式多加ServletContextPath的问题.
- 增强: 添加在不支持自动注册时, 创建临时用户 TemporaryUser 后跳转 signUpUrl, signUpUrl 可通过属性设置, 再次获取 TemporaryUser
通过 SecurityContextHolder.getContext().getAuthentication().getPrincipal(); 改进 signUpUrl 的处理方式:
增加如果 signUpUrl == null 时不跳转, 直接由开发者在成功处理器上自己处理. 添加 signUpUrl 相关的注释,文档, 示例, 增加 signUp.html 提示页面. - 优化: 添加了一些 Authentication 与 UserDetails 子类的反序列化器, 以解决 redis 缓存不能反序列化此类型的问题, 添加反序列化配置(Auth2Jackson2Module);
具体配置 redis 反序列器的配置请看 RedisCacheAutoConfiguration.getJackson2JsonRedisSerializer() 方法. - 优化: UmsUserDetailsService.generateUsernames(AuthUser authUser) 接口默认实现方法, 便于开发者对与用户命名规则的自定义.
- 优化: 更改接口 UmsUserDetailsService 的方法名称: existedByUserIds -> existedByUsernames. 更新方法说明. 感谢: 永生的灯塔水母.
- 其他: 更新 JustAuth 到 1.15.8. 时序图, 更新 example 与 README.
- 增强: 添加验证码 redis 缓存. issue: #I22JKH
2.0.3
2.0.3
Fixes and Improvements:
- 去除 JDK11 API, 使用JDK1.8 编译框架, 增强兼容性;
- 去除 common-collections/commons-langs3依赖;
- 去除 fastjson API依赖
- core 模块 lombok 依赖 scope: compile 改为 provided
- UmsUserDetailsService 接口方法 existedByUserId 改为 existedByUsernames;
- 删除过时的 example(social);
- 删除过时的 social 模块;
- 优化图片验证码生成逻辑;
- 优化 Auth2XxxRequest 获取逻辑;
- Auth2RequestHolder 与 AuthStateRedisCache 解耦对 StringRedisTemplate 的引用;
- 添加新版 OAuth2Login 时序图;
- 添加账号异常及相应的异常处理器;
- 改进分布式定时任务日志输出;
- 提取 api 包中接口引用的 entity 到 api 模块, 提取签到接口到 api 包;
- 更改 RefreshToken 任务切分逻辑, 更改总记录数为最大 TokenId 值, 避免出现 TokenId 大于总记录数的记录不能更新.
- 修复 HttpSecurity ACCESSS 权限配置 bug.
2.0.2
Fixes and Improvements:
- 集成 JustAuth, 支持所有 JustAuth 支持的第三方授权登录,登录后自动注册或绑定。
- 支持定时刷新 accessToken, 支持分布式定时任务。
- 支持第三方授权登录的用户信息表与 token 信息表的缓存功能。
- 支持第三方绑定与解绑及查询接口(top.dcenter.ums.security.core.oauth.repository.UsersConnectionRepository).
- 支持线程池配置
- 添加抑制非法反射警告, 适用于jdk11, 通过属性可以开启与关闭
- 添加 spring cache 对 @Cacheable 操作异常处理, 缓存穿透处理(TTL随机20%上下浮动), 缓存击穿处理(添加对null值的缓存, 新增与更新时更新null值)
- 移除 fastJson, 改成 Jackson.
- 优化返回客户端 Json 字符串时 ObjectMapper 的调用方式.
- 修复 SpotBugs analysis 扫描出的噪点.
- 其他优化与改进
- java 文件添加 LICENSE 信息头.
1.2.0
Fixes and Improvements:
- 增加权限控制 hasPermission(..) 方法的表达式处理器; 默认启用 httpSecurity.authorizeRequests().anyRequest().access("hasPermission(request, authentication)");
- 添加 ClientProperties.accessExp="hasPermission(request, authentication)" 配置, 等效于 httpSecurity.authorizeRequests().anyRequest().access("hasPermission(request, authentication)");
- 更新 ClientProperties.permitUrls 的处理方式, 使其可以解析 uri (带 HttpMethod 后缀; 用:隔开, 例如:/user/**:POST); 兼容旧模式.
- 删除 UriAuthorizeFilter , 删除权限的过滤器授权模式, 用 hasPermission(request, authentication) 表达式替换.
- 更新 SecurityCoreAutoConfigurer 中 httpSecurity 的权限配置方式, 使其完全支持 restfulAPI 风格的权限验证模式.
- 更新与权限相关的配置/注释/文档.
- 修复滑块验证码验证失败后复用.
- 更新成功登录跳转逻辑, session失效跳转逻辑.
- 优化获取 redirectUrl 逻辑.
- ResponseResult 去除有歧义的静态方法.
- PasswordEncoder BCryptPasswordEncoder 更改为 DelegatingPasswordEncoder, 但默认加密方式还是 BCryptPasswordEncoder.
- 重命名 AbstractUserDetailsService 为 UmsUserDetailsService,
重命名 AbstractSocialUserDetailsService 为 UmsSocialUserDetailsService,
并更改抽象类为接口.
1.1.5.1
Fixes and Improvements:
- 添加更新角色权限异步监听器.
- 修复 permission-example SysResourcesJpaRepository.findByRoleIdAndUrl() sql语句错误; 优化事务.
1.1.5
Fixes and Improvements:
- 修复 hasRole(roleArray) 只判断 roleArray[0] 的 bug.
- 在 HttpSecurityAware 添加 anyRequest().access(EXP) 的 EXP 类型的常量 ACCESS.
1.1.4
Fixes and Improvements:
- 修复 登录路由未开启的情况下: BaseAuthenticationSuccessHandler 不能自动注册到 IOC 的 bug.
- 更改属性配置前缀 security -> ums.
- 添加获取验证码 url 前缀自定义配置.
v1.1.2
用户管理脚手架(UMS)的第一个版本,集成:验证码、手机登录、第三方登录(自动注册,绑定与解绑)、基于 RBAC 的 uri 访问权限控制功能、通过统一的回调地址入口实现多回调地址的路由功能、签到等功能。尽可能的使用配置实现相应的功能, 实现两到三个 API 接口就可以实现上述功能,实现快速开发.
User management scaffolding, integration: validate code, mobile login, OAuth2(automatic registration, binding and unbinding), RBAC-based uri access control function, routing function of multiple callback addresses through a unified callback address entry, and sign etc...