Skip to content

Commit ce1bceb

Browse files
committed
Use the http context cancellation token in SignatureHashValidator.
1 parent 84b31ae commit ce1bceb

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/Altinn.App.Core/Features/Validation/Default/SignatureHashValidator.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Altinn.App.Core.Models;
1010
using Altinn.App.Core.Models.Validation;
1111
using Altinn.Platform.Storage.Interface.Models;
12+
using Microsoft.AspNetCore.Http;
1213
using Microsoft.Extensions.Logging;
1314

1415
namespace Altinn.App.Core.Features.Validation.Default;
@@ -21,6 +22,7 @@ internal sealed class SignatureHashValidator(
2122
IProcessReader processReader,
2223
IDataClient dataClient,
2324
IAppMetadata appMetadata,
25+
IHttpContextAccessor httpContextAccessor,
2426
ILogger<SignatureHashValidator> logger
2527
) : IValidator
2628
{
@@ -56,6 +58,8 @@ public async Task<List<ValidationIssue>> Validate(
5658
string? language
5759
)
5860
{
61+
CancellationToken cancellationToken = httpContextAccessor.HttpContext?.RequestAborted ?? CancellationToken.None;
62+
5963
Instance instance = dataAccessor.Instance;
6064

6165
AltinnSignatureConfiguration signingConfiguration =
@@ -67,7 +71,7 @@ public async Task<List<ValidationIssue>> Validate(
6771
List<SigneeContext> signeeContextsResults = await signingService.GetSigneeContexts(
6872
dataAccessor,
6973
signingConfiguration,
70-
CancellationToken.None
74+
cancellationToken
7175
);
7276

7377
foreach (SigneeContext signeeContext in signeeContextsResults)
@@ -80,7 +84,8 @@ public async Task<List<ValidationIssue>> Validate(
8084
ValidationIssue? validationIssue = await ValidateDataElementSignature(
8185
dataElementSignature,
8286
instance,
83-
applicationMetadata
87+
applicationMetadata,
88+
cancellationToken
8489
);
8590

8691
if (validationIssue != null)
@@ -98,7 +103,8 @@ public async Task<List<ValidationIssue>> Validate(
98103
private async Task<ValidationIssue?> ValidateDataElementSignature(
99104
SignDocument.DataElementSignature dataElementSignature,
100105
Instance instance,
101-
ApplicationMetadata applicationMetadata
106+
ApplicationMetadata applicationMetadata,
107+
CancellationToken cancellationToken
102108
)
103109
{
104110
var instanceIdentifier = new InstanceIdentifier(instance);
@@ -111,7 +117,8 @@ ApplicationMetadata applicationMetadata
111117
Guid.Parse(dataElementSignature.DataElementId),
112118
HasRestrictedRead(applicationMetadata, instance, dataElementSignature.DataElementId)
113119
? StorageAuthenticationMethod.ServiceOwner()
114-
: null
120+
: null,
121+
cancellationToken
115122
);
116123

117124
string sha256Hash = await GenerateSha256Hash(dataStream);

test/Altinn.App.Core.Tests/Features/Validators/Default/SignatureHashValidatorTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
using Altinn.App.Core.Models.Validation;
1313
using Altinn.Platform.Register.Models;
1414
using Altinn.Platform.Storage.Interface.Models;
15+
using Microsoft.AspNetCore.Http;
1516
using Microsoft.Extensions.Logging;
1617
using Moq;
1718
using CoreSignee = Altinn.App.Core.Features.Signing.Models.Signee;
@@ -34,6 +35,7 @@ public SignatureHashValidatorTests()
3435
_processReaderMock.Object,
3536
_dataClientMock.Object,
3637
_appMetadataMock.Object,
38+
new Mock<IHttpContextAccessor>().Object,
3739
new Mock<ILogger<SignatureHashValidator>>().Object
3840
);
3941

0 commit comments

Comments
 (0)