2014-10-09 95 views
1

我需要將安全證書轉發給遠程服務。爲此,我使用基本認證向我的http端點發送認證,並將它們直接寫入url中,如:http://userName:[email protected]:8081/esb/。如果我通過HTTP授權標頭,一切都可以。但是每次我想通過URL形式傳遞憑證時,我都沒有在消息或有效負載屬性中看到它們。他們消失了。任何人都可以幫助我找到正確的方式將證書傳遞給通過基本身份驗證保護的遠程HTTP服務?Mule ESB。以基本身份驗證的URL格式獲取憑據

+0

你想從授權頭中提取傳入的憑證? – 2014-10-09 18:02:14

+0

不,我想從http:// userName:password @ localhost:8081/esb /等字符串中提取傳入憑據,而不是從HTTP授權標頭中提取。 – 2014-10-09 19:06:40

回答

0

您正在討論某些瀏覽器功能的URL格式。例如,IE的早期版本會從URL中獲取用戶名和密碼,並將其放入授權標題中。我不知道任何仍支持此模式的瀏覽器(http://support2.microsoft.com/kb/834489/en-us)。是否有一個原因,您不能像基本身份驗證中的標準那樣使用授權標頭?

+1

Thx爲答案。是的,IE不支持它。但在這種情況下,我們正在討論標準的linux wget以及Chrome和Firefox等瀏覽器。我需要支持Basic Auth的兩種情況,因爲它就像一個安全的Web代理,我不知道它將如何被調用。 ESB必須執行所有情況。 – 2014-10-09 17:40:05

0

如果你想傳遞的憑證使用騾子。然後,你可以採取以下例如遠程服務.. 在這裏,我想POST請求到具有HTTP認證的用戶名..一個外部web服務的SOAP - 用戶名和密碼的密碼在這裏:

<http:outbound-endpoint exchange-pattern="request-response" host="localhost" user="username" password="password" port="8090" path="designation" doc:name="HTTP" method="POST"/> 

或交替,我們可以在出站端點使用它的URL

<http:outbound-endpoint exchange-pattern="request-response" doc:name="HTTP" method="POST" address="http://username:[email protected]:8090/designation"/> 
+0

Thx爲答案。這種結構適用於出站端點。在我的情況下,我爲此生成http授權標頭。問題是從傳入的URL獲取用戶名和密碼,但ESB只在主機,端口和上下文路徑上拆分url字符串。在主機名之前以URL形式傳遞的憑證丟失。 – 2014-10-09 18:06:57