public FullHttpRequest apply()

in gremlin-client/src/main/java/software/amazon/neptune/cluster/LBAwareHandshakeInterceptor.java [62:94]


    public FullHttpRequest apply(FullHttpRequest request) {
        logger.trace("iamAuthConfig: {}, serviceRegion: {}", iamAuthConfig, serviceRegion);

        if (iamAuthConfig.enableIamAuth() || iamAuthConfig.connectViaLoadBalancer()) {
            request.headers().remove("Host");
            request.headers().remove("host");
            request.headers().add("Host", iamAuthConfig.chooseHostHeader());
        }

        if (iamAuthConfig.enableIamAuth()) {

            try {

                NeptuneNettyHttpSigV4Signer signer = sigV4Signer != null ?
                        sigV4Signer :
                        new NeptuneNettyHttpSigV4Signer(
                                serviceRegion,
                                iamAuthConfig.credentialsProviderChain());

                signer.signRequest(request);

                if (iamAuthConfig.removeHostHeaderAfterSigning()) {
                    request.headers().remove("Host");
                }


            } catch (NeptuneSigV4SignerException e) {
                throw new RuntimeException("Exception occurred while signing the request", e);
            }
        }

        return request;
    }