Java Spring AuthenticationPrincipal提供空参数

Java Spring AuthenticationPrincipal提供空参数,java,spring,spring-mvc,authentication,spring-security,Java,Spring,Spring Mvc,Authentication,Spring Security,我正在尝试通过AuthenticationPrincipal登录用户 @RequestMapping("/cart") public String showCart(Model model, @AuthenticationPrincipal User principal){ int id = principal.getId(); 根据文件摘要: 我应该添加AuthenticationPrincipalArgumentResolver,我也是 问题是主体实际上是空的 编辑: 通过使用:

我正在尝试通过AuthenticationPrincipal登录用户

@RequestMapping("/cart")
public String showCart(Model model, @AuthenticationPrincipal User principal){
    int id = principal.getId();
根据文件摘要:

我应该添加AuthenticationPrincipalArgumentResolver,我也是

问题是主体实际上是空的

编辑:

通过使用:

    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
    String username =  ((org.springframework.security.core.userdetails.User) authentication.getPrincipal()).getUsername();
我可以找到我想要获取的用户,但因为我需要给定用户的ID(它最初不是存储在默认用户中),所以我需要从数据库中获取它(它的效率较低,因为我应该已经将该ID存储在某个地方)