Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Camel 2.17+;_Java_Ssl_Apache Camel_Jetty - Fatal编程技术网

Java 如何使用Camel 2.17+;

Java 如何使用Camel 2.17+;,java,ssl,apache-camel,jetty,Java,Ssl,Apache Camel,Jetty,我使用ApacheCamel 2.17.1,在Jetty组件()上设置SSL客户端身份验证时遇到一些问题。服务器SSL的第一部分运行平稳(设置服务器密钥库并从浏览器访问HTTPS端点)。现在,我尝试通过添加另一个需要客户端证书的路由(使用不同的http端口)来丰富应用程序 从文档中可以看出,这可以通过以下方式实现,因为SSL属性不是通过Camel直接公开的: <bean id="jetty" class="org.apache.camel.component.jetty.JettyHttp

我使用ApacheCamel 2.17.1,在Jetty组件()上设置SSL客户端身份验证时遇到一些问题。服务器SSL的第一部分运行平稳(设置服务器密钥库并从浏览器访问HTTPS端点)。现在,我尝试通过添加另一个需要客户端证书的路由(使用不同的http端口)来丰富应用程序

从文档中可以看出,这可以通过以下方式实现,因为SSL属性不是通过Camel直接公开的:

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

有人能帮我找到一个基于更新版本的Apache Camel(如2.17)的解决方案吗?

您是否尝试过使用文档中提到的替代方法:

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

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

诚然,它要求您在URI中指定sslContextParametersRef参数,但它应该可以工作。

看起来像,但文档尚未更新。(注意:
SslSelectChannelConnector
是Jetty 8及更早版本的旧类)
<camel:sslContextParameters id="sslContextParameters">
    <camel:keyManagers keyPassword="keyPassword">
        <camel:keyStore 
          resource="/users/home/server/keystore.jks" 
          password="keystorePassword"/>
    </camel:keyManagers>
</camel:sslContextParameters>

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