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)。。是的,是的。。请查收
问候