Java 在Camunda的ExternalTaskClient中启用HTTPS

Java 在Camunda的ExternalTaskClient中启用HTTPS,java,ssl,https,camunda,Java,Ssl,Https,Camunda,大家好,camunda的用户同事,目前我正在开发一个项目,在这个项目中,我使用的是来自camunda的 我问自己是否有可能让ExternalTaskClient使用Https 我看了一下罐子,找不到任何关于如何处理这个问题的提示。我看到代码阻止RequestExecutor通过Apache中的HttpClientBuilder初始化其HttpClient HttpClientBuilder httpClientBuilder = HttpClients.custom() .useSystem

大家好,camunda的用户同事,目前我正在开发一个项目,在这个项目中,我使用的是来自camunda的

我问自己是否有可能让ExternalTaskClient使用Https

我看了一下罐子,找不到任何关于如何处理这个问题的提示。我看到代码阻止RequestExecutor通过Apache中的HttpClientBuilder初始化其HttpClient

HttpClientBuilder httpClientBuilder = HttpClients.custom()
  .useSystemProperties()
  .addInterceptorLast(requestInterceptorHandler);
this.httpClient = httpClientBuilder.build();
我又看了一眼,认为我可以通过CustomInterceptor实现Https。但是CustomInterceptor只是将附加信息添加到http头中

后来我又开始搜索,发现了以下内容。通过阅读这些评论,我看到了一个主要涉及ApacheHttpClient的定制及其在RequestExecutor中的创建的示例。公共关系从未合并

长话短说,ExternalTaskClient支持Https吗?(即使有变通办法)

致意 托马斯

编辑: 我从ExternalTaskClientBuilderImpl扩展了名为SSLExternaTaskClientWrapper的类,重写了initEngineClient()方法,并为RequestExecutor实例化了一个包装器,该包装器从RequestExecutor扩展而来,并重写了Apache HttpClient的初始化。就像《米诺洛特》里说的那样。我没有调用ExternalTaskClient.create()来创建新的ExternalTaskClient,而是实例化了我的SSLExternalTaskClientWrapper

优点:

  • 可以使用SSL/TLS上下文设置HTTP客户端
缺点:

  • ExternalTaskCLient的每次更新的维护
  • 如果HttpClient获得private和/或initHttpClient()方法获得private,则此解决方案已准备好进行垃圾处理,这意味着它非常容易受到攻击
综上所述,我必须说,在外部任务客户端能够通过Https执行请求之前,我无法在某些生产环境中看到它。看来我得自己去拿车了

我的问题仍然是:)