探索想法。

通过对话提出问题、梳理可能性,
让复杂技术逐渐变得清晰。

提出问题,获得清晰解释,
并沿着好奇心继续深入。

开始阅读

帮我梳理 Spring Security
的认证流程,并标出关键类。

可以从请求进入过滤器链开始,再沿认证、授权和异常处理三个阶段拆解。每一步记录关键类、调用关系和可验证的结论。

继续提出技术问题…

关于 @Validated 和 @Valid

@Validated 和 @Valid 只能在 Controller 层直接调用,要想灵活的调用,需要编写一个 ValidationUtil 工具类:

public class ValidatorUtil {
    private static final Validator VALIDATOR;

    static {
        VALIDATOR = Validation.buildDefaultValidatorFactory().getValidator();
    }

    /**
     * 校验对象
     *
     * @param object 待校验对象
     * @param groups 待校验的组
     */
    public static void validateEntity(Object object, Class<?>... groups) {
        Set<ConstraintViolation<Object>> constraintViolations = VALIDATOR.validate(object, groups);
        if (!constraintViolations.isEmpty()) {
            ConstraintViolation<Object> constraint = constraintViolations.iterator().next();
            throw new UnifiedException(constraint.getMessage());
        }
    }
}

也可以考虑直接封装成一个注解来使用

更多内容:

posted @ 2022-09-05 15:26  Laameng  阅读(70)  评论(0)    收藏  举报