From 0b5fa9323e5b9d5b39c6421f4fa86bbb00000cd0 Mon Sep 17 00:00:00 2001 From: Martin Vogel <martin.vogel@sinc.de> Date: Tue, 14 Jun 2022 10:56:09 +0200 Subject: [PATCH] #414 Externalize tokenUrl to property file --- .../de/fitconnect/client/ClientFactory.java | 5 ++++ .../fitconnect/client/SubscriberClient.java | 15 ++++++++++++ .../de/fitconnect/dependency/SdkModule.java | 24 +++++++++++++++++-- dependency/src/main/resources/sdk.properties | 1 + 4 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 client/src/main/java/de/fitconnect/client/SubscriberClient.java create mode 100644 dependency/src/main/resources/sdk.properties diff --git a/client/src/main/java/de/fitconnect/client/ClientFactory.java b/client/src/main/java/de/fitconnect/client/ClientFactory.java index 6b0f208ee..6ab8712ac 100644 --- a/client/src/main/java/de/fitconnect/client/ClientFactory.java +++ b/client/src/main/java/de/fitconnect/client/ClientFactory.java @@ -4,6 +4,7 @@ import com.google.inject.Guice; import com.google.inject.Injector; import de.fitconnect.dependency.SdkModule; import fitconnect.api.services.Sender; +import fitconnect.api.services.Subscriber; public class ClientFactory { @@ -12,4 +13,8 @@ public class ClientFactory { public static SenderClient senderClient(){ return new SenderClient(injector.getInstance(Sender.class)); } + + public static SubscriberClient subscriberClient(){ + return new SubscriberClient(injector.getInstance(Subscriber.class)); + } } diff --git a/client/src/main/java/de/fitconnect/client/SubscriberClient.java b/client/src/main/java/de/fitconnect/client/SubscriberClient.java new file mode 100644 index 000000000..0d262745f --- /dev/null +++ b/client/src/main/java/de/fitconnect/client/SubscriberClient.java @@ -0,0 +1,15 @@ +package de.fitconnect.client; + +import com.google.inject.Inject; +import fitconnect.api.services.Subscriber; + +public class SubscriberClient { + + private final Subscriber subscriber; + + @Inject + public SubscriberClient(final Subscriber subscriber){ + this.subscriber = subscriber; + } + +} diff --git a/dependency/src/main/java/de/fitconnect/dependency/SdkModule.java b/dependency/src/main/java/de/fitconnect/dependency/SdkModule.java index d09d1a48e..583f01e7f 100644 --- a/dependency/src/main/java/de/fitconnect/dependency/SdkModule.java +++ b/dependency/src/main/java/de/fitconnect/dependency/SdkModule.java @@ -2,6 +2,8 @@ package de.fitconnect.dependency; import com.google.inject.AbstractModule; import com.google.inject.Provides; +import com.google.inject.name.Named; +import com.google.inject.name.Names; import fitconnect.api.services.Sender; import fitconnect.api.services.Subscriber; import fitconnect.api.services.auth.OAuthService; @@ -15,10 +17,17 @@ import fitconnect.impl.crypto.JWECryptoService; import fitconnect.impl.validation.KeyValidator; import fitconnect.impl.validation.MetadataSubmissionValidator; +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + public class SdkModule extends AbstractModule { @Override protected void configure() { + + bindConfigProperties(); + bind(CryptoService.class).to(JWECryptoService.class); bind(CertificateValidator.class).to(KeyValidator.class); bind(MetadataValidator.class).to(MetadataSubmissionValidator.class); @@ -28,8 +37,19 @@ public class SdkModule extends AbstractModule { } @Provides - static OAuthService provideOAuthService() { - return new MonoPublisherOAuthService("https://auth-testing.fit-connect.fitko.dev/token"); + OAuthService provideOAuthService(@Named("tokenUrl") String tokenUrl) { + return new MonoPublisherOAuthService(tokenUrl); } + private void bindConfigProperties() { + try { + final ClassLoader classloader = Thread.currentThread().getContextClassLoader(); + final InputStream is = classloader.getResourceAsStream("sdk.properties"); + final Properties properties = new Properties(); + properties.load(is); + Names.bindProperties(binder(), properties); + } catch (IOException e) { + e.printStackTrace(); + } + } } diff --git a/dependency/src/main/resources/sdk.properties b/dependency/src/main/resources/sdk.properties new file mode 100644 index 000000000..ebcfeba90 --- /dev/null +++ b/dependency/src/main/resources/sdk.properties @@ -0,0 +1 @@ +tokenUrl=https://auth-testing.fit-connect.fitko.dev/token \ No newline at end of file -- GitLab