public void apply()

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));
        }
    }