Browse Source

feature: User모듈 - 암호변경 추가

pull/8/head
lkd9125(이경도) 7 months ago
parent
commit
1a780a1c6a
  1. 2
      common/config-db/src/main/resources/application-db.yml
  2. 5
      data/pty/src/main/java/kr/co/palnet/kac/data/pty/service/PtyCstmrDomainService.java
  3. 16
      web/api-user/src/main/java/kr/co/palnet/kac/api/v1/user/account/controller/UserAccountController.java
  4. 18
      web/api-user/src/main/java/kr/co/palnet/kac/api/v1/user/account/model/update/UpdatePasswordRQ.java
  5. 42
      web/api-user/src/main/java/kr/co/palnet/kac/api/v1/user/account/service/UserAccountService.java

2
common/config-db/src/main/resources/application-db.yml

@ -1,7 +1,7 @@
spring:
jpa:
hibernate:
ddl-auto: none`
ddl-auto: none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
datasource:

5
data/pty/src/main/java/kr/co/palnet/kac/data/pty/service/PtyCstmrDomainService.java

@ -31,11 +31,6 @@ public class PtyCstmrDomainService {
public PtyCstmrBas savePtyCstmrBas(PtyCstmrBas entity) {
return ptyCstmrBasRepository.save(entity);
}
public Optional<PtyCstmrDtl> findPtyCstmrDtlById(Long cstmrSno){
return ptyCstmrDtlRepository.findById(cstmrSno);
}
public PtyCstmrDtl savePtyCstmrDtl(PtyCstmrDtl entity){
return ptyCstmrDtlRepository.save(entity);
}

16
web/api-user/src/main/java/kr/co/palnet/kac/api/v1/user/account/controller/UserAccountController.java

@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import kr.co.palnet.kac.api.v1.user.account.model.detail.SearchUserRS;
import kr.co.palnet.kac.api.v1.user.account.model.register.FormRegisterRQ;
import kr.co.palnet.kac.api.v1.user.account.model.update.UpdatePasswordRQ;
import kr.co.palnet.kac.api.v1.user.account.service.UserAccountService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -40,11 +41,20 @@ public class UserAccountController {
@GetMapping("/profile")
@Operation(summary = "회원정보 조회", description = "회원 정보를 조회합니다.")
public ResponseEntity<SearchUserRS> profile(){
public ResponseEntity<SearchUserRS> getUserInfo(){
SearchUserRS result = userAccountService.profile();
SearchUserRS result = userAccountService.getUserInfo();
return ResponseEntity.status(HttpStatus.OK).body(result);
return ResponseEntity.ok().body(result);
}
@PutMapping("/update/pswd")
@Operation(summary = "회원암호 변경", description = "회원 암호를 변경합니다.")
public ResponseEntity<Object> updatePassword(@RequestBody UpdatePasswordRQ rq){
userAccountService.updatePassword(rq);
return ResponseEntity.ok().build();
}

18
web/api-user/src/main/java/kr/co/palnet/kac/api/v1/user/account/model/update/UpdatePasswordRQ.java

@ -0,0 +1,18 @@
package kr.co.palnet.kac.api.v1.user.account.model.update;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class UpdatePasswordRQ {
@Schema(description = "유저의 기존 비밀번호", example = "palnet!234")
private String userPswd;
@Schema(description = "유저의 새로운 비밀번호", example = "palnet1234")
private String newPswd;
@Schema(description = "유저의 새로운 비밀번호(확인)", example = "palnet1234")
private String newPswdConfirm;
}

42
web/api-user/src/main/java/kr/co/palnet/kac/api/v1/user/account/service/UserAccountService.java

@ -5,6 +5,7 @@ import kr.co.palnet.kac.api.v1.user.account.model.PtyCstmrDtlDTO;
import kr.co.palnet.kac.api.v1.user.account.model.detail.SearchUserRS;
import kr.co.palnet.kac.api.v1.user.account.model.register.FormRegisterRQ;
import kr.co.palnet.kac.api.v1.user.account.model.register.AgreeTermsModel;
import kr.co.palnet.kac.api.v1.user.account.model.update.UpdatePasswordRQ;
import kr.co.palnet.kac.config.security.util.SessionHelper;
import kr.co.palnet.kac.core.exception.BaseErrorCode;
import kr.co.palnet.kac.core.exception.BaseException;
@ -44,11 +45,8 @@ public class UserAccountService {
PtyCstmrBas registeredUser = ptyCstmrDomainService.getCstmrInfoByUserId(rq.getUserId());
if(registeredUser != null) throw new BaseException(BaseErrorCode.DATA_ALREADY_EXISTS);
rq.setHpno(rq.getHpno().replaceAll("-", ""));
//처리 1. 민감정보 암호화 처리(비밀번호 , 이름 , 휴대폰번호 , 이메일)
rq.setUserPswd(passwordEncoder.encode(rq.getUserPswd()));
rq.setHpno(EncryptUtil.encrypt(rq.getHpno()));
@ -164,7 +162,7 @@ public class UserAccountService {
}
}
public SearchUserRS profile() {
public SearchUserRS getUserInfo() {
Long cstmrSno = SessionHelper.getCstmrSno();
@ -180,8 +178,8 @@ public class UserAccountService {
result.setUserId(userEntity.getUserId());
result.setBrthdyDate(userDetailEntity.getBrthdyDate());
result.setCntryCd(userDetailEntity.getCntryCd());
result.setEmail(userDetailEntity.getEmail());
result.setHpno(userDetailEntity.getHpno());
result.setEmail(EncryptUtil.decrypt(userDetailEntity.getEmail()));
result.setHpno(EncryptUtil.decrypt(userDetailEntity.getHpno()));
result.setUpdateDt(userDetailEntity.getUpdateDt());
result.setUpdateuserId(userDetailEntity.getUpdateUserId());
result.setCptAuthCode(userEntity.getCptAuthCode());
@ -191,4 +189,36 @@ public class UserAccountService {
throw new BaseException(BaseErrorCode.DATA_EMPTY);
}
}
@Transactional
public void updatePassword(UpdatePasswordRQ rq) {
// 1. 토큰 유저 정보 불러오기
Long cstmrSno = SessionHelper.getCstmrSno();
// 2. DB의 유저정보 조회
Optional<PtyCstmrBas> userEntityData = ptyCstmrDomainService.findPtyCstmrBasById(cstmrSno);
if(userEntityData.isEmpty()) throw new BaseException(BaseErrorCode.DATA_EMPTY);
// 5. 새로운 비밀번호 검증
if(!rq.getNewPswd().equals(rq.getNewPswdConfirm())) {
// 5.e 새로운 비밀번호 일치하지 않으면 예외처리
throw new BaseException(BaseErrorCode.FAILED); //임시...수정필요
}
// 6. 새로운 패스워드 암호화
String encryptNewPwd = passwordEncoder.encode(rq.getNewPswd());
PtyCstmrBas userEntity = userEntityData.get();
// 7. 유저 정보 저장
userEntity.setUserPswd(encryptNewPwd);
userEntity.setPswdUpdtDt(LocalDateTime.now());
ptyCstmrDomainService.savePtyCstmrBas(userEntity);
}
}

Loading…
Cancel
Save