Skip to content

Commit a8d674c

Browse files
EFRS-1342: Fixed the email message related problems
1 parent d84d783 commit a8d674c

File tree

6 files changed

+39
-24
lines changed

6 files changed

+39
-24
lines changed

java/admin/src/main/java/com/exadel/frs/helpers/EmailSender.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public void sendMail(final String to, final String subject, final String message
4545
}
4646
helper.setTo(to);
4747
helper.setSubject(subject);
48-
helper.setText(message);
48+
helper.setText(message, true);
4949

5050
try {
5151
javaMailSender.send(msg);

java/admin/src/main/java/com/exadel/frs/service/ResetPasswordTokenService.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,16 @@
55
import static java.time.LocalDateTime.now;
66
import static java.time.ZoneOffset.UTC;
77
import static java.time.temporal.ChronoUnit.MILLIS;
8+
import static liquibase.repackaged.org.apache.commons.text.StringSubstitutor.replace;
89
import com.exadel.frs.commonservice.entity.ResetPasswordToken;
910
import com.exadel.frs.commonservice.entity.User;
1011
import com.exadel.frs.exception.InvalidResetPasswordTokenException;
1112
import com.exadel.frs.exception.MailServerDisabledException;
1213
import com.exadel.frs.helpers.EmailSender;
1314
import com.exadel.frs.repository.ResetPasswordTokenRepository;
15+
import java.util.Map;
1416
import java.util.UUID;
17+
import liquibase.repackaged.org.apache.commons.text.StringSubstitutor;
1518
import lombok.RequiredArgsConstructor;
1619
import lombok.extern.slf4j.Slf4j;
1720
import lombok.val;
@@ -29,12 +32,6 @@ public class ResetPasswordTokenService {
2932
@Value("${forgot-password.reset-password-token.expires}")
3033
private long tokenExpires;
3134

32-
@Value("${forgot-password.email.subject}")
33-
private String emailSubject;
34-
35-
@Value("${forgot-password.email.message}")
36-
private String emailMessage;
37-
3835
private final ResetPasswordTokenRepository tokenRepository;
3936
private final UserService userService;
4037
private final EmailSender emailSender;
@@ -92,11 +89,22 @@ private UUID assignToken(final User user) {
9289
}
9390

9491
private void sendToken(final String email, final UUID token) {
95-
val hostRedirectTo = env.getProperty("host.frs");
92+
val messageParams = Map.of(
93+
"host", env.getProperty("host.frs"),
94+
"token", token.toString()
95+
);
96+
97+
val message = StringSubstitutor.replace("""
98+
In order to reset a password click the link below:<br>
99+
<a href="${host}/reset-password?token=${token}">
100+
${host}/reset-password?token=${token}
101+
</a>
102+
""", messageParams, "${", "}");
103+
96104
emailSender.sendMail(
97105
email,
98-
emailSubject,
99-
format(emailMessage, hostRedirectTo, token.toString())
106+
"CompreFace Reset Password",
107+
message
100108
);
101109
}
102110
}

java/admin/src/main/java/com/exadel/frs/service/UserService.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@
4646
import java.time.LocalDateTime;
4747
import java.util.ArrayList;
4848
import java.util.List;
49+
import java.util.Map;
4950
import java.util.UUID;
51+
import liquibase.repackaged.org.apache.commons.text.StringSubstitutor;
5052
import lombok.RequiredArgsConstructor;
5153
import lombok.extern.slf4j.Slf4j;
5254
import lombok.val;
@@ -125,14 +127,23 @@ public String generateRegistrationToken() {
125127
}
126128

127129
private void sendRegistrationTokenToUser(final User user) {
128-
val message = "Please, confirm your registration clicking the link below:\n"
129-
+ env.getProperty("host.frs")
130-
+ "/admin/user/registration/confirm?token="
131-
+ user.getRegistrationToken();
132-
133-
val subject = "CompreFace Registration";
134-
135-
emailSender.sendMail(user.getEmail(), subject, message);
130+
val messageParams = Map.of(
131+
"host", env.getProperty("host.frs"),
132+
"token", user.getRegistrationToken()
133+
);
134+
135+
val message = StringSubstitutor.replace("""
136+
Please, confirm your registration clicking the link below:<br>
137+
<a href="${host}/admin/user/registration/confirm?token=${token}">
138+
${host}/admin/user/registration/confirm?token=${token}
139+
</a>
140+
""", messageParams, "${", "}");
141+
142+
emailSender.sendMail(
143+
user.getEmail(),
144+
"CompreFace Registration",
145+
message
146+
);
136147
}
137148

138149
private void validateUserCreateDto(final UserCreateDto userCreateDto) {

java/admin/src/main/resources/application.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,6 @@ forgot-password:
128128
cleaner:
129129
scheduler:
130130
cron: '0 0 0 * * ?'
131-
email:
132-
subject: 'CompreFace Reset Password'
133-
message: 'In order to reset a password click the following link: %s/reset-password?token=%s'
134131

135132
# "environment" and "image" blocks should be same in those files:
136133
# * api/src/main/resources/application.properties

java/admin/src/test/java/com/exadel/frs/UserServiceTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ void failGetUser() {
115115
@Test
116116
void successCreateUserWhenMailServerEnabled() {
117117
when(env.getProperty("spring.mail.enable")).thenReturn("true");
118+
when(env.getProperty("host.frs")).thenReturn("http://localhost");
118119
when(userRepositoryMock.save(any())).thenAnswer(returnsFirstArg());
119120
val userCreateDto = UserCreateDto.builder()
120121
@@ -272,6 +273,7 @@ void confirmRegistrationReturns403WhenTokenIsExpired() {
272273
void confirmRegistrationEnablesUserAndRemovesTokenWhenSuccess() {
273274
when(userRepositoryMock.save(any())).thenAnswer(returnsFirstArg());
274275
when(env.getProperty("spring.mail.enable")).thenReturn("true");
276+
when(env.getProperty("host.frs")).thenReturn("http://localhost");
275277
val userCreateDto = UserCreateDto.builder()
276278
277279
.password("password")

java/admin/src/test/resources/application.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,6 @@ forgot-password:
9595
cleaner:
9696
scheduler:
9797
cron: '0 0 0 * * ?'
98-
email:
99-
subject: 'CompreFace Reset Password'
100-
message: 'In order to reset a password click the following link: %s/admin/reset-password?token=%s'
10198

10299
environment:
103100
servers:

0 commit comments

Comments
 (0)