使用Spring Integration和Oauth调用REST Web服务

时间:2016-04-26 09:40:17

标签: spring-security oauth spring-integration spring-security-oauth2 resttemplate

我的目标是使用出站网关执行对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)

0 个答案:

没有答案