我的目标是使用出站网关执行对REST Web服务的调用,此Web服务需要另一个Web服务提供的令牌。 我已经尝试过使用Spring oauth而没有任何运气,因为我不确定如何集成这两个框架。
<int:chain input-channel="requestChannel">
<int-http:outbound-gateway
url="https://webservice.url/..."
http-method="GET" expected-response-type="java.lang.String"
rest-template="restTemplate" />
...
</int:chain>
<oauth:resource id="oauth1" client-id="admin"
access-token-uri="https://token.priovider.url/..."
client-secret="secret" client-authentication-scheme="header" type="password"
scope="trust" password="mypassword" username="myusername" />
<oauth:rest-template id="restTemplate" resource="oauth1" />
令牌网络服务响应格式:
{
"signInResponse":{
"duration":86400000,
"token":"sKgRT6748UH0h_XEdIUYsUDSkBDUMKCW",
"userName":"myusername",
"userId":"http://identity.auth.service.com/100046",
"idleTimeout":14400000
}
}
当我在调试时,我发现在以下行(OAuth2RestTemplate构造函数)中,“context”的值是“com.sun.jdi.InvocationException发生了调用方法。”:
public OAuth2RestTemplate(OAuth2ProtectedResourceDetails resource, OAuth2ClientContext context)