stabilizaiton work - projects rework for maintenanceability and ui livening

This commit is contained in:
master
2026-02-03 23:40:04 +02:00
parent 074ce117ba
commit 557feefdc3
3305 changed files with 186813 additions and 107843 deletions

View File

@@ -0,0 +1,49 @@
namespace StellaOps.Auth.Security.Dpop;
public sealed partial class DpopProofValidator
{
private async ValueTask<DpopValidationResult> ValidateInternalAsync(
string proof,
string httpMethod,
Uri httpUri,
string? nonce,
CancellationToken cancellationToken)
{
ArgumentException.ThrowIfNullOrWhiteSpace(proof);
ArgumentException.ThrowIfNullOrWhiteSpace(httpMethod);
ArgumentNullException.ThrowIfNull(httpUri);
var now = _timeProvider.GetUtcNow();
if (!TryReadHeader(proof, out var header, out var headerFailure))
{
return headerFailure;
}
if (!TryReadPayload(proof, httpMethod, httpUri, nonce, out var payload, out var payloadFailure))
{
return payloadFailure;
}
var timeFailure = ValidateIssuedAt(payload.IssuedAt, now);
if (timeFailure is not null)
{
return timeFailure;
}
var signatureFailure = ValidateSignature(proof, header);
if (signatureFailure is not null)
{
return signatureFailure;
}
var replayFailure = await TryRecordReplayAsync(payload.JwtId, payload.IssuedAt, cancellationToken)
.ConfigureAwait(false);
if (replayFailure is not null)
{
return replayFailure;
}
return DpopValidationResult.Success(header.Key, payload.JwtId, payload.IssuedAt, payload.Nonce);
}
}