Spring AuthenticationPrincipal给出null参数

时间:2017-02-16 01:02:45

标签: java spring spring-mvc authentication spring-security

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

@RequestMapping("/cart")
public String showCart(Model model, @AuthenticationPrincipal User principal){
    int id = principal.getId();

根据文件说明:

http://docs.spring.io/spring-security/site/docs/4.1.3.RELEASE/reference/htmlsingle/#mvc-authentication-principal

我应该添加AuthenticationPrincipalArgumentResolver,我也是。

问题是本机实际上是空的。

修改

使用:

    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
    String username =  ((org.springframework.security.core.userdetails.User) authentication.getPrincipal()).getUsername();

我可以找到我想要获取的用户,但由于我需要一个给定用户的ID(最初并不存储在默认用户中),我需要从数据库中获取它(因为我应该已经不那么有效了)将该ID存储在某处)

0 个答案:

没有答案