1.3 KiB
1.3 KiB
Context
AuthController.register 当前依赖 Spring MVC 的 @Validated 自动校验。该校验发生在控制器方法调用之前,所以方法体无法为缺失的 clientId 补默认值。
Goals / Non-Goals
Goals:
- 空白
clientId使用固定注册客户端 ID32324a04c0175c8d61ac8a282553aea1。 - 默认值补充后仍执行
RegisterBody的全部 Bean Validation 约束。 - 保持注册开关检查和注册服务调用顺序不变。
Non-Goals:
- 不调整
RegisterBody的继承结构或其他登录字段。 - 不改变登录接口和认证客户端配置。
Decisions
- 移除注册方法参数上的
@Validated,在方法体开始处补默认clientId后调用现有ValidatorUtils.validate(user)。该工具已被认证控制器和各登录策略使用,异常处理行为与现有认证流程一致。 - 使用
StringUtils.isBlank,同时覆盖null、空字符串和纯空白字符串。 - 通过
AuthController单元测试观察注册服务收到的请求对象,验证公共接口行为。
Risks / Trade-offs
- 固定客户端 ID 变更时需要同步修改代码和测试;本次按明确业务值实现。
- 手动校验依赖控制器方法内调用顺序;测试覆盖默认值补充发生在校验和业务调用之前。