Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Spring和Spring Security中访问当前正在访问控制器的用户的信息_Spring_Spring Boot_Spring Mvc_Spring Security - Fatal编程技术网

如何在Spring和Spring Security中访问当前正在访问控制器的用户的信息

如何在Spring和Spring Security中访问当前正在访问控制器的用户的信息,spring,spring-boot,spring-mvc,spring-security,Spring,Spring Boot,Spring Mvc,Spring Security,我想知道当前谁将访问控制器,控制器将根据用户是谁从数据库中提取数据。是否有办法确定用户是谁或用户名应保留在应用程序前端。我在控制器里试过这个 Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); String username = ""; if (principal instanceof UserDetails) { usernam

我想知道当前谁将访问控制器,控制器将根据用户是谁从数据库中提取数据。是否有办法确定用户是谁或用户名应保留在应用程序前端。我在控制器里试过这个

    Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    String username = "";
    if (principal instanceof UserDetails) {
        username = ((UserDetails) principal).getUsername();
    } else {
        username = principal.toString();
    }
    System.out.print("email is:" +  username);
但是,它返回anonymousUser,它不是数据库中的用户名


你知道我做错了什么吗。TIA

((UserDetails)principal).getUsername()
将在您未登录访问端点时提供匿名用户。要获取用户名,您必须先执行登录,它将返回相应的用户名。获取当前登录用户详细信息的方法

你登录了吗?因为
anonymousUser
意味着你不是。