nastra commented on code in PR #13190:
URL: https://github.com/apache/iceberg/pull/13190#discussion_r2123896669
##########
core/src/main/java/org/apache/iceberg/rest/HTTPClient.java:
##########
@@ -368,8 +374,48 @@ static HttpClientConnectionManager
configureConnectionManager(Map<String, String
properties, REST_MAX_CONNECTIONS,
REST_MAX_CONNECTIONS_DEFAULT)))
.setMaxConnPerRoute(
PropertyUtil.propertyAsInt(
- properties, REST_MAX_CONNECTIONS_PER_ROUTE,
REST_MAX_CONNECTIONS_PER_ROUTE_DEFAULT))
- .build();
+ properties,
+ REST_MAX_CONNECTIONS_PER_ROUTE,
+ REST_MAX_CONNECTIONS_PER_ROUTE_DEFAULT));
+
+ TLSConfigurer tlsConfigurer = loadTlsConfigurer(properties);
+ if (tlsConfigurer != null) {
+ connectionManagerBuilder.setTlsSocketStrategy(
+ new DefaultClientTlsStrategy(
+ tlsConfigurer.sslContext(),
+ tlsConfigurer.supportedProtocols(),
+ tlsConfigurer.supportedCipherSuites(),
+ SSLBufferMode.STATIC,
+ tlsConfigurer.hostnameVerifier()));
+ }
+
+ return connectionManagerBuilder.build();
+ }
+
+ private static TLSConfigurer loadTlsConfigurer(Map<String, String>
properties) {
+ String impl = properties.get(REST_TLS_CONFIGURER);
+ if (impl == null) {
+ return null;
+ }
+
+ DynConstructors.Ctor<TLSConfigurer> ctor;
+ try {
+ ctor =
+ DynConstructors.builder(TLSConfigurer.class)
+ .loader(HTTPClient.class.getClassLoader())
+ .impl(impl)
+ .buildChecked();
+ } catch (NoSuchMethodException e) {
+ throw new IllegalArgumentException(
+ String.format(
+ "Cannot initialize TLSConfigurer implementation %s: %s", impl,
e.getMessage()),
+ e);
+ }
+
+ TLSConfigurer configurer = ctor.newInstance();
Review Comment:
in places like `CatalogUtil` we catch the `ClassCastException` in case the
given class isn't an instance of what we're expecting, so maybe we should do
the same here and also verify that with a small unit test
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]