Spring security 在spring中使用OAuth2RestTemplate调用rest api时未设置客户端Id

Spring security 在spring中使用OAuth2RestTemplate调用rest api时未设置客户端Id,spring-security,Spring Security,我正在尝试使用oauth2restemplate 尝试获取访问令牌时,客户端Id未设置 请帮助我获取示例代码或工作代码的链接 AppConfig.java @Bean @Primary public OAuth2ProtectedResourceDetails getOAuth2ProtectedResourceDetails() { ClientCredentialsResourceDetails details = new ClientCredentialsResourceDetai

我正在尝试使用
oauth2restemplate

尝试获取访问令牌时,客户端
Id
未设置

请帮助我获取示例代码或工作代码的链接

AppConfig.java

@Bean
@Primary
public OAuth2ProtectedResourceDetails getOAuth2ProtectedResourceDetails()
{
    ClientCredentialsResourceDetails details = new ClientCredentialsResourceDetails();
    details.setAccessTokenUri("External Url , Ex: https://XXX/oauth2/v0/token");
    details.setClientId("*******");
    details.setClientSecret("******");
    details.setGrantType("client_credentials");
    return details;
}

@Bean
@Primary
public OAuth2RestTemplate  createOAuth2RestTemplate() {

    DefaultOAuth2ClientContext clientContext = new DefaultOAuth2ClientContext();
    OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(getOAuth2ProtectedResourceDetails(), new DefaultOAuth2ClientContext(accessToken));
    return restTemplate;
}
String URL= "Get the Accounts Url";
oAuth2RestTemplate.getForEntity("URL", Object.class)
ClientInvoker.java中

@Bean
@Primary
public OAuth2ProtectedResourceDetails getOAuth2ProtectedResourceDetails()
{
    ClientCredentialsResourceDetails details = new ClientCredentialsResourceDetails();
    details.setAccessTokenUri("External Url , Ex: https://XXX/oauth2/v0/token");
    details.setClientId("*******");
    details.setClientSecret("******");
    details.setGrantType("client_credentials");
    return details;
}

@Bean
@Primary
public OAuth2RestTemplate  createOAuth2RestTemplate() {

    DefaultOAuth2ClientContext clientContext = new DefaultOAuth2ClientContext();
    OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(getOAuth2ProtectedResourceDetails(), new DefaultOAuth2ClientContext(accessToken));
    return restTemplate;
}
String URL= "Get the Accounts Url";
oAuth2RestTemplate.getForEntity("URL", Object.class)
例外情况

原因:org.springframework.beans.BeanInstantiationException: 未能实例化 [org.springframework.security.oauth2.client.OAuth2RestTemplate]: 工厂方法“CreateAuth2RestTemplate”引发异常;嵌套 例外情况是error=“访问被拒绝”,error\u description=“访问令牌 拒绝。”在 org.springframework.beans.factory.support.SimpleInstallationStrategy.instantiate(SimpleInstallationStrategy.java:189) 在 org.springframework.beans.factory.support.ConstructorResolver.InstantiationUsingFactoryMethod(ConstructorResolver.java:588) ... 又有25个原因:error=“访问被拒绝”, 错误\u description=“拒绝访问令牌。”位于 org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport.retrieveToken(OAuth2AccessTokenSupport.java:142)


您的资源服务器似乎有问题。确认以下内容

  • 它指向与您的客户端相同的授权服务器/实例
  • 确认客户端令牌上的到期窗口不小于1ms(lol)。。是的,是的。。请查收
  • 问候