diff --git a/src/main/java/com/example/demo/app/domain/service/impl/LoginServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/LoginServiceImpl.java index 9e1563a..2ec04b3 100644 --- a/src/main/java/com/example/demo/app/domain/service/impl/LoginServiceImpl.java +++ b/src/main/java/com/example/demo/app/domain/service/impl/LoginServiceImpl.java @@ -1,5 +1,6 @@ package com.example.demo.app.domain.service.impl; +import org.mindrot.jbcrypt.BCrypt; import org.springframework.stereotype.Service; import com.example.demo.app.domain.model.LoginModel; @@ -13,19 +14,26 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class LoginServiceImpl implements LoginService { - private final UserRepository userRepository; + private final UserRepository userRepository; - @Override - public LoginModel login(String mailAddress, String password) { + @Override + public LoginModel login(String mailAddress, String password) { - UserEntity userEntity = userRepository.findByMailAddressAndPassword( - mailAddress, - password).orElse(null); + UserEntity userEntity = userRepository + .findByMailAddress(mailAddress) + .orElse(null); - if (userEntity == null) { - return null; - } + if (userEntity == null) { + return null; + } + + boolean isValidPassword = BCrypt.checkpw(password, userEntity.getPassword()); + + if (!isValidPassword) { + return null; + } + + return new LoginModel(userEntity.getUserId()); + } - return new LoginModel(userEntity.getUserId()); - } } diff --git a/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java index 9cc6639..ed6c47f 100644 --- a/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java +++ b/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java @@ -1,5 +1,6 @@ package com.example.demo.app.domain.service.impl; +import org.mindrot.jbcrypt.BCrypt; import org.springframework.stereotype.Service; import com.example.demo.app.domain.model.UserModel; @@ -24,14 +25,17 @@ public class UserServiceImpl implements UserService { private final GoalRepository goalRepository; private final CourseRepository courseRepository; - @Override - public void register(UserForm userForm, Long courseId, Long userId) { + @Override + public void register(UserForm userForm, Long courseId) { UserEntity userEntity = new UserEntity(); userEntity.setUserName(userForm.getUserName()); userEntity.setMailAddress(userForm.getMailAddress()); - userEntity.setPassword(userForm.getPassword()); + + String passwordHashed = BCrypt.hashpw(userForm.getPassword(), BCrypt.gensalt()); + + userEntity.setPassword(passwordHashed); userEntity.setSecretQuestionAnswer(userForm.getSecretAnswer()); userEntity.setBirthDate(userForm.getBirthDate()); userEntity.setSaving(userForm.getSaving()); @@ -44,7 +48,6 @@ public class UserServiceImpl implements UserService { GoalEntity goalEntity = new GoalEntity(); goalEntity.setTargetAmount(Integer.parseInt(String.valueOf(userForm.getGoalId()))); - goalEntity.setUserEntity(userRepository.findById(userId).get()); CourseEntity courseEntity = courseRepository.findById(courseId).orElse(null);