From 83b4336ca8c37642985046fb76368f0a571acdcd Mon Sep 17 00:00:00 2001 From: Ian Date: Thu, 2 Apr 2026 15:18:15 -0400 Subject: [PATCH] OCLOMRS-1122: Undo HTML-encoding of OCL API key --- .../openconceptlab/ImportServiceImpl.java | 5 +++-- .../openconceptlab/ImportServiceTest.java | 21 +++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/openconceptlab/ImportServiceImpl.java b/api/src/main/java/org/openmrs/module/openconceptlab/ImportServiceImpl.java index 615d112..0b1f060 100644 --- a/api/src/main/java/org/openmrs/module/openconceptlab/ImportServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/openconceptlab/ImportServiceImpl.java @@ -10,6 +10,7 @@ package org.openmrs.module.openconceptlab; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.text.StringEscapeUtils; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.criterion.Order; @@ -363,13 +364,13 @@ public Subscription getSubscription() { return null; } Subscription subscription = new Subscription(); - subscription.setUrl(url); + subscription.setUrl(StringEscapeUtils.unescapeHtml4(url)); String uuid = adminService.getGlobalProperty(OpenConceptLabConstants.GP_SUBSCRIPTION_UUID); subscription.setUuid(uuid); String token = adminService.getGlobalProperty(OpenConceptLabConstants.GP_TOKEN); - subscription.setToken(token); + subscription.setToken(StringEscapeUtils.unescapeHtml4(token)); String validationType = adminService.getGlobalProperty(OpenConceptLabConstants.GP_VALIDATION_TYPE); if (StringUtils.isNotBlank(validationType)) { diff --git a/api/src/test/java/org/openmrs/module/openconceptlab/ImportServiceTest.java b/api/src/test/java/org/openmrs/module/openconceptlab/ImportServiceTest.java index 39ad3bf..ca5bfaf 100644 --- a/api/src/test/java/org/openmrs/module/openconceptlab/ImportServiceTest.java +++ b/api/src/test/java/org/openmrs/module/openconceptlab/ImportServiceTest.java @@ -200,6 +200,27 @@ public void saveSubscription_shouldSaveSubscription() throws Exception { assertThat(subscription, is(newSubscription)); } + /** + * @see ImportServiceImpl#getSubscription() + * @Verifies unescapes HTML entities in token and URL from global properties + */ + @Test + public void getSubscription_shouldUnescapeHtmlEntitiesInTokenAndUrl() throws Exception { + String escapedToken = "abc&def<ghi"; + String expectedToken = "abc&def