2015-01-13 48 views
-1

我試圖使用mule連接器連接到第三方。訪問此第三方應用程序的安全方案是OAuth2。我在尋求正確配置的幫助。以下是我的騾子(3.5.2)流量:mule連接器中的OAuth2

<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)什麼是這裏的回調URL,我應該配置一下。我可以在那裏使用任何東西嗎?這個網址需要在互聯網上訪問還是我可以使用本地主機? 2)如何測試此配置?我通過點擊http入站網址即http:// localhost:8082/testoauth來實現。我得到的輸出是方法不允許(405)錯誤。 3)如果我打回撥URL,即localhost:8082/callback,我得到NoAuthorizationCodeFound異常。如何進行? 4)我如何知道訪問令牌是否正確生成? 5)我是否需要專門存儲訪問令牌以供將來使用?

當我點擊url http:/ localhost:8082/testoauth時,我得到了不允許的方法錯誤。我得到的響應爲{「code」:「MethodNotAllowedError」,「message」:「GET不允許」}。這是否表明我的訪問方式是錯誤的或者是否意味着其他任何內容? 我被困在這一點。請幫忙。

請詳細介紹應用OAuth配置訪問受保護資源的過程。

回答

1

1)回調URL用於OAuth提供程序在用戶授權應用程序後重定向回您的應用程序。連接器會自動爲您生成入站端點和HTTP回調,並以編程方式將URL傳遞給服務提供者。 連接器將在此地址上偵聽此回調。

2)調用/ testoauth需要通過HTTP GET在瀏覽器中,以便它可以重定向授權給服務提供商。

本地主機將通過瀏覽器正常工作。

3)直接調用回調url沒有用。對於服務提供者來說,需要使用授權代碼返回到您的應用程序,該授權代碼將在後續對其API的請求中使用。

4)嘗試在授權之後登錄令牌:

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

注意這不是OAuth訪問令牌本身,而是ID以對象存儲條目包含OAuth信息,包括訪問令牌等。

5)號Mule用它的內部對象存儲來處理這個問題。這可以定製,但其他提供商和持久性機制等,以便令牌可以在Mule實例等共享。請參閱http://www.mulesoft.org/documentation/display/current/Mule+Object+Stores

不喜歡自我推銷,但第4章http://shop.oreilly.com/product/0636920025726.do涵蓋這些問題。

而且騾子的文檔:

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

+0

感謝瑞安詳細解釋我的每一個問題。不過,我對如何在沒有涉及瀏覽器的情況下使用OAuth有點困惑。例如,我有一個要求,即我的批處理作業需要調用受OAuth2保護的第三方API。您能否提供任何樣本騾流程以瞭解如何執行相同的步驟。 – rst

+0

我已經添加更多細節到#2。請幫忙。我幾乎停留在這一點上。 – rst

+0

你能分享你的連接器代碼嗎?那就是魔法發生的地方。 –