Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: add validation for contract definition id #1372 #1407

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ in the detailed section referring to by linking pull requests or issues.
* Add signing/publishing config (#1147)
* Verify OpenAPI definitions (#1312)
* Documentation for CosmosDB (#1334)
* Add validation to contract definition id (#1347)

#### Changed

Expand Down
2 changes: 1 addition & 1 deletion extensions/api/api-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ dependencies {
implementation(project(":common:util"))
implementation("jakarta.ws.rs:jakarta.ws.rs-api:${rsApi}")
implementation("jakarta.validation:jakarta.validation-api:${jakartaValidationApi}")
implementation("org.glassfish.jersey.ext:jersey-bean-validation:${jerseyVersion}") //for validation

testImplementation("org.glassfish.jersey.core:jersey-common:${jerseyVersion}")
testImplementation("org.glassfish.jersey.core:jersey-server:${jerseyVersion}")

testImplementation(testFixtures(project(":launchers:junit")))
testRuntimeOnly("org.glassfish.jersey.ext:jersey-bean-validation:${jerseyVersion}") //for validation
}

publishing {
Expand Down
1 change: 0 additions & 1 deletion extensions/api/data-management/asset/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ dependencies {
testImplementation(testFixtures(project(":common:util")))
testImplementation(testFixtures(project(":launchers:junit")))
testImplementation("io.rest-assured:rest-assured:${restAssured}")
testRuntimeOnly("org.glassfish.jersey.ext:jersey-bean-validation:${jerseyVersion}") //for validation
}

publishing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ dependencies {
testImplementation(testFixtures(project(":common:util")))
testImplementation(testFixtures(project(":launchers:junit")))
testImplementation("io.rest-assured:rest-assured:${restAssured}")
testRuntimeOnly("org.glassfish.jersey.ext:jersey-bean-validation:${jerseyVersion}") //for validation
}

publishing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ dependencies {
testImplementation(testFixtures(project(":common:util")))
testImplementation(testFixtures(project(":launchers:junit")))
testImplementation("io.rest-assured:rest-assured:${restAssured}")
testRuntimeOnly("org.glassfish.jersey.ext:jersey-bean-validation:${jerseyVersion}") //for validation
}

publishing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@
package org.eclipse.dataspaceconnector.api.datamanagement.contractdefinition.model;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.NotNull;
import org.eclipse.dataspaceconnector.spi.query.Criterion;

Expand All @@ -35,6 +37,12 @@ public class ContractDefinitionDto {
@NotNull
private String id;

@AssertTrue
@JsonIgnore
public boolean isIdValid() {
return id != null && !id.contains(":");
}

private ContractDefinitionDto() {
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ void validate_invalidProperty(String id, String accessPolicyId, String contractP
.contractPolicyId(contractPolicyId)
.criteria(crit)
.build();
assertThat(validator.validate(dto)).hasSize(1);
assertThat(validator.validate(dto)).hasSizeGreaterThan(0);
}

@Test
Expand All @@ -74,7 +74,8 @@ public Stream<? extends Arguments> provideArguments(ExtensionContext context) th
return Stream.of(
Arguments.of(null, "accessPolicy", "contractPolicy"),
Arguments.of("id", null, "contractPolicy"),
Arguments.of("id", "accessPolicy", null)
Arguments.of("id", "accessPolicy", null),
Arguments.of("id:123", "accessPolicy", "contractPolicy")
);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ dependencies {
testImplementation(project(":core:defaults"))

testImplementation("io.rest-assured:rest-assured:${restAssured}")
testRuntimeOnly("org.glassfish.jersey.ext:jersey-bean-validation:${jerseyVersion}") //for validation
}

publishing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ dependencies {
testImplementation(testFixtures(project(":launchers:junit")))
testImplementation(testFixtures(project(":common:util")))
testImplementation("io.rest-assured:rest-assured:${restAssured}")
testRuntimeOnly("org.glassfish.jersey.ext:jersey-bean-validation:${jerseyVersion}") //for validation
}

publishing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ public class TransferRequestDto {

@NotNull
private String connectorAddress;
@NotNull
private String id;
@NotNull
private String contractId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ private static class InvalidPropertiesProvider implements ArgumentsProvider {
@Override
public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
return Stream.of(
Arguments.of(null, "connectorAddress", "contractId", destination(), transferType(), "ids-multipart", "connectorId", "assetId"),
Arguments.of("id", null, "contractId", destination(), transferType(), "ids-multipart", "connectorId", "assetId"),
Arguments.of("id", "connectorAddress", null, destination(), transferType(), "ids-multipart", "connectorId", "assetId"),
Arguments.of("id", "connectorAddress", "contractId", null, transferType(), "ids-multipart", "connectorId", "assetId"),
Expand Down
1 change: 0 additions & 1 deletion resources/openapi/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1377,7 +1377,6 @@ components:
- connectorId
- contractId
- dataDestination
- id
- protocol
- transferType
type: object
Expand Down
1 change: 0 additions & 1 deletion resources/openapi/yaml/transferprocess.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,6 @@ components:
- connectorId
- contractId
- dataDestination
- id
- protocol
- transferType
TransferState:
Expand Down