相关疑难解决方法(0)

如何获取活动用户的UserDetails

在我的控制器中,当我需要活动(登录)用户时,我正在执行以下操作来获取我的UserDetails实现:

User activeUser = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
log.debug(activeUser.getSomeCustomField());
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我认为Spring可以在这样的情况下让生活更轻松.有没有办法将UserDetails自动装配到控制器或方法?

例如,类似于:

public ModelAndView someRequestHandler(Principal principal) { ... }
Run Code Online (Sandbox Code Playgroud)

但是,而不是得到UsernamePasswordAuthenticationToken,我得到了一个UserDetails

我正在寻找一个优雅的解决方案.有任何想法吗?

java spring spring-mvc spring-security

165
推荐指数
6
解决办法
12万
查看次数

从Spring MVC控制器中的Security Context获取UserDetails对象

我正在使用Spring Security 3和Spring MVC 3.05.

我想打印当前登录用户的用户名,如何在Controller中获取UserDetails?

@RequestMapping(value="/index.html", method=RequestMethod.GET)
    public ModelAndView indexView(){
         UserDetails user = ?
                mv.addObject("username", user.getUsername());
        ModelAndView mv = new ModelAndView("index");
        return mv;
    }   
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-security

65
推荐指数
2
解决办法
11万
查看次数

标签 统计

java ×2

spring ×2

spring-mvc ×2

spring-security ×2