private boolean addClientIPToTransactionState()

in aws-xray-agent/src/main/java/com/amazonaws/xray/agent/runtime/handlers/upstream/ServletHandler.java [124:138]


    private boolean addClientIPToTransactionState(HttpNetworkProtocolRequestEvent requestEvent, XRayTransactionState transactionState) {
        String clientIP = requestEvent.getHeaderData(FORWARDED_FOR_KEY_UPPER);
        boolean forwarded = true;

        if (clientIP == null || clientIP.isEmpty()) {
            clientIP = requestEvent.getHeaderData(FORWARDED_FOR_KEY_LOWER);
        }
        if (clientIP == null || clientIP.isEmpty()) {
            clientIP = requestEvent.getRemoteIPAddress();
            forwarded = false;
        }

        transactionState.withClientIP(clientIP);
        return forwarded;
    }