2013-05-29 6 views
1

J'essaie de trouver un moyen élégant de joindre des certificats clients via Apache Camel. Il peut être en Java ou Spring XML.Apache Camel, certificats client

Les serveurs que j'envoie à tous ont un certificat de serveur qui crypterait le trafic, mais je dois joindre le certificat public du client au message avant de l'envoyer. Le serveur contient 15 certificats environ avec leurs clés privées correspondantes.

Ma configuration principale est écrite au format Spring XML, donc je ne suis pas sûr de savoir comment l'obtenir en ajoutant des certificats clients.

(je suis un gars .NET avec Java minimal et 0 expérience Linux)

Spring Exemple:

<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>  

Répondre

1

Vous devez préconfigurer un ensemble de SSLContextParameters et vous pouvez ajouter selon le certificat que vous vouloir le point de terminaison http. Vous pouvez choisir d'acheminer vers différents points de terminaison avec des certificats différents.

Il est décrit dans les documents Camel here: