Skip to content

Commit 91a6f01

Browse files
refactor: simplify Password validation by removing normalization
- Remove normalizeRevocationStatus() helper method as no longer needed - Remove defensive mixed type handling and instanceof checks - Trust CrlRevocationChecker type declarations that status is always enum - logRevocationBlockedSigning() now accepts CrlValidationStatus directly - Remove test cases with serialized string data (legacy compatibility no longer needed) - Simplified code expresses contract: CRL validation status is always enum from source Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
1 parent b412ec3 commit 91a6f01

2 files changed

Lines changed: 4 additions & 52 deletions

File tree

lib/Service/IdentifyMethod/SignatureMethod/Password.php

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ private function validateCertificateRevocation(array $certificateData): void {
4848
if (!array_key_exists('crl_validation', $certificateData)) {
4949
return;
5050
}
51-
$rawStatus = $certificateData['crl_validation'];
52-
$status = $this->normalizeRevocationStatus($rawStatus);
51+
$status = $certificateData['crl_validation'];
5352
if ($status === CrlValidationStatus::VALID) {
5453
return;
5554
}
@@ -60,24 +59,13 @@ private function validateCertificateRevocation(array $certificateData): void {
6059
if ($status === CrlValidationStatus::DISABLED) {
6160
return;
6261
}
63-
$this->logRevocationBlockedSigning($rawStatus);
62+
$this->logRevocationBlockedSigning($status);
6463
throw new LibresignException($this->getRevocationErrorMessage($status), 422);
6564
}
6665

67-
private function normalizeRevocationStatus(mixed $status): ?CrlValidationStatus {
68-
if ($status instanceof CrlValidationStatus) {
69-
return $status;
70-
}
71-
if (is_string($status)) {
72-
return CrlValidationStatus::tryFrom($status);
73-
}
74-
return null;
75-
}
76-
77-
private function logRevocationBlockedSigning(mixed $status): void {
78-
$statusValue = $status instanceof CrlValidationStatus ? $status->value : (is_scalar($status) ? (string)$status : get_debug_type($status));
66+
private function logRevocationBlockedSigning(CrlValidationStatus $status): void {
7967
$this->identifyService->getLogger()->warning('Signing blocked due to CRL validation status', [
80-
'status' => $statusValue,
68+
'status' => $status->value,
8169
'signer_uid' => $this->userSession->getUser()?->getUID(),
8270
]);
8371
}

tests/php/Unit/Service/IdentifyMethod/PasswordTest.php

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -248,42 +248,6 @@ public static function providerValidateToSignWithCertificateData(): array {
248248
],
249249
'shouldThrow' => false,
250250
],
251-
'valid certificate with crl validation as serialized string' => [
252-
'certificateData' => [
253-
'validTo_time_t' => $futureTimestamp,
254-
'crl_validation' => CrlValidationStatus::VALID->value,
255-
],
256-
'shouldThrow' => false,
257-
],
258-
'disabled crl validation as serialized string' => [
259-
'certificateData' => [
260-
'validTo_time_t' => $futureTimestamp,
261-
'crl_validation' => CrlValidationStatus::DISABLED->value,
262-
],
263-
'shouldThrow' => false,
264-
],
265-
'invalid certificate - crl validation failed' => [
266-
'certificateData' => [
267-
'validTo_time_t' => $futureTimestamp,
268-
'crl_validation' => 'failed',
269-
],
270-
'shouldThrow' => true,
271-
'expectedCode' => 422,
272-
],
273-
'invalid certificate - crl validation empty string' => [
274-
'certificateData' => [
275-
'validTo_time_t' => $futureTimestamp,
276-
'crl_validation' => '',
277-
],
278-
'shouldThrow' => true,
279-
],
280-
'invalid certificate - crl validation null' => [
281-
'certificateData' => [
282-
'validTo_time_t' => $futureTimestamp,
283-
'crl_validation' => null,
284-
],
285-
'shouldThrow' => true,
286-
],
287251
'invalid certificate - crl urls_inaccessible' => [
288252
'certificateData' => [
289253
'validTo_time_t' => $futureTimestamp,

0 commit comments

Comments
 (0)