diff --git a/src/main/java/kr/co/uplus/ez/api/login/LoginService.java b/src/main/java/kr/co/uplus/ez/api/login/LoginService.java
index 9b71961..7865bdf 100644
--- a/src/main/java/kr/co/uplus/ez/api/login/LoginService.java
+++ b/src/main/java/kr/co/uplus/ez/api/login/LoginService.java
@@ -305,6 +305,7 @@ public class LoginService {
authUser.setPwdChgDt(Const.COMM_YES);
authUser.setAuthchrFailCnt(0);
authUser.setLoginFailCnt(0);
+ authUser.setPwdOld(user.getPwd());
int reslut = loginMapper.updateAdmUser(authUser);
@@ -348,20 +349,30 @@ public class LoginService {
return new UpdatePasswordResDto(ApiResponseCode.CE_ID_NOT_FOUND);
}
- String newPw = EncryptionUtil.getCustomSHA512(updatePasswordReqDto.getUserId(), updatePasswordReqDto.getNewPw());
- String oldPw = user.getPwd();
+ String newPwd = EncryptionUtil.getCustomSHA512(updatePasswordReqDto.getUserId(), updatePasswordReqDto.getNewPw());
+ String nowPwd = user.getPwd();
- if(oldPw.equals(newPw)) {
+ // 현재 비밀번호랑 동일 한지 체크
+ if(nowPwd.equals(newPwd)) {
return new UpdatePasswordResDto(ApiResponseCode.CE_FAILED_TO_PW_CHANGE);
}
+ // 이전 패스워드랑 동일 한지 체크
+ if(user.getPwdOld() != null) {
+ String oldPwd = user.getPwdOld();
+ if(oldPwd.equals(newPwd)) {
+ return new UpdatePasswordResDto(ApiResponseCode.CE_FAILED_TO_PW_CHANGE);
+ }
+ }
+
// 2. 비밀번호 변경 - update EZ_ADM_USER (비밀번호, 비밀번호변경일시)
AuthUser authUser = new AuthUser();
authUser.setOprtrId(updatePasswordReqDto.getUserId());
- authUser.setPwd(newPw);
+ authUser.setPwd(newPwd);
authUser.setPwdChgDt(Const.COMM_YES);
authUser.setAuthchrFailCnt(0);
authUser.setTmpPwdYn(Const.COMM_NO);
+ authUser.setPwdOld(nowPwd);
int reslut = loginMapper.updateAdmUser(authUser);
diff --git a/src/main/java/kr/co/uplus/ez/api/login/dto/AuthUser.java b/src/main/java/kr/co/uplus/ez/api/login/dto/AuthUser.java
index b05575a..615fdd9 100644
--- a/src/main/java/kr/co/uplus/ez/api/login/dto/AuthUser.java
+++ b/src/main/java/kr/co/uplus/ez/api/login/dto/AuthUser.java
@@ -39,6 +39,7 @@ public class AuthUser implements UserDetails {
private String accNm; // 대리점 명
private String accSttusCd; // 계정 상태 코드
private String pwChangeCheck; // 비밀번호 변경 여부
+ private String pwdOld; // 이전 비밀번호
private Collection extends GrantedAuthority> authorities;
@@ -196,4 +197,8 @@ public class AuthUser implements UserDetails {
public String getPwChangeCheck() {
return pwChangeCheck;
}
+
+ public String getPwdOld() {
+ return pwdOld;
+ }
}
\ No newline at end of file
diff --git a/src/main/resources/mapper/mysql/login/login-mapper.xml b/src/main/resources/mapper/mysql/login/login-mapper.xml
index acc9840..424715b 100644
--- a/src/main/resources/mapper/mysql/login/login-mapper.xml
+++ b/src/main/resources/mapper/mysql/login/login-mapper.xml
@@ -85,6 +85,7 @@
END AS PW_CHANGE_CHECK
, T1.AUT_CD
, T1.TMP_PWD_YN
+ , T1.PWD_OLD
FROM
hubez_admin.EZ_ADM_USER T1
LEFT JOIN hubez_imdb.EZ_IM_USER T2 ON T1.OPRTR_ID = T2.LOGIN_ID
@@ -231,6 +232,9 @@
, PWD_CHG_DT = NOW()
+
+ , PWD_OLD = #{pwdOld}
+
WHERE
OPRTR_ID = #{oprtrId}