Skip to content

Commit e2e45ac

Browse files
committed
feat: added encoder to reset password
1 parent 31f9eba commit e2e45ac

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

src/main/java/com/joaov1ct0r/restful_api_users_java/modules/users/entities/UserEntity.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import jakarta.annotation.Nullable;
66
import jakarta.persistence.*;
77
import jakarta.validation.constraints.Email;
8+
import jakarta.validation.constraints.NotBlank;
89
import jakarta.validation.constraints.Pattern;
910
import org.hibernate.annotations.CreationTimestamp;
1011
import org.hibernate.annotations.UpdateTimestamp;
@@ -26,16 +27,20 @@ public class UserEntity implements UserDetails {
2627

2728
@Column(nullable = false)
2829
@Pattern(regexp = "\\S+", message = "O campo [username] não deve conter espaço")
30+
@NotBlank(message = "Username must not be blank")
2931
private String username;
3032

31-
@Email
33+
@Email(message = "Email format is not valid")
34+
@NotBlank(message = "Email must not be blank")
3235
@Column(nullable = false)
3336
private String email;
3437

3538
@Column(nullable = false)
39+
@NotBlank(message = "Name must not be blank")
3640
private String name;
3741

3842
@Column(nullable = false)
43+
@NotBlank(message = "Password must not be blank")
3944
private String password;
4045

4146
@Nullable

src/main/java/com/joaov1ct0r/restful_api_users_java/modules/users/services/ResetPasswordService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.joaov1ct0r.restful_api_users_java.modules.users.dtos.ResetPasswordDTO;
77
import com.joaov1ct0r.restful_api_users_java.modules.users.repositories.UserRepository;
88
import org.springframework.beans.factory.annotation.Autowired;
9+
import org.springframework.security.crypto.password.PasswordEncoder;
910
import org.springframework.stereotype.Service;
1011

1112
@Service
@@ -19,6 +20,9 @@ public class ResetPasswordService extends BaseService {
1920
@Autowired
2021
private Generator generator;
2122

23+
@Autowired
24+
private PasswordEncoder passwordEncoder;
25+
2226
public void execute(ResetPasswordDTO resetPasswordDTO) throws Exception {
2327
var isUserRegistered = this.userRepository.findByEmail(resetPasswordDTO.getEmail());
2428

@@ -36,7 +40,7 @@ public void execute(ResetPasswordDTO resetPasswordDTO) throws Exception {
3640

3741
var userToUpdate = isUserRegistered.get();
3842
String newUserPassword = this.generator.generateRandomPassword(9);
39-
userToUpdate.setPassword(newUserPassword);
43+
userToUpdate.setPassword(this.passwordEncoder.encode(newUserPassword));
4044
this.userRepository.save(userToUpdate);
4145

4246
this.emailService.sendMail(

src/test/java/com/joaov1ct0r/restful_api_users_java/modules/users/services/users/ResetPasswordServiceTest.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@
1919
import org.mockito.junit.jupiter.MockitoExtension;
2020
import org.mockito.junit.jupiter.MockitoSettings;
2121
import org.mockito.quality.Strictness;
22+
import org.springframework.security.crypto.password.PasswordEncoder;
2223
import static org.assertj.core.api.Assertions.assertThat;
2324
import java.time.LocalDateTime;
2425
import java.util.Optional;
2526
import java.util.UUID;
26-
2727
import static org.mockito.Mockito.any;
28+
import static org.mockito.Mockito.anyString;
2829

2930
@ExtendWith(MockitoExtension.class)
3031
@MockitoSettings(strictness = Strictness.LENIENT)
@@ -44,11 +45,15 @@ public class ResetPasswordServiceTest {
4445
@Mock
4546
private Generator generator;
4647

48+
@Mock
49+
private PasswordEncoder passwordEncoder;
50+
4751
@BeforeEach
4852
public void beforeEachSetUp() {
4953
Mockito.reset(this.userRepository);
5054
Mockito.reset(this.emailService);
5155
Mockito.reset(this.errorLogsRepository);
56+
Mockito.reset(this.passwordEncoder);
5257
Mockito.reset(this.generator);
5358
Mockito.when(this.errorLogsRepository.save(any())).thenReturn(new ErrorLogEntity(
5459
UUID.randomUUID(),
@@ -92,6 +97,7 @@ public void shouldBeAbleToResetPassword() {
9297
));
9398

9499
Mockito.when(this.generator.generateRandomPassword(9)).thenReturn("any_generated_string");
100+
Mockito.when(this.passwordEncoder.encode(anyString())).thenReturn("any_password");
95101

96102
try {
97103
this.sut.execute(resetPasswordDTO);

0 commit comments

Comments
 (0)