【问题标题】:How do I configure sslContextParameters for camel-undertow to use with the rest DSL?如何为 camel-undertow 配置 sslContextParameters 以与其他 DSL 一起使用?
【发布时间】:2016-05-10 06:34:27
【问题描述】:

目前,我正在使用 camel-jetty 设置其余的 DSL,这非常简单,我创建了一个 SSLContextParameters 对象,然后像这样传递它:

JettyHttpComponent jetty = context.getComponent("jetty", JettyHttpComponent.class);
jetty.setSslContextParameters(sslContextParameters);

就是这样,但是在 Undertow 中,没有任何方法可以做到这一点,the documentation 中提到的唯一一件事是它支持 sslContextParameters 选项,但是没有方法或任何东西可以设置这样的选项。

如何将我的 sslContextParameters 对象分配给 Undertow 组件,以便我可以将 SSL 连接与其他 DSL 一起使用?

顺便说一下,我尝试过设置一个UndertowComponent对象并将选项添加为组件参数,还尝试通过restConfiguration()在EndpointProperties中添加选项,但无济于事。

我还浏览了 2.16.1 的 github 源代码,这是 maven Central 中的最新版本,我只在 UndertowRegistry 中看到了对 ssl 上下文的引用,而 setSslContext 设置器甚至从未在任何地方使用过!

【问题讨论】:

    标签: rest apache-camel undertow


    【解决方案1】:

    您不能在 camel-undertow 上的组件级别设置 SSL。我已经记录了一张票,以便在即将发布的版本中实现这一点:https://issues.apache.org/jira/browse/CAMEL-9559

    您需要在 rest-dsl 配置中将 SSL 配置为 endpointProperty。您可以在以下位置找到更多详细信息:http://camel.apache.org/rest-dsl。并且您需要事先将 sslContextParameters 添加到 Camel 注册表,以便 endpointProperty 可以通过其 id 查找它。

    【讨论】:

      【解决方案2】:

      SSL 上下文可以通过以下方式分配:

          UndertowComponent uc = new UndertowComponent(context);
      
          KeyStoreParameters trust_ksp = new KeyStoreParameters();
          trust_ksp.setResource("/cacerts.jks");
          trust_ksp.setPassword("changeit");
          TrustManagersParameters trustp = new TrustManagersParameters();
          trustp.setKeyStore(trust_ksp);
      
          SSLContextParameters scp = new SSLContextParameters();
          scp.setTrustManagers(trustp);
          uc.setSslContextParameters(scp);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-07
        • 1970-01-01
        • 1970-01-01
        • 2015-04-27
        • 2012-01-04
        • 2016-01-03
        • 1970-01-01
        相关资源
        最近更新 更多