2013-05-29 357 views
1

我试图找到一种通过Apache Camel附加客户端证书的优雅方式。它可以是Java或Spring XML。Apache Camel,客户端证书

我要发送给所有服务器的服务器都有服务器证书,它可以加密流量,但我需要在发送消息之前将客户端公共证书附加到消息中。服务器包含15个左右的证书及其对应的私钥。

我的主要配置是用Spring XML编写的,所以我不确定如何使用添加客户端证书。

(我是一个.NET家伙用最少的Java和Linux的0经验)

样品春:

<camel:route>   
    <camel:from uri="direct:GetEligibility"/> 
    <camel:doTry>     
     <camel:choice> 
      <camel:when> 
       <camel:xpath>count(//soapenv:Envelope) = '0'</camel:xpath> 
       <camel:to uri="xslt:xslt/WrapSoap.xsl"/> 
      </camel:when> 
     </camel:choice> 
     <camel:setHeader headerName="CamelHttpMethod"> 
      <camel:constant>POST</camel:constant> 
     </camel:setHeader> 

     <camel:setHeader headerName="Content-Type"> 
      <camel:constant>text/xml; charset=utf-8</camel:constant> 
     </camel:setHeader>  

     <camel:to uri="https://testsite.gov.ca/Services.Secured/FICR_AR022001.asmx"/>   

     <camel:doCatch> 
      <camel:exception>java.lang.Exception</camel:exception> 
      <camel:bean ref="log" method="error"/> 
     </camel:doCatch> 
    </camel:doTry>     
</camel:route>  

回答

1

你需要预先配置一套SSLContextParameters,然后你可以添加证书为准你想要到http端点。您可以选择使用不同的证书路由到不同的终端。

它在Camel文档中有描述here