From eb615d0ef8475aaa1c481dd7f896f08dd3ba7551 Mon Sep 17 00:00:00 2001 From: Pablo Carle Date: Tue, 21 Jul 2026 09:57:07 +0200 Subject: [PATCH 1/3] check for null entries in eureka properties Signed-off-by: Pablo Carle --- .../apiml/discovery/metadata/MetadataFilterService.java | 6 +++++- .../apiml/discovery/metadata/MetadataFilterServiceTest.java | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java b/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java index db3509b2d4..2b799d6125 100644 --- a/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java +++ b/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java @@ -65,9 +65,13 @@ private boolean isAllowedDomain(String domain) { if (StringUtils.isBlank(domain)) { return true; } + if (domain.endsWith("null")) { // Some services may not have correct path set, so it may be a malformed URL + domain = domain.substring(0, domain.lastIndexOf("null")); + } + var domainToCheck = domain; return allowedDomainsSet.stream().anyMatch(allowedDomain -> { try { - return isAllowed(allowedDomain, domain); + return isAllowed(allowedDomain, domainToCheck); } catch (MalformedURLException e) { return false; } diff --git a/discovery-service/src/test/java/org/zowe/apiml/discovery/metadata/MetadataFilterServiceTest.java b/discovery-service/src/test/java/org/zowe/apiml/discovery/metadata/MetadataFilterServiceTest.java index 1ccf720db7..8036e5fe9e 100644 --- a/discovery-service/src/test/java/org/zowe/apiml/discovery/metadata/MetadataFilterServiceTest.java +++ b/discovery-service/src/test/java/org/zowe/apiml/discovery/metadata/MetadataFilterServiceTest.java @@ -75,7 +75,9 @@ void setUp() throws Exception { "apiml.customKey, https://invalid.org:8080, true", "apiml.documentationUrl, invalid-url, false", "apiml.externalUrl, HTTPS://LOCALHOST:8080, true", - "apiml.externalUrl, HTTPS://INVALID.ORG:8080, false" + "apiml.externalUrl, HTTPS://INVALID.ORG:8080, false", + "apiml.externalUrl, https://invalid.org:8080null, false", + "apiml.externalUrl, https://localhost:8080null, true" }) void shouldVerifyMetadataKeysAndDomains(String metadataKey, String metadataValue, boolean isAllowed) throws Exception { Map metadata = new HashMap<>(); From e9563d48e745d27cd428a549c65d1406da9def7c Mon Sep 17 00:00:00 2001 From: Pablo Carle Date: Tue, 21 Jul 2026 13:39:03 +0200 Subject: [PATCH 2/3] Apply suggestion from @arxioly Co-authored-by: Elena Kubantseva Signed-off-by: Pablo Carle --- .../apiml/discovery/metadata/MetadataFilterService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java b/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java index 2b799d6125..cfc0ed2641 100644 --- a/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java +++ b/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java @@ -65,10 +65,10 @@ private boolean isAllowedDomain(String domain) { if (StringUtils.isBlank(domain)) { return true; } - if (domain.endsWith("null")) { // Some services may not have correct path set, so it may be a malformed URL - domain = domain.substring(0, domain.lastIndexOf("null")); - } - var domainToCheck = domain; +// Some services may not have correct path set, so it may be a malformed URL +var domainToCheck = domain.endsWith("null") + ? domain.substring(0, domain.lastIndexOf("null")) + : domain; return allowedDomainsSet.stream().anyMatch(allowedDomain -> { try { return isAllowed(allowedDomain, domainToCheck); From df2d5bd31d2968a8dfbf15079b1bf36e18d040da Mon Sep 17 00:00:00 2001 From: Pablo Carle Date: Tue, 21 Jul 2026 13:39:53 +0200 Subject: [PATCH 3/3] Update MetadataFilterService.java Signed-off-by: Pablo Carle --- .../apiml/discovery/metadata/MetadataFilterService.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java b/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java index cfc0ed2641..60a9044d66 100644 --- a/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java +++ b/discovery-service/src/main/java/org/zowe/apiml/discovery/metadata/MetadataFilterService.java @@ -65,10 +65,8 @@ private boolean isAllowedDomain(String domain) { if (StringUtils.isBlank(domain)) { return true; } -// Some services may not have correct path set, so it may be a malformed URL -var domainToCheck = domain.endsWith("null") - ? domain.substring(0, domain.lastIndexOf("null")) - : domain; + // Some services may not have correct path set, so it may be a malformed URL + var domainToCheck = domain.endsWith("null") ? domain.substring(0, domain.lastIndexOf("null")) : domain; return allowedDomainsSet.stream().anyMatch(allowedDomain -> { try { return isAllowed(allowedDomain, domainToCheck);