【发布时间】:2011-04-01 05:26:39
【问题描述】:
Spring 中是否有“getCurrentUser”方法来访问当前属于请求的用户 - 即使该用户的名称没有作为 Web 请求的一部分传递?
【问题讨论】:
标签: java spring spring-mvc spring-security authentication
Spring 中是否有“getCurrentUser”方法来访问当前属于请求的用户 - 即使该用户的名称没有作为 Web 请求的一部分传递?
【问题讨论】:
标签: java spring spring-mvc spring-security authentication
由于您已使用 spring-security 标记您的问题,我假设您的问题是在相同的上下文中。使用 spring-security 您可以检索当前用户:
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
UserDetails userDetails = null;
if (principal instanceof UserDetails) {
userDetails = (UserDetails) principal;
}
String userName = userDetails.getUsername();
【讨论】:
HttpServletRequest.getPrincipal() 公开其身份验证数据。