2016-11-14 19 views
0

Talend ESBルートを最新バージョンにアップグレードする際、Citrus-frameworkを使用して回帰テストを設定しようとしています。私たちのルートは主に、ローカルCAで保護されたSSL経由のSoapで、認証のための証明書が必要です。私はサンプル・ソープ・プロジェクトに続き、一時的に証明書要件を無効にするように働いていました。私は、ESBルートへのクライアント呼び出しのために証明書を使用するように努力しています。 citrusframework.orgでsample-httpsプロジェクトを見つけましたが、Restサービスのために作成されているように見え、私の石鹸ペイロードでは動作できませんでした。Citrus-Framework SSL over SSLサンプル

私の最終目標は、既存のルートを呼び出してから、ルートの最新バージョンを呼び出し、返されたXMLをある種のGroovyコードと比較して、それらが同一であることを検証することです。

私のプロジェクトで間違っていることを確認するのに役立つSoap over SSLサンプルがありますか?

サンプルhttpsコードを私のsoapプロジェクトに追加しようとしましたが、成功しませんでした。私が得ているエラーは、私がペイロードに有効な証明書を添付していないと確信しているので、私が知っている証明書関連のsslハンドシェイクエラーです。

答えて

0

あなたの設定は、https-sampleと少し異なる必要があります。 Citrus SOAP Webサービスクライアントにメッセージ送信者を設定する必要があります。

<bean class="com.consol.citrus.samples.todolist.config.SoapClientSslConfig"/> 

<citrus-ws:client id="todoClient" 
        request-url="https://localhost:8443" 
        message-sender="sslRequestMessageSender"/> 

証明書は、httpクライアントのSSLコンテキスト内で構成されています。

@Configuration 
public class SoapClientSslConfig { 

    @Bean 
    public HttpClient httpClient() { 
     try { 
      SSLContext sslcontext = SSLContexts.custom() 
        .loadTrustMaterial(new ClassPathResource("keys/citrus.jks").getFile(), "secret".toCharArray(), 
          new TrustSelfSignedStrategy()) 
        .build(); 

      SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(
        sslcontext, NoopHostnameVerifier.INSTANCE); 

      return HttpClients.custom() 
        .setSSLSocketFactory(sslSocketFactory) 
        .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE) 
        .addInterceptorFirst(new HttpComponentsMessageSender.RemoveSoapHeadersInterceptor()) 
        .build(); 
     } catch (IOException | CertificateException | NoSuchAlgorithmException | KeyStoreException | KeyManagementException e) { 
      throw new BeanCreationException("Failed to create http client for ssl connection", e); 
     } 
    } 

    @Bean 
    public HttpComponentsMessageSender sslRequestMessageSender() { 
     return new HttpComponentsMessageSender(httpClient()); 
    } 
} 

サンプルコードはgithubの上で今も入手可能です:https://github.com/christophd/citrus-samples/tree/master/sample-soap-ssl

関連する問題