diff --git a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/Hash.java b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/Hash.java similarity index 81% rename from api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/Hash.java rename to api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/Hash.java index 5c65bf35b0dd9af1b737b69ae9b0d3e8ed0bcc05..f25bc95c4c07170c05d7b995496470cf5829c7e6 100644 --- a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/Hash.java +++ b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/Hash.java @@ -1,4 +1,4 @@ -package dev.fitko.fitconnect.api.domain.model.metadata.data; +package dev.fitko.fitconnect.api.domain.model.metadata; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; @@ -14,7 +14,7 @@ import java.util.Map; public class Hash { @JsonProperty("type") - private DataSignatureType dataSignatureType; + private SignatureType signatureType; @JsonProperty("content") private String content; diff --git a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/Signature.java b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/Signature.java similarity index 76% rename from api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/Signature.java rename to api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/Signature.java index ed51af1507934e97f025b38a162cf62ff2f5a83e..3acec627ea001bf4438d54136c2448d67da575a5 100644 --- a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/Signature.java +++ b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/Signature.java @@ -1,15 +1,15 @@ -package dev.fitko.fitconnect.api.domain.model.metadata.data; +package dev.fitko.fitconnect.api.domain.model.metadata; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import dev.fitko.fitconnect.api.domain.model.metadata.EidasAdesProfile; -import dev.fitko.fitconnect.api.domain.model.metadata.SignatureFormat; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.Map; @Data +@NoArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) public class Signature { diff --git a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/DataSignatureType.java b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/SignatureType.java similarity index 61% rename from api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/DataSignatureType.java rename to api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/SignatureType.java index a41c74711971767517815666fd0550b9cec8a971..63397fa09e784c23984d70561f3fcd536ee84d75 100644 --- a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/DataSignatureType.java +++ b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/SignatureType.java @@ -1,4 +1,4 @@ -package dev.fitko.fitconnect.api.domain.model.metadata.data; +package dev.fitko.fitconnect.api.domain.model.metadata; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; @@ -6,21 +6,21 @@ import com.fasterxml.jackson.annotation.JsonValue; import java.util.HashMap; import java.util.Map; -public enum DataSignatureType { +public enum SignatureType { SHA_512("sha512"); - private static final Map<String, DataSignatureType> CONSTANTS = new HashMap<>(); + private static final Map<String, SignatureType> CONSTANTS = new HashMap<>(); static { - for (final DataSignatureType c : values()) { + for (final SignatureType c : values()) { CONSTANTS.put(c.value, c); } } private final String value; - DataSignatureType(final String value) { + SignatureType(final String value) { this.value = value; } @@ -35,8 +35,8 @@ public enum DataSignatureType { } @JsonCreator - public static DataSignatureType fromValue(final String value) { - final DataSignatureType constant = CONSTANTS.get(value); + public static SignatureType fromValue(final String value) { + final SignatureType constant = CONSTANTS.get(value); if (constant == null) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } diff --git a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/Attachment.java b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/Attachment.java index a61c03e9fd768826a49f3a76ee67970154407802..6cd44428519696d680c2d494e99da6037e923824 100644 --- a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/Attachment.java +++ b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/Attachment.java @@ -3,8 +3,8 @@ package dev.fitko.fitconnect.api.domain.model.metadata.attachment; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import dev.fitko.fitconnect.api.domain.model.metadata.attachment.signature.Hash__1; -import dev.fitko.fitconnect.api.domain.model.metadata.attachment.signature.Signature__1; +import dev.fitko.fitconnect.api.domain.model.metadata.Hash; +import dev.fitko.fitconnect.api.domain.model.metadata.Signature; import lombok.Data; import lombok.NoArgsConstructor; @@ -17,10 +17,10 @@ import java.util.UUID; public class Attachment { @JsonProperty("hash") - private Hash__1 hash; + private Hash hash; @JsonProperty("signature") - private Signature__1 signature; + private Signature signature; @JsonProperty("purpose") private Purpose purpose; diff --git a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/signature/AttachmentSignatureType.java b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/signature/AttachmentSignatureType.java deleted file mode 100644 index 003d0356d56354e5812ac434606c8323a4b5334b..0000000000000000000000000000000000000000 --- a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/signature/AttachmentSignatureType.java +++ /dev/null @@ -1,35 +0,0 @@ -package dev.fitko.fitconnect.api.domain.model.metadata.attachment.signature; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonValue; - -import java.util.Arrays; - -public enum AttachmentSignatureType { - - SHA_512("sha512"); - private final String value; - - AttachmentSignatureType(final String value) { - this.value = value; - } - - @Override - public String toString() { - return this.value; - } - - @JsonValue - public String value() { - return this.value; - } - - @JsonCreator - public static AttachmentSignatureType fromValue(final String value) { - return Arrays.stream(AttachmentSignatureType.values()) - .filter(enumValue -> enumValue.value.equals(value)) - .findFirst() - .orElseThrow(() -> new IllegalArgumentException("Unexpected value '" + value + "'")); - } - -} diff --git a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Hash__1.java b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Hash__1.java deleted file mode 100644 index c707767c161315f534117ec7b1adc0625ba7c66c..0000000000000000000000000000000000000000 --- a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Hash__1.java +++ /dev/null @@ -1,25 +0,0 @@ -package dev.fitko.fitconnect.api.domain.model.metadata.attachment.signature; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.Map; - -@Data -@NoArgsConstructor -@JsonInclude(JsonInclude.Include.NON_NULL) -public class Hash__1 { - - @JsonProperty("type") - private AttachmentSignatureType attachmentSignatureType; - - @JsonProperty("content") - private String content; - - @JsonIgnore - private Map<String, Object> additionalProperties; -} - diff --git a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Signature__1.java b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Signature__1.java deleted file mode 100644 index 5d7068edb90db185148346d887bb36a640b37760..0000000000000000000000000000000000000000 --- a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/attachment/signature/Signature__1.java +++ /dev/null @@ -1,33 +0,0 @@ -package dev.fitko.fitconnect.api.domain.model.metadata.attachment.signature; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import dev.fitko.fitconnect.api.domain.model.metadata.EidasAdesProfile; -import dev.fitko.fitconnect.api.domain.model.metadata.SignatureFormat; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.Map; - -@Data -@NoArgsConstructor -@JsonInclude(JsonInclude.Include.NON_NULL) -public class Signature__1 { - - @JsonProperty("signatureFormat") - private SignatureFormat signatureFormat; - - @JsonProperty("eidasAdesProfile") - private EidasAdesProfile eidasAdesProfile; - - @JsonProperty("detachedSignature") - private Boolean detachedSignature; - - @JsonProperty("content") - private String content; - - @JsonIgnore - private Map<String, Object> additionalProperties; -} - diff --git a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/Data.java b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/Data.java index e685033a49ecd034d25bcda18a70c6f0315c1973..46013d5d268e60098d9bce9227651e5c022cdb03 100644 --- a/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/Data.java +++ b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/metadata/data/Data.java @@ -3,6 +3,8 @@ package dev.fitko.fitconnect.api.domain.model.metadata.data; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; +import dev.fitko.fitconnect.api.domain.model.metadata.Hash; +import dev.fitko.fitconnect.api.domain.model.metadata.Signature; import lombok.NoArgsConstructor; import java.util.Map; diff --git a/client/src/main/java/dev/fitko/fitconnect/client/SubscriberClient.java b/client/src/main/java/dev/fitko/fitconnect/client/SubscriberClient.java index 5f24fd917ec3b7e5f85c4bf7e8f7a865b1a16f39..cda9fe98e067ca394c51920fc863754eff19c150 100644 --- a/client/src/main/java/dev/fitko/fitconnect/client/SubscriberClient.java +++ b/client/src/main/java/dev/fitko/fitconnect/client/SubscriberClient.java @@ -2,10 +2,10 @@ package dev.fitko.fitconnect.client; import com.fasterxml.jackson.databind.ObjectMapper; import com.nimbusds.jose.jwk.RSAKey; +import dev.fitko.fitconnect.api.domain.model.metadata.Hash; import dev.fitko.fitconnect.api.domain.model.metadata.Metadata; import dev.fitko.fitconnect.api.domain.model.metadata.attachment.Attachment; import dev.fitko.fitconnect.api.domain.model.metadata.attachment.AttachmentWithData; -import dev.fitko.fitconnect.api.domain.model.metadata.attachment.signature.Hash__1; import dev.fitko.fitconnect.api.domain.model.metadata.data.Data; import dev.fitko.fitconnect.api.domain.model.submission.Submission; import dev.fitko.fitconnect.api.domain.model.submission.SubmissionForPickup; @@ -225,7 +225,7 @@ public final class SubscriberClient { private ValidationResult validateAttachments(final List<AttachmentWithData> unencryptedAttachments) { for (final AttachmentWithData attachmentData : unencryptedAttachments) { final Attachment attachmentMetadata = attachmentData.getAttachmentMetadata(); - final Hash__1 hash = attachmentMetadata.getHash(); + final Hash hash = attachmentMetadata.getHash(); final ValidationResult result = subscriber.validateHashIntegrity(hash.getContent(), attachmentData.getDecryptedData()); if (result.hasError()) { LOGGER.error("Attachment data for id {} is corrupted", attachmentMetadata.getAttachmentId(), result.getError()); diff --git a/client/src/main/java/dev/fitko/fitconnect/client/util/SubmissionUtil.java b/client/src/main/java/dev/fitko/fitconnect/client/util/SubmissionUtil.java index 3a74a8a71b7bc7f731cae776c66bd2e163213c93..5121b57e699a02eadc3ebe327664f81a2f0d1745 100644 --- a/client/src/main/java/dev/fitko/fitconnect/client/util/SubmissionUtil.java +++ b/client/src/main/java/dev/fitko/fitconnect/client/util/SubmissionUtil.java @@ -1,15 +1,13 @@ package dev.fitko.fitconnect.client.util; import dev.fitko.fitconnect.api.domain.model.metadata.ContentStructure; +import dev.fitko.fitconnect.api.domain.model.metadata.Hash; import dev.fitko.fitconnect.api.domain.model.metadata.Metadata; import dev.fitko.fitconnect.api.domain.model.metadata.PublicServiceType; +import dev.fitko.fitconnect.api.domain.model.metadata.SignatureType; import dev.fitko.fitconnect.api.domain.model.metadata.attachment.Attachment; import dev.fitko.fitconnect.api.domain.model.metadata.attachment.Purpose; -import dev.fitko.fitconnect.api.domain.model.metadata.attachment.signature.AttachmentSignatureType; -import dev.fitko.fitconnect.api.domain.model.metadata.attachment.signature.Hash__1; import dev.fitko.fitconnect.api.domain.model.metadata.data.Data; -import dev.fitko.fitconnect.api.domain.model.metadata.data.DataSignatureType; -import dev.fitko.fitconnect.api.domain.model.metadata.data.Hash; import dev.fitko.fitconnect.api.domain.model.metadata.data.SubmissionSchema; import dev.fitko.fitconnect.api.domain.model.submission.CreateSubmission; import dev.fitko.fitconnect.api.domain.model.submission.ServiceType; @@ -29,6 +27,8 @@ import java.util.stream.Collectors; public final class SubmissionUtil { + private SubmissionUtil(){} + public static CreateSubmission createSubmission(final UUID destinationId, final ServiceType serviceType, final List<UUID> attachmentIdsToAnnounce) { return CreateSubmission.builder() .destinationId(destinationId) @@ -60,7 +60,7 @@ public final class SubmissionUtil { public static Data buildData(final DataPayload dataPayload) { final var hash = new Hash(); hash.setContent(dataPayload.getHashedData()); - hash.setDataSignatureType(DataSignatureType.SHA_512); + hash.setSignatureType(SignatureType.SHA_512); final var submissionSchema = new SubmissionSchema(); submissionSchema.setMimeType(dataPayload.getMimeType()); @@ -104,9 +104,9 @@ public final class SubmissionUtil { attachment.setFilename(attachmentPayload.getFile().getName()); attachment.setMimeType(attachmentPayload.getMimeType()); - final var hash = new Hash__1(); + final var hash = new Hash(); hash.setContent(attachmentPayload.getHashedData()); - hash.setAttachmentSignatureType(AttachmentSignatureType.SHA_512); + hash.setSignatureType(SignatureType.SHA_512); attachment.setHash(hash); return attachment; } diff --git a/client/src/test/java/dev/fitko/fitconnect/client/SubscriberClientTest.java b/client/src/test/java/dev/fitko/fitconnect/client/SubscriberClientTest.java index 206cbc35ffef88e1a7876fcabb31799e82fadcae..a06a10445559b47208ac5c4e49c1e2bdc8b2a306 100644 --- a/client/src/test/java/dev/fitko/fitconnect/client/SubscriberClientTest.java +++ b/client/src/test/java/dev/fitko/fitconnect/client/SubscriberClientTest.java @@ -6,10 +6,9 @@ import com.nimbusds.jose.jwk.RSAKey; import dev.fitko.fitconnect.api.domain.model.metadata.ContentStructure; import dev.fitko.fitconnect.api.domain.model.metadata.Metadata; import dev.fitko.fitconnect.api.domain.model.metadata.attachment.Attachment; -import dev.fitko.fitconnect.api.domain.model.metadata.attachment.signature.Hash__1; import dev.fitko.fitconnect.api.domain.model.metadata.data.Data; -import dev.fitko.fitconnect.api.domain.model.metadata.data.DataSignatureType; -import dev.fitko.fitconnect.api.domain.model.metadata.data.Hash; +import dev.fitko.fitconnect.api.domain.model.metadata.SignatureType; +import dev.fitko.fitconnect.api.domain.model.metadata.Hash; import dev.fitko.fitconnect.api.domain.model.metadata.data.MimeType; import dev.fitko.fitconnect.api.domain.model.metadata.data.SubmissionSchema; import dev.fitko.fitconnect.api.domain.model.submission.Submission; @@ -233,7 +232,7 @@ class SubscriberClientTest { final Hash hash = new Hash(); hash.setContent(cryptoService.hashBytes(dataPayload.getBytes())); - hash.setDataSignatureType(DataSignatureType.SHA_512); + hash.setSignatureType(SignatureType.SHA_512); final SubmissionSchema schema = new SubmissionSchema(); schema.setSchemaUri(URI.create("https://dummy.schema.url")); @@ -379,7 +378,7 @@ class SubscriberClientTest { final var data = new Data(); data.setHash(dataHash); - final var attachmentHash = new Hash__1(); + final var attachmentHash = new Hash(); attachmentHash.setContent(""); final var attachment = new Attachment(); attachment.setFilename("src/test/resources/attachment.txt"); diff --git a/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java b/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java index 0851c1fa0ac3224f9bf1e86b51404a816851f11d..1c5eed5c3dd272d8748fb8587bf11c580f9aded2 100644 --- a/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java +++ b/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java @@ -12,8 +12,8 @@ import dev.fitko.fitconnect.api.config.ApplicationConfig; import dev.fitko.fitconnect.api.domain.model.metadata.ContentStructure; import dev.fitko.fitconnect.api.domain.model.metadata.Metadata; import dev.fitko.fitconnect.api.domain.model.metadata.data.Data; -import dev.fitko.fitconnect.api.domain.model.metadata.data.DataSignatureType; -import dev.fitko.fitconnect.api.domain.model.metadata.data.Hash; +import dev.fitko.fitconnect.api.domain.model.metadata.SignatureType; +import dev.fitko.fitconnect.api.domain.model.metadata.Hash; import dev.fitko.fitconnect.api.domain.model.metadata.data.MimeType; import dev.fitko.fitconnect.api.domain.model.metadata.data.SubmissionSchema; import dev.fitko.fitconnect.api.domain.validation.ValidationResult; @@ -116,7 +116,7 @@ class DefaultValidationServiceTest { final var hash = new Hash(); hash.setContent(hashService.toHexString(hashService.createHash("someBogusContent".getBytes()))); - hash.setDataSignatureType(DataSignatureType.SHA_512); + hash.setSignatureType(SignatureType.SHA_512); final var data = new Data(); data.setSubmissionSchema(submissionSchema); @@ -176,7 +176,7 @@ class DefaultValidationServiceTest { final var hash = new Hash(); hash.setContent("noHexString"); - hash.setDataSignatureType(DataSignatureType.SHA_512); + hash.setSignatureType(SignatureType.SHA_512); final var dataWithInvalidHashFormat = new Data(); dataWithInvalidHashFormat.setSubmissionSchema(submissionSchema);