Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ public Optional<Member> findActiveMemberByNickname(final String nickname) {
return memberEntity.map(memberPersistenceMapper::toDomain);
}

@Override
public Optional<Member> findApprovalMemberByNickname(String nickname) {
Optional<MemberEntity> memberEntity = memberRepository.findApprovalRequestMemberByNickname(nickname);
return memberEntity.map(memberPersistenceMapper::toDomain);
}

@Override
public List<Member> findReviewers() {
List<MemberEntity> memberEntities = memberRepository.findByIsReviewerTrue();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ public interface MemberRepository extends JpaRepository<MemberEntity, Long>, Me
@Query("SELECT m FROM MemberEntity m WHERE m.nickname = :nickname AND m.status = 'ACTIVE'")
Optional<MemberEntity> findActiveMemberByNickname(@Param("nickname") String nickname);

@Query("SELECT m FROM MemberEntity m WHERE m.nickname = :nickname AND m.status = 'APPROVAL_REQUEST'")
Optional<MemberEntity> findApprovalRequestMemberByNickname(@Param("nickname") String nickname);

List<MemberEntity> findByIsReviewerTrue();

List<MemberEntity> findAll(); // 전체 회원 조회
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ public interface LoadMemberPort {

Optional<Member> findActiveMemberByNickname(String nickname);

Optional<Member> findApprovalMemberByNickname(String nickname);

List<Member> findReviewers();

Page<Member> findAllMembers(Pageable pageable);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)) {
Expand Down Expand Up @@ -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) {
Expand Down