fix: support JSSE system properties - #175
Conversation
This commit makes a small change to the HttpClientSingleton.setupTLSProtocol() method to allow for the use of mutual TLS (i.e. client authentication). Specifically, the code changes will allow the JSSE-related system properties to be used to specify a client truststore and/or keystore: - javax.net.ssl.trustStore - javax.net.ssl.trustStorePassword - javax.net.ssl.keyStore - javax.net.ssl.keyStorePassword
|
Isn't this a breaking change? I'm not sure just how significant that risk is, but nonetheless I feel it is a breaking behaviour change and it probably disproportionately impacts server environments with different frontend/backend contexts. I also have concerns about Looking at this area of code in general I think we should probably consider the balance of the most common use case vs where customization is required by the user before making a breaking change. For example using In the meantime #174 provides an option for customizing right? via something like: getHttpClient().newBuilder().sslSocketFactory(...).build() |
|
@ricellis and I discussed this via slack and decided not to go with these changes due to the potential change in default behavior for users. It's not clear how popular mTLS is among our users, so we need to be careful not to potentially break existing (non-mTLS) users in order to solve a problem that has unknown scope/prevalence. I'll be looking at alternatives and will submit a new PR if/when appropriate. |
This commit makes a small change to the
HttpClientSingleton.setupTLSProtocol() method
to allow for the use of mutual TLS (i.e. client
authentication).
Specifically, the code changes will allow the JSSE-related
system properties to be used to specify a client truststore
and/or keystore: