Skip to content

Conversation

OlhaHirniak
Copy link

No description provided.

Copy link

@mateacademy-ai-mentor mateacademy-ai-mentor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

Hey! Thanks for the submission. There are a few things to address: 1) Remove password and salt from the toString() method in User.java for security reasons. 2) In AuthenticationServiceImpl.java, you should pass the plain password to userService.add() for registration, and create salt and hash password in UserService add() method. You should also have only one condition for throwing AuthenticationException in the login() method. Fix these and you're good to go! 🚀


✨ Please rate this review in the Platform's notification center1. I will be grateful for your feedback! ✨

Important

Fix the issues, commit the changes, and then re-request my review using the Re-request review button2 in the Reviewers tab.

Tip

If you have any comments about this review, please leave a message in the Add a comment section below and mention me with the @mateacademy-ai-mentor tag3.
I will read your message during my next review of your pull request. Please do not reply directly to my comments, as that feature is not supported yet.

Caution

Do not close the pull request until the review is complete. Closing it early can lead to unexpected behavior and disrupt the review process.

Footnotes

  1. Rate AI review example

  2. Re-request AI review example

  3. Add AI review comments example

Comment on lines 53 to 59
public String toString() {
return "User{"
+ "id=" + id
+ ", login='" + email + '\''
+ ", password='" + password + '\''
+ ", salt=" + Arrays.toString(salt)
+ '}';

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The toString() method includes the password and salt, which is a security risk. Remove these fields from the toString() representation.

According to the checklist:

Don't add password and salt to the toString() method.

Comment on lines +21 to +23
if (userFromDbOptional.isEmpty()
|| (!userFromDbOptional.get().getPassword().equals(
HashUtil.hashPassword(password, userFromDbOptional.get().getSalt())))) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the checklist, you should create only one condition for throwing AuthenticationException in login() method. You may combine two checks: whether the user has been found by login and do passwords match.

Comment on lines +36 to +37
user.setEmail(email);
user.setPassword(password);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The salt and hash password should be created in UserService add() method. Therefore, you should pass the plain password to userService.add().

According to the checklist:

You should create salt and hash password in UserService add() method.

Copy link

@mateacademy-ai-mentor mateacademy-ai-mentor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

The code looks great and meets all the specified requirements! The structure is clean, the logic is well-implemented, and the exception handling and transaction management are correctly handled. I particularly appreciate that password hashing and salting are handled in the UserService, as it ensures better security. The User model's toString() method correctly excludes sensitive information.

Keep in mind to review all the code to ensure best quality.

Also, I noticed this final conclusion: The code meets the task requirements and constraints.

Overall, excellent work! You've demonstrated a strong understanding of the concepts. Keep up the great work! 🎉


✨ Please rate this review in the Platform's notification center1. I will be grateful for your feedback! ✨

Footnotes

  1. Rate AI review example

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants