Skip to content
Snippets Groups Projects
Commit 021343a2 authored by Klaus Fischer's avatar Klaus Fischer
Browse files

feature: add schema validation errors to exception

parent f73eb198
No related branches found
No related tags found
1 merge request!94Epic/1256 bidiko
......@@ -175,7 +175,9 @@ public class Subscriber : FitConnectClient, IReceivedSubmission,
else {
JsonSchema? schema;
try {
schema = await JsonSchema.FromUrlAsync(submission.Metadata?.SchemaUri.ToString());
schema =
(await JsonHelper.LoadJsonSchemaFromResource("metadata.schema.json")) ??
await JsonSchema.FromUrlAsync(submission.Metadata?.SchemaUri.ToString());
}
catch (Exception e) {
var problem = new Problems(Problems.ProblemTypeEnum.UnsupportedMetaSchema,
......@@ -549,7 +551,7 @@ public class Subscriber : FitConnectClient, IReceivedSubmission,
FitEncryption.GenerateAuthenticationTags(sub);
token = await Encryption.CreateAcceptSecurityEventToken(submission,
problems,
authenticationTags,
authenticationTags,
skipSetValidation: environment.ValidationSettings.SkipSetValidation);
}
else {
......@@ -629,7 +631,9 @@ public class Subscriber : FitConnectClient, IReceivedSubmission,
var problem = new Problems(Problems.ProblemTypeEnum.UnsupportedMetaSchema,
Problems.DetailUnsupportedSchema);
await RejectSubmissionAsync(submission, problem);
throw new SecurityEventException(problem);
throw new SecurityEventException(problem,
additionalInfo: valid.ValidationErrors?.Aggregate<ValidationError, string>("",
(s, error) => s += "\n" + error.ToString()) ?? "");
}
}
......
......@@ -28,7 +28,7 @@ public class ReplyChannelTest : EndToEndTestBase {
"QXV0b21hdGljYWxseSBCYXNlNjRVcmwgZW5jb2RlZCBTdHJpbmc";
private Jwk PrivateKey { get; set; } = null!;
private string PublicKey => Settings.PublicKeyEncryption; // { get; set; } = null!;
private string PublicKey => Configuration["destination:publicEncryptionKey"]; // { get; set; } = null!;
Guid DestinationId { get; set; } = Guid.Empty;
[SetUp]
......@@ -298,14 +298,14 @@ public class ReplyChannelTest : EndToEndTestBase {
[Order(70)]
public void T070_Sender_AddSubmissionToCase() {
}
[Test]
[Order(80)]
public void T080_Subscriber_ClearCase() {
var availableSubmissions = Subscriber.GetAvailableSubmissionsAsync(Settings.DestinationId).Result;
foreach (var availableSubmission in availableSubmissions) {
var receivedSubmission = Subscriber.RequestSubmissionAsync(availableSubmission.SubmissionId).Result;
receivedSubmission.AcceptSubmissionAsync().Wait();
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment