From 5f780f8d1e74ac4ca8b59be9dd02a01121b80ef1 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 10 Feb 2025 11:48:36 +0100 Subject: [PATCH] =?UTF-8?q?fix(EnvelopeSmsHandler):=20Korrekte=20Ablaufpr?= =?UTF-8?q?=C3=BCfung=20und=20Cache-Aktualisierung=20in=20SendTotpAsync=20?= =?UTF-8?q?-=20Die=20Bedingung=20f=C3=BCr=20die=20=C3=9Cberpr=C3=BCfung=20?= =?UTF-8?q?des=20Ablaufs=20wurde=20korrigiert,=20so=20dass=20sie=20korrekt?= =?UTF-8?q?=20null=20zur=C3=BCckgibt,=20wenn=20der=20gespeicherte=20Ablauf?= =?UTF-8?q?=20in=20der=20Zukunft=20liegt.=20-=20Fehlende=20Cache-Aktualisi?= =?UTF-8?q?erung=20zur=20Speicherung=20des=20neuen=20Verfallsdatums=20nach?= =?UTF-8?q?=20dem=20Versand=20der=20TOTP-SMS=20hinzugef=C3=BCgt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EnvelopeGenerator.Application/Services/EnvelopeSmsHandler.cs | 3 ++- EnvelopeGenerator.Web/Controllers/HomeController.cs | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/EnvelopeGenerator.Application/Services/EnvelopeSmsHandler.cs b/EnvelopeGenerator.Application/Services/EnvelopeSmsHandler.cs index dfea09e6..36eef84f 100644 --- a/EnvelopeGenerator.Application/Services/EnvelopeSmsHandler.cs +++ b/EnvelopeGenerator.Application/Services/EnvelopeSmsHandler.cs @@ -37,13 +37,14 @@ public class EnvelopeSmsHandler : IEnvelopeSmsHandler var key = string.Format(_totpSmsParams.Expiration.CacheKeyFormat, er_secret.EnvelopeId, er_secret.ReceiverId); var expiration = await _dCache.GetDateTimeAsync(key, cToken); - if(expiration is DateTime expirationDateTime && expirationDateTime < DateTime.Now) + if(expiration is DateTime expirationDateTime && expirationDateTime >= DateTime.Now) return (null, expirationDateTime); else { var new_expiration = DateTime.Now.AddSeconds(_totpSmsParams.TotpStep); var totp = _authenticator.GenerateTotp(er_secret.Receiver!.TotpSecretkey!, _totpSmsParams.TotpStep); var msg = string.Format(_totpSmsParams.Format, totp, new_expiration.ToString(_totpSmsParams.Expiration.Format, _totpSmsParams.Expiration.CultureInfo)); + await _dCache.SetDateTimeAsync(key, new_expiration, cToken: cToken); return (await _sender.SendSmsAsync(er_secret.PhoneNumber!, msg), new_expiration); } } diff --git a/EnvelopeGenerator.Web/Controllers/HomeController.cs b/EnvelopeGenerator.Web/Controllers/HomeController.cs index 7d795819..cebebce7 100644 --- a/EnvelopeGenerator.Web/Controllers/HomeController.cs +++ b/EnvelopeGenerator.Web/Controllers/HomeController.cs @@ -160,7 +160,7 @@ public class HomeController : ViewControllerBase { var (smsRes, expiration) = await _envSmsHandler.SendTotpAsync(er_secret); - if (smsRes is not null && smsRes.Failed) + if (smsRes?.Failed ?? false) { var res_json = JsonConvert.SerializeObject(smsRes); _logger.LogEnvelopeError(envelopeReceiverId: envelopeReceiverId, message: $"An unexpected error occurred while sending an SMS code. Response: ${res_json}");