비활성 상태 패스워드 비교 저장
This commit is contained in:
@@ -3,6 +3,9 @@ package com.kamco.cd.kamcoback.members;
|
|||||||
import com.kamco.cd.kamcoback.auth.CustomUserDetails;
|
import com.kamco.cd.kamcoback.auth.CustomUserDetails;
|
||||||
import com.kamco.cd.kamcoback.auth.JwtTokenProvider;
|
import com.kamco.cd.kamcoback.auth.JwtTokenProvider;
|
||||||
import com.kamco.cd.kamcoback.auth.RefreshTokenService;
|
import com.kamco.cd.kamcoback.auth.RefreshTokenService;
|
||||||
|
import com.kamco.cd.kamcoback.common.enums.StatusType;
|
||||||
|
import com.kamco.cd.kamcoback.common.enums.error.AuthErrorCode;
|
||||||
|
import com.kamco.cd.kamcoback.common.exception.CustomApiException;
|
||||||
import com.kamco.cd.kamcoback.config.api.ApiResponseDto;
|
import com.kamco.cd.kamcoback.config.api.ApiResponseDto;
|
||||||
import com.kamco.cd.kamcoback.members.dto.MembersDto;
|
import com.kamco.cd.kamcoback.members.dto.MembersDto;
|
||||||
import com.kamco.cd.kamcoback.members.dto.SignInRequest;
|
import com.kamco.cd.kamcoback.members.dto.SignInRequest;
|
||||||
@@ -104,16 +107,25 @@ public class AuthController {
|
|||||||
SignInRequest request,
|
SignInRequest request,
|
||||||
HttpServletResponse response) {
|
HttpServletResponse response) {
|
||||||
|
|
||||||
Authentication authentication =
|
// 사용자 상태 조회
|
||||||
authenticationManager.authenticate(
|
|
||||||
new UsernamePasswordAuthenticationToken(request.getUsername(), request.getPassword()));
|
|
||||||
|
|
||||||
String status = authService.getUserStatus(request);
|
String status = authService.getUserStatus(request);
|
||||||
|
Authentication authentication = null;
|
||||||
MembersDto.Member member = new MembersDto.Member();
|
MembersDto.Member member = new MembersDto.Member();
|
||||||
|
|
||||||
|
// 비활성 상태면 임시패스워드를 비교함
|
||||||
|
if (StatusType.INACTIVE.getId().equals(status)) {
|
||||||
|
if (!authService.isTempPasswordValid(request)) {
|
||||||
|
throw new CustomApiException(AuthErrorCode.LOGIN_PASSWORD_MISMATCH);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
authentication =
|
||||||
|
authenticationManager.authenticate(
|
||||||
|
new UsernamePasswordAuthenticationToken(
|
||||||
|
request.getUsername(), request.getPassword()));
|
||||||
|
}
|
||||||
|
|
||||||
// INACTIVE 비활성 상태(새로운 패스워드 입력 해야함), DELETED 탈퇴
|
// INACTIVE 비활성 상태(새로운 패스워드 입력 해야함), DELETED 탈퇴
|
||||||
if (!"ACTIVE".equals(status)) {
|
if (!StatusType.ACTIVE.getId().equals(status)) {
|
||||||
return ApiResponseDto.ok(new TokenResponse(status, null, null, member));
|
return ApiResponseDto.ok(new TokenResponse(status, null, null, member));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,4 +33,14 @@ public class AuthService {
|
|||||||
public String getUserStatus(SignInRequest request) {
|
public String getUserStatus(SignInRequest request) {
|
||||||
return membersCoreService.getUserStatus(request);
|
return membersCoreService.getUserStatus(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 임시 패스워드 비교
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean isTempPasswordValid(SignInRequest request) {
|
||||||
|
return membersCoreService.isTempPasswordValid(request);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -152,6 +152,21 @@ public class MembersCoreService {
|
|||||||
return memberEntity.getStatus();
|
return memberEntity.getStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 임시 패스워드 비교
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean isTempPasswordValid(SignInRequest request) {
|
||||||
|
MemberEntity memberEntity =
|
||||||
|
membersRepository
|
||||||
|
.findByUserId(request.getUsername())
|
||||||
|
.orElseThrow(MemberNotFoundException::new);
|
||||||
|
|
||||||
|
return memberEntity.getTempPassword().equals(request.getPassword().trim());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 최초 로그인 저장 마지막 로그인 저장
|
* 최초 로그인 저장 마지막 로그인 저장
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user