2014-10-09 96 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