OpenAPITools / OpenAPITools/openapi-generator

[REQ] option to disable protocol upgrade for Apache client

Open
#20,974 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Enhancement: Feature
Dominant language
Java
Stars
26.8k
Forks
7.7k
PR merge metrics
PR metrics pending

Description

Is your feature request related to a problem? Please describe.

Recent versions of Apache httpclient default to trying to upgrade TLS. This is incompatible with certain middleware such as envoy/istio as documented at https://github.com/istio/istio/issues/53239

The suggested workaround is to disable that behaviour in the client by using setProtocolUpgradeEnabled

Describe the solution you'd like

Add support for setting this on the client for all requests. Note that the method only exists on recent versions so will have to be graceful (do nothing if the client version is below 5.4)

Describe alternatives you've considered

  • use a non Apache client
  • force the Apache version to remain outdated, but this can conflict with other deps

Additional context

As per the attached issue, this will start to become a more prevalent issue as spring etc update their dependency version, resulting in mysterious errors in run time whenever envoy is used. Providing an option around it is the best path forward.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the Apache client request setup and the use of setProtocolUpgradeEnabled, then check how Apache HttpClient versions below 5.4 are handled. Done means an option controls this behavior for all requests while older client versions remain unaffected.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.