如何在Spring MVC REST通道中获取登录的用户名/ Principal?

Dan*_*lor 9 java spring spring-mvc httprequest principal

我有Spring MVC REST频道:

@Controller
@RequestMapping("/rest")
public class REST {
Run Code Online (Sandbox Code Playgroud)

我有我的方法:

@RequestMapping(value = "/doSomething")
public @ResponseBody DoSomethingResultDTO doSomething(
    @RequestBody DoSomethingRequestDTO)
Run Code Online (Sandbox Code Playgroud)

现在我需要登录用户的名称.通常我可以通过该方法来完成

HttpServletRequest.getUserPrincipal()
Run Code Online (Sandbox Code Playgroud)

但如何在这里得到它?我有header(@RequestHeader),甚至cookies(@CookieValue)的注释.但是我怎样才能获得Principal我的方法呢?

ger*_*tan 23

您可以将Principal对象注入控制器处理程序方法

@RequestMapping(value = "/doSomething")
public @ResponseBody DoSomethingResultDTO doSomething(
    @RequestBody DoSomethingRequestDTO, Principal principal)
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅弹簧参考手册