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