in kyuubi-relocated-hive-metastore-client/src/main/java/org/apache/kyuubi/shaded/hive/metastore/HiveMetaStoreClient.java [301:347]
private THttpClient createHttpClient(URI store, boolean useSSL)
throws MetaException, TTransportException {
String path = MetaStoreUtils.getHttpPath(MetastoreConf.getVar(conf, ConfVars.THRIFT_HTTP_PATH));
String urlScheme;
if (useSSL || Objects.equals(store.getScheme(), "https")) {
urlScheme = "https://";
} else {
urlScheme = "http://";
}
String httpUrl = urlScheme + store.getHost() + ":" + store.getPort() + path;
HttpClientBuilder httpClientBuilder = createHttpClientBuilder();
THttpClient tHttpClient;
try {
if (useSSL) {
String trustStorePath = MetastoreConf.getVar(conf, ConfVars.SSL_TRUSTSTORE_PATH).trim();
if (trustStorePath.isEmpty()) {
throw new IllegalArgumentException(
ConfVars.SSL_TRUSTSTORE_PATH + " Not configured for SSL connection");
}
String trustStorePassword =
MetastoreConf.getPassword(conf, MetastoreConf.ConfVars.SSL_TRUSTSTORE_PASSWORD);
String trustStoreType = MetastoreConf.getVar(conf, ConfVars.SSL_TRUSTSTORE_TYPE).trim();
String trustStoreAlgorithm =
MetastoreConf.getVar(conf, ConfVars.SSL_TRUSTMANAGERFACTORY_ALGORITHM).trim();
tHttpClient =
SecurityUtils.getThriftHttpsClient(
httpUrl,
trustStorePath,
trustStorePassword,
trustStoreAlgorithm,
trustStoreType,
httpClientBuilder);
} else {
tHttpClient = new THttpClient(httpUrl, httpClientBuilder.build());
}
} catch (Exception e) {
if (e instanceof TTransportException) {
throw (TTransportException) e;
} else {
throw new MetaException(
"Failed to create http transport client to url: " + httpUrl + ". Error:" + e);
}
}
LOG.debug("Created thrift http client for URL: " + httpUrl);
return configureThriftMaxMessageSize(tHttpClient);
}