diff --git a/api/src/main/java/dev/fitko/fitconnect/api/config/ApplicationConfig.java b/api/src/main/java/dev/fitko/fitconnect/api/config/ApplicationConfig.java index 4f054d5dacd0b845d5c733aae38836dee5912de6..0061adf8fb4882c92059d5bd99106005eca58874 100644 --- a/api/src/main/java/dev/fitko/fitconnect/api/config/ApplicationConfig.java +++ b/api/src/main/java/dev/fitko/fitconnect/api/config/ApplicationConfig.java @@ -18,16 +18,11 @@ public class ApplicationConfig { @Builder.Default private String httpProxyHost = ""; - @Builder.Default private Integer httpProxyPort = 0; - @Builder.Default private Integer requestTimeoutInSeconds = 30; - @Builder.Default - private String privateSigningKeyPath = ""; - private SenderConfig senderConfig; private SubscriberConfig subscriberConfig; @@ -37,8 +32,6 @@ public class ApplicationConfig { private EnvironmentName activeEnvironment; - private ResourcePaths resourcePaths; - public Environment getEnvironmentByName(final EnvironmentName environmentName) { if (environments.containsKey(environmentName)) { return environments.get(environmentName); @@ -52,31 +45,29 @@ public class ApplicationConfig { } public String getOAuthTokenEndpoint() { - return getCurrentEnvironment().getAuthBaseUrl() + resourcePaths.getAuthTokenPath(); + return getCurrentEnvironment().getAuthBaseUrl() + ResourcePaths.AUTH_TOKEN_PATH; } - public String getSubmissionsEndpoint() { - return getSubmissionBaseUrl() + resourcePaths.getSubmissionsPath(); - } + public String getSubmissionsEndpoint() { return getSubmissionBaseUrl() + ResourcePaths.SUBMISSIONS_PATH;} public String getSubmissionEndpoint() { - return getSubmissionBaseUrl() + resourcePaths.getSubmissionPath(); + return getSubmissionBaseUrl() + ResourcePaths.SUBMISSION_PATH; } public String getAttachmentEndpoint() { - return getSubmissionBaseUrl() + resourcePaths.getSubmissionAttachmentPath(); + return getSubmissionBaseUrl() + ResourcePaths.SUBMISSION_ATTACHMENT_PATH; } public String getEventLogEndpoint() { - return getSubmissionBaseUrl() + resourcePaths.getEventLogPath(); + return getSubmissionBaseUrl() + ResourcePaths.EVENTS_PATH; } public String destinationEndpoint() { - return getSubmissionBaseUrl() + resourcePaths.getDestinationPath(); + return getSubmissionBaseUrl() + ResourcePaths.DESTINATIONS_PATH; } public String destinationKeyEndpoint() { - return getSubmissionBaseUrl() + resourcePaths.getDestinationKeyPath(); + return getSubmissionBaseUrl() + ResourcePaths.DESTINATIONS_KEY_PATH; } private String getSubmissionBaseUrl() { diff --git a/api/src/main/java/dev/fitko/fitconnect/api/config/ResourcePaths.java b/api/src/main/java/dev/fitko/fitconnect/api/config/ResourcePaths.java index 5fa64a5b311e7658e821b2784af09cfe9ab19ef1..5cf8a55bfc097a1da6250d184b5522e34bc9f3e1 100644 --- a/api/src/main/java/dev/fitko/fitconnect/api/config/ResourcePaths.java +++ b/api/src/main/java/dev/fitko/fitconnect/api/config/ResourcePaths.java @@ -1,24 +1,15 @@ package dev.fitko.fitconnect.api.config; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +public final class ResourcePaths { -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class ResourcePaths { + private ResourcePaths() {} - private String authTokenPath; - - private String destinationPath; - private String destinationKeyPath; - - private String eventLogPath; - - private String submissionPath; - private String submissionsPath; - private String submissionAttachmentPath; + public static final String AUTH_TOKEN_PATH = "/token"; + public static final String DESTINATIONS_PATH = "/v1/destinations/{destinationId}"; + public static final String DESTINATIONS_KEY_PATH = "/v1/destinations/{destinationId}/keys/{kid}"; + public static final String EVENTS_PATH = "/v1/cases/{caseId}/events"; + public static final String SUBMISSION_PATH = "/v1/submissions/{submissionId}"; + public static final String SUBMISSIONS_PATH = "/v1/submissions"; + public static final String SUBMISSION_ATTACHMENT_PATH = "/v1/submissions/{submissionId}/attachments/{attachmentId}"; } + diff --git a/api/src/main/java/dev/fitko/fitconnect/api/config/SubscriberConfig.java b/api/src/main/java/dev/fitko/fitconnect/api/config/SubscriberConfig.java index 1c0b7517c115af18647c4235396ad1dd77d8977e..19ee09c7ed00199187c4e3024ebe1defaf5d04f1 100644 --- a/api/src/main/java/dev/fitko/fitconnect/api/config/SubscriberConfig.java +++ b/api/src/main/java/dev/fitko/fitconnect/api/config/SubscriberConfig.java @@ -13,4 +13,5 @@ public class SubscriberConfig { private String clientId; private String clientSecret; private String privateDecryptionKeyPath; + private String privateSigningKeyPath; } diff --git a/client/src/main/java/dev/fitko/fitconnect/client/factory/ClientFactory.java b/client/src/main/java/dev/fitko/fitconnect/client/factory/ClientFactory.java index 73687399bc8e9a47e548639bc71092cbf6d4fc5f..e00ceab1193b83365212b902679e48f43839c801 100644 --- a/client/src/main/java/dev/fitko/fitconnect/client/factory/ClientFactory.java +++ b/client/src/main/java/dev/fitko/fitconnect/client/factory/ClientFactory.java @@ -123,8 +123,7 @@ public final class ClientFactory { final EventLogService eventLogService = getEventLogService(config, restTemplate, authService); final SubmissionService submissionService = getSubmissionService(config, restTemplate, authService); final DestinationService destinationService = getDestinationApiService(config, restTemplate, authService); - final SecurityEventService setService = getSecurityEventTokenService(config); - return new SubmissionSender(destinationService, submissionService, eventLogService, cryptoService, validator, setService); + return new SubmissionSender(destinationService, submissionService, eventLogService, cryptoService, validator); } private static OAuthService getSenderConfiguredAuthService(final ApplicationConfig config, final RestTemplate restTemplate) { @@ -171,7 +170,7 @@ public final class ClientFactory { } private static SecurityEventTokenService getSecurityEventTokenService(final ApplicationConfig config) { - final String signingKeyPath = config.getPrivateSigningKeyPath(); + final String signingKeyPath = config.getSubscriberConfig().getPrivateSigningKeyPath(); LOGGER.info("Reading private signing key from {} ", signingKeyPath); final String signingKey = readPath(signingKeyPath); if (signingKey == null) { diff --git a/client/src/test/java/dev/fitko/fitconnect/client/ClientIntegrationTest.java b/client/src/test/java/dev/fitko/fitconnect/client/ClientIntegrationTest.java index 4bb098599b0a1c1c67f4ff85b1521c93b651aee4..6c7fec6af7e1d984ae43189ef03502ac6b4b7a4a 100644 --- a/client/src/test/java/dev/fitko/fitconnect/client/ClientIntegrationTest.java +++ b/client/src/test/java/dev/fitko/fitconnect/client/ClientIntegrationTest.java @@ -233,16 +233,7 @@ class ClientIntegrationTest { .clientId(System.getenv("SUBSCRIBER_CLIENT_ID")) .clientSecret(System.getenv("SUBSCRIBER_CLIENT_SECRET")) .privateDecryptionKeyPath("src/test/resources/private_decryption_test_key.json") - .build(); - - final var resourcePaths = ResourcePaths.builder() - .authTokenPath("/token") - .destinationPath("/v1/destinations/{destinationId}") - .destinationKeyPath("/v1/destinations/{destinationId}/keys/{kid}") - .eventLogPath("/v1/cases/{caseId}/events") - .submissionsPath("/v1/submissions") - .submissionPath("/v1/submissions/{submissionId}") - .submissionAttachmentPath("/v1/submissions/{submissionId}/attachments/{attachmentId}") + .privateSigningKeyPath("src/test/resources/private_test_signing_key.json") .build(); final var envName = new EnvironmentName(environmentName); @@ -251,9 +242,7 @@ class ClientIntegrationTest { .senderConfig(sender) .subscriberConfig(subscriber) .environments(Map.of(envName, env)) - .resourcePaths(resourcePaths) .activeEnvironment(envName) - .privateSigningKeyPath("src/test/resources/private_test_signing_key.json") .build(); } } diff --git a/client/src/test/java/dev/fitko/fitconnect/client/factory/ClientFactoryTest.java b/client/src/test/java/dev/fitko/fitconnect/client/factory/ClientFactoryTest.java index c061abf5b05535c25088d1d5c92d5f9f4d5fe011..88e1945e148a297731c415844b208482ee564ec4 100644 --- a/client/src/test/java/dev/fitko/fitconnect/client/factory/ClientFactoryTest.java +++ b/client/src/test/java/dev/fitko/fitconnect/client/factory/ClientFactoryTest.java @@ -3,7 +3,6 @@ package dev.fitko.fitconnect.client.factory; import dev.fitko.fitconnect.api.config.ApplicationConfig; import dev.fitko.fitconnect.api.config.Environment; import dev.fitko.fitconnect.api.config.EnvironmentName; -import dev.fitko.fitconnect.api.config.ResourcePaths; import dev.fitko.fitconnect.api.config.SenderConfig; import dev.fitko.fitconnect.api.config.SubscriberConfig; import dev.fitko.fitconnect.api.exceptions.InitializationException; @@ -30,18 +29,13 @@ class ClientFactoryTest { final var sender = new SenderConfig("123", "abc"); - final var resourcePaths = new ResourcePaths(); - resourcePaths.setAuthTokenPath("/token"); - final var senderConfig = ApplicationConfig.builder() .httpProxyHost("https://proxy.fitco.de") .httpProxyPort(0) .environments(environments) .senderConfig(sender) - .resourcePaths(resourcePaths) .activeEnvironment(envName) .build(); - senderConfig.setPrivateSigningKeyPath("src/test/resources/private_test_signing_key.json"); assertNotNull(ClientFactory.senderClient(senderConfig)); } @@ -52,13 +46,11 @@ class ClientFactoryTest { final var envName = new EnvironmentName("DEV"); final var environments = Map.of(envName, new Environment("https://auth", "", true)); - final var resourcePaths = new ResourcePaths(); - resourcePaths.setAuthTokenPath("/token"); - final var subscriber = SubscriberConfig.builder() .clientSecret("123") .clientSecret("abc") .privateDecryptionKeyPath("src/test/resources/private_decryption_test_key.json") + .privateSigningKeyPath("src/test/resources/private_test_signing_key.json") .build(); final var subscriberConfig = ApplicationConfig.builder() @@ -66,9 +58,7 @@ class ClientFactoryTest { .httpProxyPort(0) .environments(environments) .subscriberConfig(subscriber) - .resourcePaths(resourcePaths) .activeEnvironment(envName) - .privateSigningKeyPath("src/test/resources/private_test_signing_key.json") .build(); assertNotNull(ClientFactory.subscriberClient(subscriberConfig)); diff --git a/client/src/test/resources/test-config-with-missing-env.yml b/client/src/test/resources/test-config-with-missing-env.yml index fc91a74a3506ffd60eb1714f6d739a1c9334453c..91964913b33357ddec67290a25c2d1cdfd2bfc16 100644 --- a/client/src/test/resources/test-config-with-missing-env.yml +++ b/client/src/test/resources/test-config-with-missing-env.yml @@ -6,8 +6,7 @@ subscriberConfig: clientId: "2" clientSecret: "456" privateDecryptionKeyPath: "client/src/test/java/resources/private_decryption_test_key.json" - -privateSigningKeyPath: "client/src/test/java/resources/private_test_signing_key.json" + privateSigningKeyPath: "client/src/test/java/resources/private_test_signing_key.json" activeEnvironment: enviroment_that_does_not_exist @@ -24,12 +23,3 @@ environments: authBaseUrl: "https://auth-test.fit-connect.fitko.dev" submissionBaseUrl: "https://submission-api-testing.fit-connect.fitko.dev" allowInsecurePublicKey: true - -resourcePaths: - authTokenPath: "/token" - destinationPath: "/v1/destinations/{destinationId}" - destinationKeyPath: "/v1/destinations/{destinationId}/keys/{kid}" - eventLogPath: "/v1/cases/{caseId}/events" - submissionPath: "/v1/submissions/{submissionId}" - submissionsPath: "/v1/submissions" - submissionAttachmentPath: "/v1/submissions/{submissionId}/attachments/{attachmentId}" \ No newline at end of file diff --git a/client/src/test/resources/test-config.yml b/client/src/test/resources/test-config.yml index 90a0a048c5b524c85fd5ef3aab5c8c62fd2c13f1..32e9456e407f56172668b755ae944229a657aba8 100644 --- a/client/src/test/resources/test-config.yml +++ b/client/src/test/resources/test-config.yml @@ -6,8 +6,7 @@ subscriberConfig: clientId: "2" clientSecret: "456" privateDecryptionKeyPath: "client/src/test/java/resources/private_decryption_test_key.json" - -privateSigningKeyPath: "client/src/test/java/resources/private_test_signing_key.json" + privateSigningKeyPath: "client/src/test/java/resources/private_test_signing_key.json" activeEnvironment: dev @@ -24,12 +23,3 @@ environments: authBaseUrl: "https://auth-test.fit-connect.fitko.dev" submissionBaseUrl: "https://submission-api-testing.fit-connect.fitko.dev" allowInsecurePublicKey: true - -resourcePaths: - authTokenPath: "/token" - destinationPath: "/v1/destinations/{destinationId}" - destinationKeyPath: "/v1/destinations/{destinationId}/keys/{kid}" - eventLogPath: "/v1/cases/{caseId}/events" - submissionPath: "/v1/submissions/{submissionId}" - submissionsPath: "/v1/submissions" - submissionAttachmentPath: "/v1/submissions/{submissionId}/attachments/{attachmentId}" \ No newline at end of file diff --git a/config.yml b/config.yml index c58c3f3a5a8267a3ec7949edc67e0212446a03c4..a10f0c797e0b6f05a6d1f0c489d80ba39fbaf893 100644 --- a/config.yml +++ b/config.yml @@ -23,12 +23,12 @@ subscriberConfig: # Path that references the private decryption key file privateDecryptionKeyPath: "path/to/decryption_key.json" -# Path that references the signing key file that signed SET-Events -privateSigningKeyPath: "path/to/signing_key.json" + # Path that references the signing key file that signed SET-Events + privateSigningKeyPath: "path/to/signing_key.json" # Name of the used environment (from environments config below). -# In this case the options are prod | dev -activeEnvironment: dev +# In this case the options are prod | testing +activeEnvironment: testing # Configured environments that can be added in the form: # @@ -44,7 +44,7 @@ environments: authBaseUrl: "https://auth-prod.fit-connect.fitko.dev" submissionBaseUrl: "https://submission-api-prod.fit-connect.fitko.dev" allowInsecurePublicKey: false - dev: + testing: authBaseUrl: "https://auth-testing.fit-connect.fitko.dev" submissionBaseUrl: "https://submission-api-testing.fit-connect.fitko.dev" allowInsecurePublicKey: true @@ -60,21 +60,4 @@ environments: # httpProxyHost: "https//:proxy.your-service.domain" # httpProxyPort: 8080 -# requestTimeoutInSeconds: 30 - -##################################################################### -# PREDEFINED SETTINGS # -# # -# YOU SHOULD ONLY CHANGE THESE SETTINGS IF YOU ARE FAMILIAR # -# WITH THE FIT-Connect INFRASTRUCTURE # -##################################################################### - -### REST Endpoints for FIT-Connect resources -resourcePaths: - authTokenPath: "/token" - destinationPath: "/v1/destinations/{destinationId}" - destinationKeyPath: "/v1/destinations/{destinationId}/keys/{kid}" - eventLogPath: "/v1/cases/{caseId}/events" - submissionPath: "/v1/submissions/{submissionId}" - submissionsPath: "/v1/submissions" - submissionAttachmentPath: "/v1/submissions/{submissionId}/attachments/{attachmentId}" \ No newline at end of file +# requestTimeoutInSeconds: 30 \ No newline at end of file diff --git a/core/src/main/java/dev/fitko/fitconnect/core/SubmissionSender.java b/core/src/main/java/dev/fitko/fitconnect/core/SubmissionSender.java index 8e6c97f144f9e88e3d164297a85d44b466721472..89ba877fdf0522d9906f339495c79b786dbe1f7d 100644 --- a/core/src/main/java/dev/fitko/fitconnect/core/SubmissionSender.java +++ b/core/src/main/java/dev/fitko/fitconnect/core/SubmissionSender.java @@ -17,7 +17,6 @@ import dev.fitko.fitconnect.api.services.Sender; import dev.fitko.fitconnect.api.services.crypto.CryptoService; import dev.fitko.fitconnect.api.services.destination.DestinationService; import dev.fitko.fitconnect.api.services.events.EventLogService; -import dev.fitko.fitconnect.api.services.events.SecurityEventService; import dev.fitko.fitconnect.api.services.submission.SubmissionService; import dev.fitko.fitconnect.api.services.validation.ValidationService; import org.slf4j.Logger; @@ -35,21 +34,18 @@ public class SubmissionSender implements Sender { private final DestinationService destinationService; private final SubmissionService submissionService; private final EventLogService eventLogService; - private final SecurityEventService securityEventService; public SubmissionSender(final DestinationService destinationService, final SubmissionService submissionService, final EventLogService eventLogService, final CryptoService encryptionService, - final ValidationService validationService, - final SecurityEventService securityEventService) { + final ValidationService validationService) { this.destinationService = destinationService; this.submissionService = submissionService; this.eventLogService = eventLogService; this.cryptoService = encryptionService; this.validationService = validationService; - this.securityEventService = securityEventService; } @Override diff --git a/core/src/test/java/dev/fitko/fitconnect/core/RestEndpointBase.java b/core/src/test/java/dev/fitko/fitconnect/core/RestEndpointBase.java index be6f17abc81be9f4f5d68e176e57e969bc2d129d..eecaa34a9ce7d78be97c3f8b9223176376b16bba 100644 --- a/core/src/test/java/dev/fitko/fitconnect/core/RestEndpointBase.java +++ b/core/src/test/java/dev/fitko/fitconnect/core/RestEndpointBase.java @@ -5,7 +5,6 @@ import com.github.tomakehurst.wiremock.client.WireMock; import dev.fitko.fitconnect.api.config.ApplicationConfig; import dev.fitko.fitconnect.api.config.Environment; import dev.fitko.fitconnect.api.config.EnvironmentName; -import dev.fitko.fitconnect.api.config.ResourcePaths; import java.util.Map; @@ -26,20 +25,9 @@ public abstract class RestEndpointBase { final var envName = new EnvironmentName("TESTING"); final var environments = Map.of(envName, new Environment(fakeBaseUrl, fakeBaseUrl, false)); - final var resourcePaths = ResourcePaths.builder() - .authTokenPath("/token") - .destinationPath("/v1/destinations/{destinationId}") - .destinationKeyPath("/v1/destinations/{destinationId}/keys/{kid}") - .eventLogPath("/v1/cases/{caseId}/events") - .submissionsPath("/v1/submissions") - .submissionPath("/v1/submissions/{submissionId}") - .submissionAttachmentPath("/v1/submissions/{submissionId}/attachments/{attachmentId}") - .build(); - return ApplicationConfig.builder() .environments(environments) .activeEnvironment(envName) - .resourcePaths(resourcePaths) .build(); } diff --git a/core/src/test/java/dev/fitko/fitconnect/core/SubmissionSenderTest.java b/core/src/test/java/dev/fitko/fitconnect/core/SubmissionSenderTest.java index b18410327a4ff6ee5438756e4956012863ea34a2..806a02054ae23f508a26ab8b71d03c65b3b666b6 100644 --- a/core/src/test/java/dev/fitko/fitconnect/core/SubmissionSenderTest.java +++ b/core/src/test/java/dev/fitko/fitconnect/core/SubmissionSenderTest.java @@ -24,7 +24,6 @@ import dev.fitko.fitconnect.api.services.destination.DestinationService; import dev.fitko.fitconnect.api.services.events.EventLogService; import dev.fitko.fitconnect.api.services.submission.SubmissionService; import dev.fitko.fitconnect.api.services.validation.ValidationService; -import dev.fitko.fitconnect.core.events.SecurityEventTokenService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -53,7 +52,6 @@ class SubmissionSenderTest { private EventLogService eventLogServiceMock; private CryptoService cryptoServiceMock; private ValidationService validationServiceMock; - private SecurityEventTokenService setEventServiceMock; private Sender underTest; @@ -64,15 +62,13 @@ class SubmissionSenderTest { this.eventLogServiceMock = mock(EventLogService.class); this.cryptoServiceMock = mock(CryptoService.class); this.validationServiceMock = mock(ValidationService.class); - this.setEventServiceMock = mock(SecurityEventTokenService.class); underTest = new SubmissionSender( destinationServiceMock, submissionServiceMock, eventLogServiceMock, cryptoServiceMock, - validationServiceMock, - setEventServiceMock + validationServiceMock ); }