You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ar...@apache.org on 2022/07/15 16:13:09 UTC

[fineract] branch develop updated: Fineract client builder tenant and username/password are made optional

This is an automated email from the ASF dual-hosted git repository.

arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new c2d5a735d Fineract client builder tenant and username/password are made optional
c2d5a735d is described below

commit c2d5a735d66595a3db5fe205e06a437c782371e9
Author: Arnold Galovics <ga...@gmail.com>
AuthorDate: Fri Jul 15 17:20:26 2022 +0200

    Fineract client builder tenant and username/password are made optional
---
 .../fineract/client/util/FineractClient.java       | 24 ++++++++++++++++------
 .../client/test/FineractClientTechnicalTest.java   |  6 ------
 2 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java b/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
index 9efee26aa..3c44b1e59 100644
--- a/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
+++ b/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
@@ -141,6 +141,8 @@ import org.apache.fineract.client.services.UserGeneratedDocumentsApi;
 import org.apache.fineract.client.services.UsersApi;
 import org.apache.fineract.client.services.WorkingDaysApi;
 import org.apache.fineract.client.util.JSON.GsonCustomConverterFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import retrofit2.Retrofit;
 import retrofit2.converter.scalars.ScalarsConverterFactory;
 
@@ -406,6 +408,8 @@ public final class FineractClient {
 
     public static final class Builder {
 
+        private static final Logger log = LoggerFactory.getLogger(Builder.class);
+
         private final JSON json = new JSON();
         private final OkHttpClient.Builder okBuilder = new OkHttpClient.Builder();
         private final Retrofit.Builder retrofitBuilder = new Retrofit.Builder().addConverterFactory(ScalarsConverterFactory.create())
@@ -488,14 +492,22 @@ public final class FineractClient {
             retrofitBuilder.baseUrl(has("baseURL", baseURL));
 
             // Tenant
-            ApiKeyAuth tenantAuth = new ApiKeyAuth("header", "fineract-platform-tenantid");
-            tenantAuth.setApiKey(has("tenant", tenant));
-            okBuilder.addInterceptor(tenantAuth);
+            if (tenant != null) {
+                ApiKeyAuth tenantAuth = new ApiKeyAuth("header", "fineract-platform-tenantid");
+                tenantAuth.setApiKey(has("tenant", tenant));
+                okBuilder.addInterceptor(tenantAuth);
+            } else {
+                log.warn("Tenant hasn't been configured for the client");
+            }
 
             // BASIC Auth
-            HttpBasicAuth basicAuth = new HttpBasicAuth();
-            basicAuth.setCredentials(has("username", username), has("password", password));
-            okBuilder.addInterceptor(basicAuth);
+            if (username != null && password != null) {
+                HttpBasicAuth basicAuth = new HttpBasicAuth();
+                basicAuth.setCredentials(has("username", username), has("password", password));
+                okBuilder.addInterceptor(basicAuth);
+            } else {
+                log.warn("Username and password haven't been configured for the client");
+            }
 
             OkHttpClient okHttpClient = okBuilder.build();
             retrofitBuilder.client(okHttpClient);
diff --git a/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java b/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java
index 63bb56773..efbe147aa 100644
--- a/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java
+++ b/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java
@@ -44,11 +44,5 @@ public class FineractClientTechnicalTest {
         assertThrows(IllegalStateException.class, () -> {
             FineractClient.builder().build();
         });
-        assertThrows(IllegalStateException.class, () -> {
-            FineractClient.builder().baseURL("https://server/").build();
-        });
-        assertThrows(IllegalStateException.class, () -> {
-            FineractClient.builder().baseURL("https://server/").tenant("default").build();
-        });
     }
 }