2016-07-11 11 views
1

私はApache Camel 2.17.1を使用していますが、Jettyコンポーネント(http://camel.apache.org/jetty.html)にSSLクライアント認証を設定する際にいくつか問題があります。サーバーSSLの最初の部分は円滑に実行されます(サーバーのキーストアを設定し、ブラウザーからHTTPSエンドポイントにアクセスします)。今では、クライアント証明書が必要な別のルート(別のhttpポート)を追加してアプリケーションを充実させようとしています。Camel 2.17以降でJetty SSL Connectorを設定する方法

<bean id="jetty" class="org.apache.camel.component.jetty.JettyHttpComponent"> 
<property name="sslSocketConnectors"> 
    <map> 
     <entry key="8043"> 
      <bean class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector"> 
       <property name="password"value="..."/> 
       <property name="keyPassword"value="..."/> 
       <property name="keystore"value="..."/> 
       <property name="needClientAuth"value="..."/> 
       <property name="truststore"value="..."/> 
      </bean> 
     </entry> 
    </map> 
</property> 

これらのフィールド名ので、ドキュメントは、更新されなかったようですが、縫い目:SSLのプロパティはキャメルによって直接公開されないので、これは、を介して達成することができるドキュメントから

SslContextFactoryにはもう存在しません。私は他の候補者を見つけるために管理しますが、エラーが発生しました:

"org.eclipse.jetty.server.ssl.SslSelectChannelConnector" class doesn't exist anymore. 
The JettyHttpComponent.setSslSocketConnectors() method accepts Connector interface objects. 

誰かが(2.17など)Apacheのキャメルの新しいバージョンをベースにしたソリューションを見つけることで私を助けてもらえますか?

+1

[Camel 2.17は新しいJetty 9コネクタを使用しています](https://github.com/apache/camel/blob/camel-2.17.1/components/camel-jetty-common/src/main/java) /org/apache/camel/component/jetty/JettyHttpComponent.java#L623-L629)、ドキュメントは更新されていません。 (注: 'SslSelectChannelConnector'はJetty 8以前の古いクラスです) –

答えて

0

あなたはまた、ドキュメントで述べたように、別のアプローチを使用してみました:

<camel:sslContextParameters id="sslContextParameters"> 
    <camel:keyManagers keyPassword="keyPassword"> 
     <camel:keyStore 
      resource="https://stackoverflow.com/users/home/server/keystore.jks" 
      password="keystorePassword"/> 
    </camel:keyManagers> 
</camel:sslContextParameters> 

<from uri="jetty:https://127.0.0.1/mail/?sslContextParametersRef=sslContextParameters"/> 

確かに、それはあなたのURIにsslContextParametersRefパラメータを指定する必要がありますが、それは動作するはずです。

関連する問題