diff --git a/src/main/java/com/example/oneul/domain/user/command/UserCommandServiceImpl.java b/src/main/java/com/example/oneul/domain/user/command/UserCommandServiceImpl.java index c747957..92e991a 100644 --- a/src/main/java/com/example/oneul/domain/user/command/UserCommandServiceImpl.java +++ b/src/main/java/com/example/oneul/domain/user/command/UserCommandServiceImpl.java @@ -3,7 +3,7 @@ package com.example.oneul.domain.user.command; import javax.servlet.http.HttpSession; import com.example.oneul.domain.user.domain.UserEntity; -import com.example.oneul.domain.user.repository.UserCommandRepository; +import com.example.oneul.domain.user.repository.UserRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,12 +15,12 @@ import org.springframework.transaction.annotation.Transactional; @Service @Transactional public class UserCommandServiceImpl implements UserCommandService { - private final UserCommandRepository userCommandRepository; + private final UserRepository userRepository; private final Logger log = LoggerFactory.getLogger(UserCommandServiceImpl.class); private final PasswordEncoder passwordEncoder; - public UserCommandServiceImpl(UserCommandRepository userCommandRepository, PasswordEncoder passwordEncoder){ - this.userCommandRepository = userCommandRepository; + public UserCommandServiceImpl(UserRepository userRepository, PasswordEncoder passwordEncoder){ + this.userRepository = userRepository; this.passwordEncoder = passwordEncoder; } @@ -29,7 +29,7 @@ public class UserCommandServiceImpl implements UserCommandService { public UserEntity signUp(UserEntity userEntity, HttpSession httpSession){ // ANCHOR: 이게 맞나..? userEntity.setPassword(passwordEncoder.encode(userEntity.getPassword())); - UserEntity user = userCommandRepository.save(new UserEntity(userEntity)); + UserEntity user = userRepository.save(new UserEntity(userEntity)); httpSession.setAttribute("user",user); log.info("session id: " + httpSession.getId()); @@ -40,6 +40,9 @@ public class UserCommandServiceImpl implements UserCommandService { @Override public UserEntity login(UserEntity userEntity, HttpSession httpSession){ UserEntity user = (UserEntity) httpSession.getAttribute("user"); + if(user == null){ + user = userRepository.findByUsernameAndPassword(userEntity.getUsername(), passwordEncoder.encode(userEntity.getPassword())); + } return user; } diff --git a/src/main/java/com/example/oneul/domain/user/exception/UserAlreadyExistException.java b/src/main/java/com/example/oneul/domain/user/exception/UserAlreadyExistException.java index ce51995..f7eb8a1 100644 --- a/src/main/java/com/example/oneul/domain/user/exception/UserAlreadyExistException.java +++ b/src/main/java/com/example/oneul/domain/user/exception/UserAlreadyExistException.java @@ -1,5 +1,9 @@ package com.example.oneul.domain.user.exception; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(code = HttpStatus.CONFLICT, reason = "duplicated username") public class UserAlreadyExistException extends RuntimeException { public UserAlreadyExistException(String message){ super(message); diff --git a/src/main/java/com/example/oneul/domain/user/exception/WrongUsernameAndPasswordException.java b/src/main/java/com/example/oneul/domain/user/exception/WrongUsernameAndPasswordException.java new file mode 100644 index 0000000..498e3ea --- /dev/null +++ b/src/main/java/com/example/oneul/domain/user/exception/WrongUsernameAndPasswordException.java @@ -0,0 +1,11 @@ +package com.example.oneul.domain.user.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "wrong username and password") +public class WrongUsernameAndPasswordException extends RuntimeException { + public WrongUsernameAndPasswordException(String message){ + super(message); + } +} diff --git a/src/main/java/com/example/oneul/domain/user/repository/UserRepository.java b/src/main/java/com/example/oneul/domain/user/repository/UserRepository.java new file mode 100644 index 0000000..2a53f44 --- /dev/null +++ b/src/main/java/com/example/oneul/domain/user/repository/UserRepository.java @@ -0,0 +1,14 @@ +package com.example.oneul.domain.user.repository; + +import java.util.Optional; + +import com.example.oneul.domain.user.domain.UserEntity; + +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UserRepository extends CrudRepository { + Optional findByUsername(String username); + Optional findByUsernameAndPassword(String username, String password); +}