如何在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
意味着你不是。