添加自定义HandlerMethodArgumentResolver而不必声明mvc依赖项

时间:2018-02-16 15:12:01

标签: spring spring-mvc spring-boot spring-security spring-annotations

在我的项目中,我在@AuthenticationPrincipal的几个方法上使用@RestController注释。我需要的唯一信息是自定义主体的id字段。

目前这看起来很丑陋:

public void deleteUsers(@RequestParam(name = "id") List<Long> userIds, @AuthenticationPrincipal UserDetails userDetails) {
    if (userDetails != null && userIds.contains(((MyUser) userDetails).getId())) {
        throw new IllegalArgumentException("Cannot delete self");
    }
    userManager.deleteUsers(userIds);
}

这就是为什么我提出@AuthenticationId由自定义HandlerMethodArgumentResolver解决的想法。

问题是,我的项目目前不依赖于spring-mvc依赖项。正如我所见,我需要声明此依赖项以自行注册自定义HandlerMethodArgumentResolverInject your custom method argument in Spring MVC using HandlerMethodArgumentResolver

这看起来有点奇怪。

如果HandlerMethodArgumentResolver概念依赖于spring-mvc,如果我不包含依赖项,@AuthenticationPrincipal如何工作?

0 个答案:

没有答案