Java 在Camunda的ExternalTaskClient中启用HTTPS
大家好,camunda的用户同事,目前我正在开发一个项目,在这个项目中,我使用的是来自camunda的 我问自己是否有可能让ExternalTaskClient使用Https 我看了一下罐子,找不到任何关于如何处理这个问题的提示。我看到代码阻止RequestExecutor通过Apache中的HttpClientBuilder初始化其HttpClientJava 在Camunda的ExternalTaskClient中启用HTTPS,java,ssl,https,camunda,Java,Ssl,Https,Camunda,大家好,camunda的用户同事,目前我正在开发一个项目,在这个项目中,我使用的是来自camunda的 我问自己是否有可能让ExternalTaskClient使用Https 我看了一下罐子,找不到任何关于如何处理这个问题的提示。我看到代码阻止RequestExecutor通过Apache中的HttpClientBuilder初始化其HttpClient HttpClientBuilder httpClientBuilder = HttpClients.custom() .useSystem
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,则此解决方案已准备好进行垃圾处理,这意味着它非常容易受到攻击