in gremlin-client/src/main/java/software/amazon/neptune/cluster/HandshakeInterceptorConfigurator.java [62:107]
public void apply(Cluster.Builder builder, EndpointCollection endpoints) {
if (endpoints == null || endpoints.isEmpty()) {
return;
}
if (isDirectConnection) {
builder.port(port);
for (Endpoint endpoint : endpoints) {
builder.addContactPoint(endpoint.getAddress());
}
} else {
builder.port(proxyPort);
if (proxyAddress != null) {
builder.addContactPoint(proxyAddress);
}
}
if (interceptor != null) {
builder.handshakeInterceptor(interceptor);
} else {
IamAuthConfig.IamAuthConfigBuilder iamAuthConfigBuilder =
IamAuthConfig.builder()
.addNeptuneEndpoints(endpoints.stream().map(Endpoint::getAddress).collect(Collectors.toList()))
.setNeptunePort(port)
.setServiceRegion(serviceRegion)
.setIamProfile(iamProfile)
.setCredentials(credentials);
if (enableIamAuth) {
iamAuthConfigBuilder.enableIamAuth();
}
if (!isDirectConnection) {
iamAuthConfigBuilder.connectViaLoadBalancer();
}
if (removeHostHeader) {
iamAuthConfigBuilder.removeHostHeaderAfterSigning();
}
IamAuthConfig iamAuthConfig = iamAuthConfigBuilder.build();
builder.handshakeInterceptor(new LBAwareHandshakeInterceptor(iamAuthConfig));
}
}