[.NET-SDK] - Schema-Validierung schlägt bei URN-basierten Schemas fehl (HttpClient lehnt Nicht-HTTP-URIs ab)
Description of the bug:
- FIT-Connect-SDK (v2.4.2) einbinden und ein Schema mit einer URN ähnlich urn:de:ba:koba_0.2.7#fbw:fa konfigurieren.
- Über die SDK eine Nachricht vorbereiten, bei der im Validierungsschritt das Schema geladen wird.
- 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