mule连接器中的OAuth2

时间:2015-01-13 10:17:07

标签: oauth mule connector

我正在尝试使用mule连接器连接到第三方。访问此第三方应用程序的安全方案是OAuth2。我寻求有关正确配置的帮助。以下是我的骡子(3.5.2)流程:

<XXX-auth2:config name="TestAuth" consumerKey="abc" consumerSecret="1234" doc:name="TestAuth">
        <XXX-auth2:oauth-callback-config domain="localhost" localPort="8082" path="callback" remotePort="8082" async="false"/>
    </XXX-auth2:config>
    <flow name="testFlow1" doc:name="testFlow1">
        <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082"  path="testoauth" doc:name="HTTP" />
         <XXX-auth2:authorize config-ref="TestAuth" doc:name="TestAuth"/>
        <logger message="Test Auth output:#[flowVars['tokenId']]" level="INFO" doc:name="Logger"/>
    </flow>

我是Oauth的新手并且有以下问题:

1)这里的回调网址是什么,我该怎么配置它。我可以在那里使用任何东西吗?这个网址是否需要在互联网上访问,或者我可以使用localhost吗? 2)如何测试此配置?我通过点击http入站网址来实现,即http:// localhost:8082 / testoauth我得到的输出是方法不允许(405)错误。 3)如果我点击回调url即localhost:8082 / callback,我得到NoAuthorizationCodeFound异常。如何进行? 4)我怎么知道访问令牌是否正确生成? 5)我是否需要专门存储访问令牌以备将来使用?

当我点击网址http:/ localhost:8082 / testoauth时,我得到了不允许的方法错误。我收到的答复为{&#34;代码&#34;:&#34; MethodNotAllowedError&#34;,&#34;消息&#34;:&#34; GET不被允许&#34;}。这是否表明我获取访问权限的方式是错误的还是其他任何意义? 我被困在这一点上。请帮忙。

请详细说明应用OAuth配置访问受保护资源的过程。

1 个答案:

答案 0 :(得分:1)

1)回调URL是OAuth提供商在用户授权应用程序后重定向回应用程序的。连接器将自动生成入站端点和a 您的HTTP回调并以编程方式将URL传递给服务提供商。 然后,连接器将在此地址上侦听此回调。

2)调用/ testoauth需要通过浏览器中的HTTP GET进行调用,以便可以将授权重定向到服务提供商。

Localhost可以通过浏览器正常工作。

3)直接调用回调网址没有用处。服务提供商可以使用授权代码调用以返回您的应用程序,该授权代码将用于后续API请求。

4)尝试在授权后记录令牌:

<logger level="INFO"
message="The user identification is #[flowVars[
'OAuthAccessTokenId']]" />

注意这不是OAuth访问令牌本身,而是包含oauth信息的Id to objectstore条目,包括访问令牌等。

5)否.Mule用它的内部对象存储来处理这个问题。这可以自定义为其他提供程序和持久性机制等,以便可以跨Mule实例共享令牌等。请参阅http://www.mulesoft.org/documentation/display/current/Mule+Object+Stores

不喜欢自我推销,但http://shop.oreilly.com/product/0636920025726.do的第4章涵盖了这些问题。

还有Mule文档:

http://www.mulesoft.org/documentation/display/current/Using+a+Connector+to+Access+an+OAuth+API