gpt4 book ai didi

java - 如何使用 Camel 2.17+ 配置 Jetty SSL 连接器

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:49 27 4
gpt4 key购买 nike

我使用 Apache Camel 2.17.1,在 Jetty 组件 ( http://camel.apache.org/jetty.html ) 上设置 SSL 客户端身份验证时遇到一些问题。服务器 SSL 的第一部分运行顺利(设置服务器 keystore 并从浏览器访问 HTTPS 端点)。现在我尝试通过添加另一个需要客户端证书的路由(具有不同的 http 端口)来丰富应用程序。

根据文档,这可以通过以下方式实现,因为 Camel 不直接公开 SSL 属性:

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

看起来文档没有更新,因为这些字段名称在 SslContextFactory 中不再存在。我设法找到其他候选人,但出现错误:

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

有人可以帮我找到一个基于较新版本的 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 参数,但它应该可以工作。

关于java - 如何使用 Camel 2.17+ 配置 Jetty SSL 连接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38305936/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com