如何在 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 调用中获取用户信息?的主要内容,如果未能解决你的问题,请参考以下文章
C ++:我在一种方法中获得了一个迭代器,如何在另一种方法中通过迭代器修改原始列表?