From ff8d780a70d4af3ba35e0a0c2d5de1bf11191ae5 Mon Sep 17 00:00:00 2001 From: lovesh-ap Date: Tue, 4 Feb 2025 09:43:38 +0530 Subject: [PATCH] Auto Detect SE/Validator URL to connect based on host --- .../utils/CollectorConfigurationUtils.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/newrelic-security-agent/src/main/java/com/newrelic/agent/security/instrumentator/utils/CollectorConfigurationUtils.java b/newrelic-security-agent/src/main/java/com/newrelic/agent/security/instrumentator/utils/CollectorConfigurationUtils.java index a630488aa..bcf6c0c37 100644 --- a/newrelic-security-agent/src/main/java/com/newrelic/agent/security/instrumentator/utils/CollectorConfigurationUtils.java +++ b/newrelic-security-agent/src/main/java/com/newrelic/agent/security/instrumentator/utils/CollectorConfigurationUtils.java @@ -49,8 +49,7 @@ public static CollectorConfigurationUtils getInstance() { */ public static CollectorConfig populateCollectorConfig() { CollectorConfig collectorConfig = new CollectorConfig(); - String validatorServiceEndpointUrl = NewRelic.getAgent().getConfig() - .getValue("security.validator_service_url", "wss://csec.nr-data.net"); + String validatorServiceEndpointUrl = getValidatorServiceEndpointUrl(NewRelic.getAgent().getConfig().getValue("host", "collector.newrelic.com")); K2ServiceInfo serviceInfo = new K2ServiceInfo(); serviceInfo.setValidatorServiceEndpointURL(validatorServiceEndpointUrl); @@ -76,6 +75,24 @@ public static CollectorConfig populateCollectorConfig() { return collectorConfig; } + private static String getValidatorServiceEndpointUrl(String host) { + String validatorServiceEndpointUrl = NewRelic.getAgent().getConfig() + .getValue("security.validator_service_url"); + if(StringUtils.isNotBlank(validatorServiceEndpointUrl)){ + return validatorServiceEndpointUrl; + } + switch (host) { + case "collector.eu.newrelic.com": + return "wss://csec.eu01.nr-data.net"; + case "gov-collector.newrelic.com": + return "wss://csec-gov.nr-data.net"; + case "staging-collector.newrelic.com": + return "wss://csec-staging.nr-data.net"; + default: + return "wss://csec.nr-data.net"; + } + } + private static String parseLicenseKey(Object license_key) { if(license_key instanceof String){ return StringUtils.strip((String) license_key, "'\"");