From 866ad82187e076398e4887e0c9da1f6bfee1b7b5 Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Wed, 18 May 2022 12:50:12 +0300 Subject: [PATCH] Email 2FA verification message improvements --- .../thingsboard/server/service/mail/DefaultMailService.java | 5 +++-- .../security/auth/mfa/provider/impl/EmailTwoFaProvider.java | 2 +- .../src/main/resources/templates/2fa.verification.code.ftl | 6 +++--- .../data/security/model/mfa/PlatformTwoFaSettings.java | 2 ++ .../java/org/thingsboard/rule/engine/api/MailService.java | 2 +- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java b/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java index fdb1b579e9..9d2f7b8891 100644 --- a/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java +++ b/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java @@ -322,11 +322,12 @@ public class DefaultMailService implements MailService { } @Override - public void sendTwoFaVerificationEmail(String email, String verificationCode) throws ThingsboardException { + public void sendTwoFaVerificationEmail(String email, String verificationCode, int expirationTimeSeconds) throws ThingsboardException { String subject = messages.getMessage("2fa.verification.code.subject", null, Locale.US); String message = mergeTemplateIntoString("2fa.verification.code.ftl", Map.of( TARGET_EMAIL, email, - "verificationCode", verificationCode + "verificationCode", verificationCode, + "expirationTimeSeconds", expirationTimeSeconds )); sendMail(mailSender, mailFrom, email, subject, message); diff --git a/application/src/main/java/org/thingsboard/server/service/security/auth/mfa/provider/impl/EmailTwoFaProvider.java b/application/src/main/java/org/thingsboard/server/service/security/auth/mfa/provider/impl/EmailTwoFaProvider.java index 39af5038ef..2aa5985514 100644 --- a/application/src/main/java/org/thingsboard/server/service/security/auth/mfa/provider/impl/EmailTwoFaProvider.java +++ b/application/src/main/java/org/thingsboard/server/service/security/auth/mfa/provider/impl/EmailTwoFaProvider.java @@ -55,7 +55,7 @@ public class EmailTwoFaProvider extends OtpBasedTwoFaProvider @@ -86,12 +86,12 @@ diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/security/model/mfa/PlatformTwoFaSettings.java b/common/data/src/main/java/org/thingsboard/server/common/data/security/model/mfa/PlatformTwoFaSettings.java index 39ca0349fb..87d6403b04 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/security/model/mfa/PlatformTwoFaSettings.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/security/model/mfa/PlatformTwoFaSettings.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.common.data.security.model.mfa; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Data; import org.thingsboard.server.common.data.security.model.mfa.provider.TwoFaProviderConfig; import org.thingsboard.server.common.data.security.model.mfa.provider.TwoFaProviderType; @@ -26,6 +27,7 @@ import java.util.List; import java.util.Optional; @Data +@JsonIgnoreProperties(ignoreUnknown = true) public class PlatformTwoFaSettings { @Valid diff --git a/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/MailService.java b/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/MailService.java index 236391ba16..6ac4417934 100644 --- a/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/MailService.java +++ b/rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/MailService.java @@ -46,7 +46,7 @@ public interface MailService { void sendAccountLockoutEmail(String lockoutEmail, String email, Integer maxFailedLoginAttempts) throws ThingsboardException; - void sendTwoFaVerificationEmail(String email, String verificationCode) throws ThingsboardException; + void sendTwoFaVerificationEmail(String email, String verificationCode, int expirationTimeSeconds) throws ThingsboardException; void send(TenantId tenantId, CustomerId customerId, TbEmail tbEmail) throws ThingsboardException;
-

Email verification code:

+

Your verification code:

- This code will expire in ${expiredTime} minutes. To get a new one, click Resend code on the Thingsboard platform. + This code will expire in ${expirationTimeSeconds} seconds.
- If you didn't request for this code, then you can just ignore this email; access won't provided. + If you didn't request this code, you can ignore this email.