Remove client-side SigningTime handling
The `SigningTime` property has been removed from the `PdfSignOptionsDto` class and related client-side input handling. It is now set automatically on the server side based on the `UseUtcSigningTime` configuration (`UtcNow` or local time). Updated the `PdfDigitalSignatureService` to always set `SigningTime` server-side, ensuring consistent and deterministic behavior. Removed `SigningTime` from the `PdfSignatureController` and adjusted the logic to exclude it from the `signOptions` object. Updated the `README.md` to reflect these changes, clarifying that `SigningTime` is now server-side only. These changes improve security and simplify client integration.
This commit is contained in:
@@ -9,7 +9,6 @@ public sealed record PdfSignOptionsDto
|
|||||||
public string? Reason { get; set; }
|
public string? Reason { get; set; }
|
||||||
public string? Location { get; set; }
|
public string? Location { get; set; }
|
||||||
public string? ContactInfo { get; set; }
|
public string? ContactInfo { get; set; }
|
||||||
public DateTimeOffset? SigningTime { get; set; }
|
|
||||||
public string? ApplicationName { get; set; }
|
public string? ApplicationName { get; set; }
|
||||||
public PdfSignatureCertificationLevel? CertificationLevel { get; set; }
|
public PdfSignatureCertificationLevel? CertificationLevel { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -338,6 +338,7 @@ Aktueller Standard:
|
|||||||
- `UUID` kommt aus Sign-Input (nullable string). Wenn ungeltig/leer -> neue Guid wird erzeugt.
|
- `UUID` kommt aus Sign-Input (nullable string). Wenn ungeltig/leer -> neue Guid wird erzeugt.
|
||||||
- `Reason` wird intern angereichert mit strukturiertem Meta (`SFMETA:v1`).
|
- `Reason` wird intern angereichert mit strukturiertem Meta (`SFMETA:v1`).
|
||||||
- `ApplicationName` ist rein serverseitig aus `appsettings` gesetzt.
|
- `ApplicationName` ist rein serverseitig aus `appsettings` gesetzt.
|
||||||
|
- `SigningTime` ist rein serverseitig und wird automatisch gesetzt (`UseUtcSigningTime=true` => `UtcNow`, sonst lokale Zeit).
|
||||||
- `CertificationLevel` wird im Controller serverseitig gesetzt (`FormFillingAndAnnotations`), nicht vom Client.
|
- `CertificationLevel` wird im Controller serverseitig gesetzt (`FormFillingAndAnnotations`), nicht vom Client.
|
||||||
|
|
||||||
Damit ist das Verhalten deterministisch und manipulationsaermer fuer Integrationsclients.
|
Damit ist das Verhalten deterministisch und manipulationsaermer fuer Integrationsclients.
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public sealed class PdfDigitalSignatureService(IOptions<Pkcs11Options> options)
|
|||||||
Reason = reasonWithMeta,
|
Reason = reasonWithMeta,
|
||||||
Location = request.Location,
|
Location = request.Location,
|
||||||
ContactInfo = request.ContactInfo,
|
ContactInfo = request.ContactInfo,
|
||||||
SigningTime = request.SigningTime ?? (pkcs11Options.UseUtcSigningTime ? DateTimeOffset.UtcNow : DateTimeOffset.Now),
|
SigningTime = pkcs11Options.UseUtcSigningTime ? DateTimeOffset.UtcNow : DateTimeOffset.Now,
|
||||||
ApplicationName = pkcs11Options.ApplicationName,
|
ApplicationName = pkcs11Options.ApplicationName,
|
||||||
CertificationLevel = ToDevExpressCertificationLevel(request.CertificationLevel)
|
CertificationLevel = ToDevExpressCertificationLevel(request.CertificationLevel)
|
||||||
?? ToDevExpressCertificationLevel(pkcs11Options.DefaultCertificationLevel)
|
?? ToDevExpressCertificationLevel(pkcs11Options.DefaultCertificationLevel)
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ public class PdfSignatureController(IPdfDigitalSignatureService signatureService
|
|||||||
public string? Reason { get; set; }
|
public string? Reason { get; set; }
|
||||||
public string? Location { get; set; }
|
public string? Location { get; set; }
|
||||||
public string? ContactInfo { get; set; }
|
public string? ContactInfo { get; set; }
|
||||||
public DateTimeOffset? SigningTime { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public sealed class CheckPdfSignatureForm
|
public sealed class CheckPdfSignatureForm
|
||||||
@@ -54,7 +53,6 @@ public class PdfSignatureController(IPdfDigitalSignatureService signatureService
|
|||||||
Reason = request.Reason,
|
Reason = request.Reason,
|
||||||
Location = request.Location,
|
Location = request.Location,
|
||||||
ContactInfo = request.ContactInfo,
|
ContactInfo = request.ContactInfo,
|
||||||
SigningTime = request.SigningTime,
|
|
||||||
CertificationLevel = PdfSignatureCertificationLevel.FormFillingAndAnnotations
|
CertificationLevel = PdfSignatureCertificationLevel.FormFillingAndAnnotations
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user