From a1057d17dd970699afadd13e0f612800a7fedfdf Mon Sep 17 00:00:00 2001 From: joowojr Date: Fri, 14 Feb 2025 10:58:06 +0900 Subject: [PATCH] =?UTF-8?q?CLAP-425=20Fix:=20=ED=99=9C=EC=84=B1=20?= =?UTF-8?q?=ED=9A=8C=EC=9B=90=EC=9D=B4=20=EC=97=86=EC=9D=84=20=EC=8B=9C=20?= =?UTF-8?q?=EC=8A=B9=EC=9D=B8=20=EB=8C=80=EA=B8=B0=EC=A4=91=EC=9D=B8=20?= =?UTF-8?q?=ED=9A=8C=EC=9B=90=EC=9D=84=20=EC=B0=BE=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistense/MemberPersistenceAdapter.java | 6 ++++++ .../repository/member/MemberRepository.java | 3 +++ .../port/outbound/member/LoadMemberPort.java | 2 ++ .../server/application/service/auth/AuthService.java | 12 ++++++------ 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/clap/server/adapter/outbound/persistense/MemberPersistenceAdapter.java b/src/main/java/clap/server/adapter/outbound/persistense/MemberPersistenceAdapter.java index 5e670883..ca4f88f5 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/MemberPersistenceAdapter.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/MemberPersistenceAdapter.java @@ -43,6 +43,12 @@ public Optional findActiveMemberByNickname(final String nickname) { return memberEntity.map(memberPersistenceMapper::toDomain); } + @Override + public Optional findApprovalMemberByNickname(String nickname) { + Optional memberEntity = memberRepository.findApprovalRequestMemberByNickname(nickname); + return memberEntity.map(memberPersistenceMapper::toDomain); + } + @Override public List findReviewers() { List memberEntities = memberRepository.findByIsReviewerTrue(); diff --git a/src/main/java/clap/server/adapter/outbound/persistense/repository/member/MemberRepository.java b/src/main/java/clap/server/adapter/outbound/persistense/repository/member/MemberRepository.java index 813521a0..3f563567 100644 --- a/src/main/java/clap/server/adapter/outbound/persistense/repository/member/MemberRepository.java +++ b/src/main/java/clap/server/adapter/outbound/persistense/repository/member/MemberRepository.java @@ -21,6 +21,9 @@ public interface MemberRepository extends JpaRepository, Me @Query("SELECT m FROM MemberEntity m WHERE m.nickname = :nickname AND m.status = 'ACTIVE'") Optional findActiveMemberByNickname(@Param("nickname") String nickname); + @Query("SELECT m FROM MemberEntity m WHERE m.nickname = :nickname AND m.status = 'APPROVAL_REQUEST'") + Optional findApprovalRequestMemberByNickname(@Param("nickname") String nickname); + List findByIsReviewerTrue(); List findAll(); // 전체 회원 조회 diff --git a/src/main/java/clap/server/application/port/outbound/member/LoadMemberPort.java b/src/main/java/clap/server/application/port/outbound/member/LoadMemberPort.java index d79baf83..10d072fb 100644 --- a/src/main/java/clap/server/application/port/outbound/member/LoadMemberPort.java +++ b/src/main/java/clap/server/application/port/outbound/member/LoadMemberPort.java @@ -23,6 +23,8 @@ public interface LoadMemberPort { Optional findActiveMemberByNickname(String nickname); + Optional findApprovalMemberByNickname(String nickname); + List findReviewers(); Page findAllMembers(Pageable pageable); diff --git a/src/main/java/clap/server/application/service/auth/AuthService.java b/src/main/java/clap/server/application/service/auth/AuthService.java index 53002230..d9b42a9f 100644 --- a/src/main/java/clap/server/application/service/auth/AuthService.java +++ b/src/main/java/clap/server/application/service/auth/AuthService.java @@ -36,7 +36,6 @@ class AuthService implements LoginUsecase, LogoutUsecase { @Override public LoginResponse login(String nickname, String password, String clientIp) { Member member = getMember(nickname,clientIp); - validatePassword(password, member.getPassword(), nickname, clientIp); if (member.getStatus().equals(MemberStatus.APPROVAL_REQUEST)) { @@ -69,11 +68,12 @@ private void deleteAccessToken(Long memberId, String accessToken) { } private Member getMember(String inputNickname, String clientIp) { - return loadMemberPort.findActiveMemberByNickname(inputNickname).orElseThrow(() -> - { - loginAttemptService.recordFailedAttempt(inputNickname, clientIp); - return new AuthException(AuthErrorCode.LOGIN_REQUEST_FAILED); - }); + return loadMemberPort.findActiveMemberByNickname(inputNickname) + .or(() -> loadMemberPort.findApprovalMemberByNickname(inputNickname)) + .orElseThrow(() -> { + loginAttemptService.recordFailedAttempt(inputNickname, clientIp); + return new AuthException(AuthErrorCode.LOGIN_REQUEST_FAILED); + }); } private void validatePassword(String inputPassword, String encodedPassword, String inputNickname, String clientIp) {