如何在 Spring-Boot-REST 调用中获取用户信息?

Posted

技术标签:

【中文标题】如何在 Spring-Boot-REST 调用中获取用户信息?【英文标题】:How to get User-Information in Spring-Boot-REST calls? 【发布时间】:2016-11-17 06:31:10 【问题描述】:

我们目前正在评估 Spring-Boot 作为一个项目的框架。这个项目有安全要求,基本上我们希望将 webservice 调用限制为某些角色,但同时,所述调用的结果取决于用户所在的角色。

示例:我明白,我可以使用

阻止或允许用户访问某个 REST 调用
@PreAuthorize("...")
@PostAuthorize("...")

但我需要的是更多类似于此代码的内容(来自 DropWizard):

@Path("/for_date_sec/date")
@GET
@RolesAllowed("ADMIN")
public void doSecured(@Auth User user, @PathParam(value = "date") String date) 
  selectReadableObjects(user.getRoles());
  ...

据我了解,“@PreAuthorize/@PostAuthorize”注释可以访问主体。我们也可以将它暴露给 这可能吗?

【问题讨论】:

You can see here 您可以通过检索 UserDetails 来获取所有其他信息。 【参考方案1】:

看来,没有办法让Spring引入人为的附加参数。相反,Spring 通过SecurityContextHolder 提供上下文信息,如 Nur Alam Zico 引用的答案中所述。

【讨论】:

以上是关于如何在 Spring-Boot-REST 调用中获取用户信息?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 powershell 中使用变量调用命令?

C ++:我在一种方法中获得了一个迭代器,如何在另一种方法中通过迭代器修改原始列表?

你如何估计智能合约调用所需的 gas 量?

input标签中value属性存入了一个对象,如何在js中获去这个对象的属性

Windows调用的DLL如何与主应用程序通信?

在 OnCreate() Android 中为联系人调用 onActivityResult