Skip to content

[.NET-SDK] - Schema-Validierung schlägt bei URN-basierten Schemas fehl (HttpClient lehnt Nicht-HTTP-URIs ab)

Description of the bug:

  1. FIT-Connect-SDK (v2.4.2) einbinden und ein Schema mit einer URN ähnlich urn:de:ba:koba_0.2.7#fbw:fa konfigurieren.
  2. Über die SDK eine Nachricht vorbereiten, bei der im Validierungsschritt das Schema geladen wird.
  3. Versand mit aktivierter Schema-Validierung starten.

Current behavior:

Während der frühen Validierung ruft die SDK HttpClient.GetAsync("urn:de:ba:koba_0.2.7#fbw:fa") auf und erhält eine NotSupportedException mit der Meldung “The 'urn' scheme is not supported”, sodass der Versand abbricht.

Expected behavior:

URN-basierte Schemas sollten ohne Netzwerkaufruf validiert werden oder über einen Resolver auflösbar sein, sodass der Versand mit aktivierter Schema-Validierung erfolgreich durchläuft.

Environments:

Alle Umgebungen mit aktivierter Schema-Validierung

Additional Information:

FIT-Connect-SDK .NET Version 2.4.2

Dependency / relationship to other issues:

Responsible person / team:

Transfer history to different teams

Contact persons including contact details:

Screenshots / Logs / Requests:

Stacktrace fail: FIT-Connect[0] Error while sending submission System.NotSupportedException: The 'urn' scheme is not supported. at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at FitConnect.Helper.RestCallService.<>c__DisplayClass25_0.<b__0>d.MoveNext() in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect.Helper\RestCallService.cs:line 240 --- End of stack trace from previous location --- at Polly.ResiliencePipeline.<>c__10`1.<b__10_0>d.MoveNext() --- End of stack trace from previous location --- at Polly.Outcome`1.GetResultOrRethrow() at Polly.ResiliencePipeline.ExecuteAsyncTResult at FitConnect.Helper.RestCallService.GetSchemaFromServer(Uri schemaLocation) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect.Helper\RestCallService.cs:line 237 at FitConnect.Encryption.JsonHelper.ValidateJsonSchema(Uri schema, String jsonData) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Encryption\JsonHelper.cs:line 84 at FitConnect.Clients.Sender.CheckDestinationWithMimeType(ISendableSubmission submission, String dataMimeType, Boolean isReply, DestinationDto destination) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Clients\Sender.cs:line 751 at FitConnect.Clients.Sender.SubmissionSenderGuards(ISendableSubmission submission, String dataMimeType, Boolean isReply) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Clients\Sender.cs:line 698 at FitConnect.Clients.Sender.ValidateSubmission(SendableSubmission submission, Boolean isReply) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Clients\Sender.cs:line 460 at FitConnect.Clients.Sender.SendAsync(SendableSubmission submission, Boolean isReply, JsonWebKey publicKey) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Clients\Sender.cs:line 398 Unhandled exception. FitConnect.Exceptions.FitConnectSenderException: Error while sending submission ---> System.NotSupportedException: The 'urn' scheme is not supported. at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken) at FitConnect.Helper.RestCallService.<>c__DisplayClass25_0.<b__0>d.MoveNext() in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect.Helper\RestCallService.cs:line 240 --- End of stack trace from previous location --- at Polly.ResiliencePipeline.<>c__10`1.<b__10_0>d.MoveNext() --- End of stack trace from previous location --- at Polly.Outcome`1.GetResultOrRethrow() at Polly.ResiliencePipeline.ExecuteAsyncTResult at FitConnect.Helper.RestCallService.GetSchemaFromServer(Uri schemaLocation) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect.Helper\RestCallService.cs:line 237 at FitConnect.Encryption.JsonHelper.ValidateJsonSchema(Uri schema, String jsonData) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Encryption\JsonHelper.cs:line 84 at FitConnect.Clients.Sender.CheckDestinationWithMimeType(ISendableSubmission submission, String dataMimeType, Boolean isReply, DestinationDto destination) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Clients\Sender.cs:line 751 at FitConnect.Clients.Sender.SubmissionSenderGuards(ISendableSubmission submission, String dataMimeType, Boolean isReply) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Clients\Sender.cs:line 698 at FitConnect.Clients.Sender.ValidateSubmission(SendableSubmission submission, Boolean isReply) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Clients\Sender.cs:line 460 at FitConnect.Clients.Sender.SendAsync(SendableSubmission submission, Boolean isReply, JsonWebKey publicKey) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Clients\Sender.cs:line 398 --- End of inner exception stack trace --- at FitConnect.Clients.Sender.SendAsync(SendableSubmission submission, Boolean isReply, JsonWebKey publicKey) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Clients\Sender.cs:line 413 at FitConnect.Clients.Sender.SendAsync(SendableSubmission sendableSubmission) in C:\Users\FabianBraun\Documents\sdk-dotnet\FitConnect\Clients\Sender.cs:line 377 at ConsoleAppExample.SenderDemo.Run(IConfigurationRoot config, ILogger logger) in C:\Users\FabianBraun\Documents\sdk-dotnet\Examples\ConsoleAppExample\SenderDemo.cs:line 73 at Program.$(String[] args) in C:\Users\FabianBraun\Documents\sdk-dotnet\Examples\ConsoleAppExample\Program.cs:line 28 at Program.(String[] args)

Checklist:

  • Add Severity label
  • Add team label
  • Related/affected issues/stories/epics linked and explained in the bug issue
  • Creation of an automated test
  • Bugfix deployed on DEV
  • Bugfix tested on DEV
  • Bugfix deployed on TEST
  • Bugfix tested on TEST (possibly also by the connection project itself)
  • Successful fix reported to Team Operations (Teams channel)
  • Bugfix deployed on STAGE
  • Bugfix tested on STAGE if necessary
  • Bugfix deployed on PROD
  • Bugfix tested on PROD (possibly also by the connection project itself)
  • Final communication by Team Operations if necessary
  • Internal documentation was checked and updated if necessary
  • External documentation has been checked and updated if necessary
  • Updated changelog if necessary

Approach/Solution:

Release version of the artifact:

Edited by Fabian Braun