From 89eef6f90d892db34fea3e191b1806e619dd13e9 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 20 Jul 2023 19:50:44 +0200
Subject: [PATCH] OZG-4044 skip proxy setting when not configured

---
 .../ozgcloud/formcycle/OzgCloudFormDataHttpClient.java |  8 +++++---
 .../de/ozgcloud/formcycle/PluginBundleProperties.java  | 10 +++++-----
 .../formcycle/OzgCloudFormDataHttpClientTest.java      | 10 ++++++++++
 .../de/ozgcloud/formcycle/ProxyConfigTestFactory.java  |  2 +-
 4 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/src/main/java/de/ozgcloud/formcycle/OzgCloudFormDataHttpClient.java b/src/main/java/de/ozgcloud/formcycle/OzgCloudFormDataHttpClient.java
index 7c4df09..6e0d714 100644
--- a/src/main/java/de/ozgcloud/formcycle/OzgCloudFormDataHttpClient.java
+++ b/src/main/java/de/ozgcloud/formcycle/OzgCloudFormDataHttpClient.java
@@ -92,7 +92,7 @@ public class OzgCloudFormDataHttpClient {
 
 	ProxyConfig getProxyConfig() {
 		var proxyConfig = config.getProxyConfig();
-		if (nonNull(proxyConfig.getHost())) {
+		if (isNoneBlank(proxyConfig.getHost())) {
 			return proxyConfig;
 		}
 		if (isNull(systemProxyConfig)) {
@@ -188,8 +188,10 @@ public class OzgCloudFormDataHttpClient {
 
 	HttpClientContext createContext() {
 		var clientContext = HttpClientContext.create();
-		clientContext.setCredentialsProvider(getCredentialsProvider());
-		clientContext.setAuthCache(createAuthCache());
+		if (nonNull(getProxyConfig())) {
+			clientContext.setCredentialsProvider(getCredentialsProvider());
+			clientContext.setAuthCache(createAuthCache());
+		}
 		return clientContext;
 	}
 
diff --git a/src/main/java/de/ozgcloud/formcycle/PluginBundleProperties.java b/src/main/java/de/ozgcloud/formcycle/PluginBundleProperties.java
index 3d17193..bb3f813 100644
--- a/src/main/java/de/ozgcloud/formcycle/PluginBundleProperties.java
+++ b/src/main/java/de/ozgcloud/formcycle/PluginBundleProperties.java
@@ -45,12 +45,12 @@ public class PluginBundleProperties implements IBundleProperties {
 	@Override
 	public Map<String, IBundleConfigParam> getConfigProperties(IPluginResourceHelper resHelper, Locale currentLocale) {
 		var configMap = new LinkedHashMap<String, IBundleConfigParam>();
-		configMap.put(KEY_EINGANGSADAPTER_URL, new BundleConfigParam("Eingangsadapter URL", "", MANDATORY));
+		configMap.put(KEY_EINGANGSADAPTER_URL, new BundleConfigParam(KEY_EINGANGSADAPTER_URL, "", MANDATORY));
 		configMap.put("proxy", new BundleConfigGroupItem("Konfiguration für den Proxy", ""));
-		configMap.put(KEY_PROXY_HOST, new BundleConfigParam("proxyHost", "", NOT_MANDATORY));
-		configMap.put(KEY_PROXY_PORT, new BundleConfigParam("proxyPort", "", NOT_MANDATORY));
-		configMap.put(KEY_PROXY_USER, new BundleConfigParam("proxyUser", "", NOT_MANDATORY));
-		configMap.put(KEY_PROXY_PASSWORD, new BundleConfigParam("proxyPassword", "", NOT_MANDATORY, CRYPTIC_VALUE));
+		configMap.put(KEY_PROXY_HOST, new BundleConfigParam(KEY_PROXY_HOST, "", NOT_MANDATORY));
+		configMap.put(KEY_PROXY_PORT, new BundleConfigParam(KEY_PROXY_PORT, "", NOT_MANDATORY));
+		configMap.put(KEY_PROXY_USER, new BundleConfigParam(KEY_PROXY_USER, "", NOT_MANDATORY));
+		configMap.put(KEY_PROXY_PASSWORD, new BundleConfigParam(KEY_PROXY_PASSWORD, "", NOT_MANDATORY, CRYPTIC_VALUE));
 		return Collections.unmodifiableMap(configMap);
 	}
 }
diff --git a/src/test/java/de/ozgcloud/formcycle/OzgCloudFormDataHttpClientTest.java b/src/test/java/de/ozgcloud/formcycle/OzgCloudFormDataHttpClientTest.java
index ee4bcec..bf92bb5 100644
--- a/src/test/java/de/ozgcloud/formcycle/OzgCloudFormDataHttpClientTest.java
+++ b/src/test/java/de/ozgcloud/formcycle/OzgCloudFormDataHttpClientTest.java
@@ -439,6 +439,16 @@ class OzgCloudFormDataHttpClientTest {
 
 				assertThat(result.getAuthCache()).isEqualTo(authCache);
 			}
+
+			@Test
+			void shouldReturnEmptyContext() {
+				doReturn(null).when(client).getProxyConfig();
+
+				client.createContext();
+
+				verify(client, never()).getCredentialsProvider();
+				verify(client, never()).createAuthCache();
+			}
 		}
 	}
 
diff --git a/src/test/java/de/ozgcloud/formcycle/ProxyConfigTestFactory.java b/src/test/java/de/ozgcloud/formcycle/ProxyConfigTestFactory.java
index 8247b0d..ff4f389 100644
--- a/src/test/java/de/ozgcloud/formcycle/ProxyConfigTestFactory.java
+++ b/src/test/java/de/ozgcloud/formcycle/ProxyConfigTestFactory.java
@@ -27,7 +27,7 @@ public class ProxyConfigTestFactory {
 	public static final Integer PROXY_PORT = Integer.parseInt(PropertiesTestFactory.PROXY_PORT);
 
 	public static ProxyConfig createEmpty() {
-		return ProxyConfig.builder().build();
+		return createBuilder().host("").port(null).user("").password("").build();
 	}
 
 	public static ProxyConfig create() {
-- 
GitLab