【问题标题】:AuthenticationPrincipal is null only with Postman requestAuthenticationPrincipal 仅在 Postman 请求时为空
【发布时间】:2020-04-13 03:28:31
【问题描述】:

我正在尝试在我的本地应用程序下运行(与 OKTA 相关的必要配置更改) https://github.com/oktadeveloper/okta-spring-security-authentication-example/tree/master/oauth-okta

浏览器访问应用程序时一切正常。身份验证在 OKTA 工作正常并正确重定向到应用程序。

但是当我使用邮递员尝试相同的 API 时,OidcUser 将变为 null。 我使用grant_type client_credentials从邮递员生成了accessToken

@AuthenticationPrincipal OidcUser oidcUser

有什么线索吗?

-R

【问题讨论】:

    标签: spring-boot single-sign-on okta


    【解决方案1】:

    这是另一个论坛的答案。

    我猜这就是 Spring Security 的工作原理。如果您使用浏览器登录,它将填充此参数,但如果您发送访问令牌则不会。您可以使用访问令牌调用 /userinfo 端点并以这种方式获取用户的信息。或者你可以使用 Jwt 代替 OidcUser,就像这个例子所示。

    @GetMapping("/")
    public String index(@AuthenticationPrincipal Jwt jwt) {
        return String.format("Hello, %s!", jwt.getSubject());
    }
    

    【讨论】:

      猜你喜欢
      • 2015-06-21
      • 2017-03-10
      • 2018-12-21
      • 2019-02-14
      • 1970-01-01
      • 2021-08-02
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多