java - 如何在 Spring MVC REST channel 中获取登录的用户名/主体?

标签 java spring spring-mvc httprequest principal

我有 Spring MVC REST channel :

@Controller
@RequestMapping("/rest")
public class REST {

我有我的方法:

@RequestMapping(value = "/doSomething")
public @ResponseBody DoSomethingResultDTO doSomething(
    @RequestBody DoSomethingRequestDTO)

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

HttpServletRequest.getUserPrincipal()

但是这里怎么得到呢?我有 header (@RequestHeader) 甚至 cookie (@CookieValue) 的注释。但是如何在我的方法中获取 Principal

最佳答案

您可以将 Principal 对象注入(inject)到您的 Controller 处理程序方法中

@RequestMapping(value = "/doSomething")
public @ResponseBody DoSomethingResultDTO doSomething(
    @RequestBody DoSomethingRequestDTO, Principal principal)

参见 the spring reference manual for more info

关于java - 如何在 Spring MVC REST channel 中获取登录的用户名/主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17720488/

相关文章:

java - IntelliJ - 自动完成不适用于新包

java - 将 spark word2vec vector 转储到文件中

java - ThreadPoolScheduler间隔小于任务的执行时间

spring - @BeforeStep 未在 AsyncProcessor 中调用

java - 用于不同 API 的同一 DTO 上的 Spring Boot 请求主体验证

java - 静态方法中的 Spring 上下文为 null

java - 如何为基于当前用户查找类的 CRUD 存储库方法编写自定义查询?

java - switch case 中的多个值/将 ifs 转换为 switch 语句

java - 为什么在Azure AD保护的Spring boot应用程序中它被称为 'APPROLE_Admin'而不是 'Admin'

java - 在 Spring Controller 方法参数中使用接口(interface)