Skip to content

Commit c1d3118

Browse files
committed
Fix and complete the refactorization of the service methods related to password recovery
1 parent 7d77d13 commit c1d3118

File tree

4 files changed

+14
-12
lines changed

4 files changed

+14
-12
lines changed

backend/src/main/java/com/x/backend/exceptions/auth/InvalidLoginCredentialsException.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package com.x.backend.exceptions.auth;
22

33
import com.x.backend.exceptions.CustomRuntimeException;
4+
import org.springframework.http.HttpStatus;
5+
import org.springframework.web.bind.annotation.ResponseStatus;
46

7+
@ResponseStatus(HttpStatus.UNAUTHORIZED)
58
public class InvalidLoginCredentialsException extends CustomRuntimeException {
69
public InvalidLoginCredentialsException() {
710
super("Invalid login credentials");

backend/src/main/java/com/x/backend/models/user/auth/EmailVerificationToken.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
@Table(
1010
name = "email_verification_tokens",
1111
uniqueConstraints = {
12-
w @UniqueConstraint(
12+
@UniqueConstraint(
1313
name = "uq_email_verification_user",
1414
columnNames = { "user_id" }
1515
)

backend/src/main/java/com/x/backend/services/auth/AuthenticationServiceImpl.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -238,15 +238,14 @@ public BaseApiResponse<SendPasswordRecoveryEmailResponse> sendPasswordRecoveryEm
238238
String hashedCode = SecureCodeManager.encode(rawCode, passwordEncodingConfig.passwordEncoder());
239239
Instant expiry = Instant.now().plusSeconds(300);
240240

241+
passwordRecoveryTokenRepository.deleteByUser_Username(user.getUsername());
242+
241243
PasswordRecoveryToken passwordRecoveryToken = new PasswordRecoveryToken();
242244
passwordRecoveryToken.setHashedCode(hashedCode);
243245
passwordRecoveryToken.setExpiry(expiry);
244246
passwordRecoveryToken.setUser(user);
245247
passwordRecoveryTokenRepository.save(passwordRecoveryToken);
246248

247-
passwordRecoveryTokenRepository.deleteByUser_Username(user.getUsername());
248-
passwordRecoveryTokenRepository.save(passwordRecoveryToken);
249-
250249
EmailDispatcher.sendPasswordRecoveryEmail(mailService, user.getEmail(), user.getFullName(), rawCode);
251250

252251
SendPasswordRecoveryEmailResponse res = new SendPasswordRecoveryEmailResponse(expiry);
@@ -267,21 +266,21 @@ public BaseApiResponse<SendPasswordRecoveryEmailResponse> resendPasswordRecovery
267266
String hashedCode = SecureCodeManager.encode(rawCode, passwordEncodingConfig.passwordEncoder());
268267
Instant expiry = Instant.now().plusSeconds(300);
269268

270-
PasswordRecoveryToken newPasswordRecoveryToken = new PasswordRecoveryToken();
271-
newPasswordRecoveryToken.setHashedCode(hashedCode);
272-
newPasswordRecoveryToken.setExpiry(expiry);
273-
newPasswordRecoveryToken.setUser(user);
274-
passwordRecoveryTokenRepository.save(newPasswordRecoveryToken);
275-
276269
passwordRecoveryTokenRepository.deleteByUser_Username(user.getUsername());
277-
passwordRecoveryTokenRepository.save(newPasswordRecoveryToken);
270+
271+
PasswordRecoveryToken newPasswordRecoveryCode = new PasswordRecoveryToken();
272+
newPasswordRecoveryCode.setHashedCode(hashedCode);
273+
newPasswordRecoveryCode.setExpiry(expiry);
274+
newPasswordRecoveryCode.setUser(user);
275+
passwordRecoveryTokenRepository.save(newPasswordRecoveryCode);
278276

279277
EmailDispatcher.sendPasswordRecoveryEmail(mailService, user.getEmail(), user.getFullName(), rawCode);
280278

281279
SendPasswordRecoveryEmailResponse res = new SendPasswordRecoveryEmailResponse(expiry);
282280
return BaseApiResponse.success(res, "New password recovery code sent via email.");
283281
}
284282

283+
285284
@Override
286285
public BaseApiResponse<String> recoverPassword(RecoverPasswordRequest req) {
287286
ApplicationUser user = getUserByEmail(req.email());

backend/src/main/resources/application.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ spring:
1313
database-platform: org.hibernate.dialect.PostgreSQLDialect
1414
hibernate:
1515
ddl-auto: update
16-
show-sql: true
16+
show-sql: false
1717
properties:
1818
hibernate:
1919
format_sql: true

0 commit comments

Comments
 (0)