当前位置: 首页 > 知识库问答 >
问题:

如何在Spring OAuth2中仅通过客户端id和机密进行授权?

雷浩思
2023-03-14

现在我使用下一个配置:

@Configuration
@EnableAuthorizationServer
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class OAuth2Config extends AuthorizationServerConfigurerAdapter {

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.jdbc(mAppConfig.dataSource())
                .withClient("virto")
                .secret("secret")
                .authorizedGrantTypes("password", "authorization_code", "refresh_token");
    }
}

它需要发送客户端id、客户端密码、用户名、密码。。。但是我需要为我的受信任服务器提供访问\u令牌,这些服务器只有客户端id客户端机密。。。我怎样才能做到?可能吗?

共有1个答案

冷越泽
2023-03-14

你需要的是配置一个客户端与client_credentials授权

@Configuration
@EnableAuthorizationServer
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class OAuth2Config extends AuthorizationServerConfigurerAdapter {

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.jdbc(mAppConfig.dataSource())
                .withClient("virto")
                .secret("secret")
                .authorizedGrantTypes("client_credentials");
    }
}

要获得令牌,您需要发送一个发布请求,凭据是以64编码的。

POST http://localhost:8080/paymentiq/oauth/token?grant_type=client_credentials -h 'Authorization: [clientId:secret]'
 类似资料:
  • 我试图弄清楚如何处理Passport包中的密码授予令牌。我是否应该将客户id和客户机密存储在中。env文件或在请求令牌时直接从数据库获取值?

  • 我使用。NET Core2.0和ASP.NET Core2.0进行应用程序开发。“测试”应用程序是一个。NET核心控制台应用程序。我正在编写的核心代码是一个类库。一旦适当的测试。我选择这样做是因为我暂时不会使用它(它正在替换旧的ASPNET代码)。 无论如何,由于我必须处理各种服务的大量API密钥,所以我决定使用Microsoft Azure Key Vault来存储密钥。我有这一切设置,并理解这

  • 使用paypal的开发者帐户,我可以通过创建一个应用程序获得客户端ID和密钥,但不是使用live帐户。 我正在使用REST API在我的网站上进行交易,我要求用户(谁有贝宝帐户)输入他们的客户ID和秘密密钥,并使用这个信息将钱转入他们的帐户,付款是通过信用卡完成的。它在开发人员帐户上运行良好,但是从live帐户上获取客户端ID和密钥的选项在哪里呢? 或者有没有其他的方式我可以做到这一点,我想把钱转

  • 问题内容: 根据规范,不要求使用授权码补助金的令牌的请求作为要被认证,只要是包含在请求和所述是相同的一个用于生成所述代码。但是,使用Spring Security OAuth 2.0实现,即使从未为客户端分配秘密,端点上始终总是需要基本身份验证。 似乎由于接口中的方法,似乎支持允许客户端没有秘密。为了使没有秘密的客户端能够在上进行身份验证,我该怎么做? 4.1.3。访问令牌请求 客户端通过 按照附

  • 问题内容: 我想使用带有身份验证的其余api。我正在尝试包括标头,但没有得到任何回应。它抛出的输出通常是在没有身份验证时抛出的。谁能建议我一些解决方案。下面是我的代码 问题答案: 该请求模块将使您的生活更轻松。现在,它包括“ 基本身份验证”作为选项,因此您不必自己构建标题。 安装请求执行