【问题标题】:Get user Id from OAuth token [duplicate]从 OAuth 令牌获取用户 ID [重复]
【发布时间】:2017-09-09 14:10:14
【问题描述】:

我正在使用 Spring (Web MVC - REST) 4.3.3、spring security 3.2.4、Spring security Oauth 1.0.0 和 OAuth2 进行授权。

我将用户 ID 存储为身份验证对象的原则。

我的问题是, 我想知道服务层中哪个用户调用了 Web 服务。我怎样才能得到它?

我想这样用,

假设有人创建了一个用户。创建者将存储在新用户中。一种方法是从客户端传递用户对象中的创建者,但我希望从令牌本身获取它,因为它已经具有该信息。

编辑

欢迎对downvote 进行简要说明。

【问题讨论】:

    标签: spring spring-security oauth-2.0 spring-security-oauth2


    【解决方案1】:

    您可以通过

    访问您的身份验证信息
    Authentication auth = SecurityContextHolder.getContext().getAuthentication();
    

    SecurityContextHolder 包含一个ThreadLocal 变量,因此它在请求处理期间的任何地方都可用。 Authentication 对象应包含来自令牌的信息。

    【讨论】:

    • 您无法从 SecurityContextHolder.getContext().getAuthentication() 获取用户 ID; - 当你使用 oAuth
    猜你喜欢
    • 2021-09-07
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 2016-06-21
    • 2020-05-05
    • 2021-07-05
    • 2012-08-13
    • 1970-01-01
    相关资源
    最近更新 更多