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 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}