【问题标题】:Not able to generate JWT token by Spring Boot OAuth2无法通过 Spring Boot OAuth2 生成 JWT 令牌
【发布时间】:2021-10-13 23:45:42
【问题描述】:

我对生成 OAuth JWT 令牌有点陌生。我一直在尝试使用 Spring Boot OAuth 来实现授权服务器。我面临的问题是我无法生成 JWT 令牌,而是生成一个简单的令牌而不是 JWT。

我已经在 GitHub 中创建了项目。请看链接 https://github.com/jainaks2010/OAuth2AuthorizationServer

我正在使用 POSTMan 生成 -

【问题讨论】:

  • 假设你的截图是实际生成的,它看起来像一个解析的 JWT 令牌
  • 能否请您检查我在 GitHub 中的代码是否有任何明显的错误。谢谢
  • 我没有看到任何明显的错误。您能否详细说明如何获取已解析的令牌?您正在执行哪些 API 调用等...
  • 我正在使用 Open JDK 11 来生成我的 jks 文件。我正在使用一个简单的 UserDetails 服务来检查用户的用户名和密码,以及一个使用 inMemory 的简单 ClientDetailsS​​ervice 。我正在使用 JWT 令牌存储并将其提供给 AuthorizationServerEndpointsConfigurer

标签: spring spring-boot spring-security-oauth2


【解决方案1】:

我认为您需要像这样将转换器添加到端点:

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
        endpoints
            .tokenStore(tokenStore())
            .accessTokenConverter(jwtAccesTokenConvertor()) // <-- This one
            .authenticationManager(authenticationManager)
            .userDetailsService(userDetailsService);
    }

【讨论】:

  • 非常感谢。有效。但是我们需要双重引用它的任何原因,因为令牌存储已经具有令牌转换器对象。再次非常感谢:)
  • 一个用于TokenStore,这是在服务器上“保存”令牌的地方,另一个是端点转换器。这意味着您可以编码一个而不是另一个,或者为每个编码具有不同的转换器。即,在使用数据库时,您可能需要一个不同的 TokenStore 转换器,因此从数据库中读取它们并不容易
猜你喜欢
  • 2017-10-03
  • 2020-04-23
  • 2017-01-01
  • 2017-06-02
  • 2021-05-22
  • 2019-01-20
  • 2018-08-03
  • 2019-12-08
  • 2020-01-12
相关资源
最近更新 更多