From e023d4828cc139655f17922c3edb1246542ef6ed Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 21 Nov 2025 12:06:16 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=ED=8C=A8=EC=8A=A4=EC=9B=8C=EB=93=9C=20?= =?UTF-8?q?=EC=B4=88=EA=B8=B0=ED=99=94=EC=8B=9C=20=EC=9E=A0=EA=B8=88=20?= =?UTF-8?q?=ED=95=B4=EC=A0=9C=20=EB=90=98=EB=8F=84=EB=A1=9D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apps/login/controller/AccountRecoveryController.java | 2 +- .../apim/portal/apps/user/service/PortalUserAuthService.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/eactive/apim/portal/apps/login/controller/AccountRecoveryController.java b/src/main/java/com/eactive/apim/portal/apps/login/controller/AccountRecoveryController.java index 433870d..4d6030e 100644 --- a/src/main/java/com/eactive/apim/portal/apps/login/controller/AccountRecoveryController.java +++ b/src/main/java/com/eactive/apim/portal/apps/login/controller/AccountRecoveryController.java @@ -119,7 +119,7 @@ public class AccountRecoveryController { try { // 사용자 정보 확인 - portalUserAuthService.initializePassword( + portalUserAuthService.resetPassword( passwordReset.getLoginId(), passwordReset.getUserName(), passwordReset.getMobileNumber() diff --git a/src/main/java/com/eactive/apim/portal/apps/user/service/PortalUserAuthService.java b/src/main/java/com/eactive/apim/portal/apps/user/service/PortalUserAuthService.java index 3ec73a5..94fe33a 100644 --- a/src/main/java/com/eactive/apim/portal/apps/user/service/PortalUserAuthService.java +++ b/src/main/java/com/eactive/apim/portal/apps/user/service/PortalUserAuthService.java @@ -94,13 +94,16 @@ public class PortalUserAuthService implements UserDetailsService { return portalUserRepository.findPortalUserByEmailAddr(emailAddr).orElseThrow(() -> new UserNotFoundException("USER_NOT_FOUND_MESSAGE")); } - public void initializePassword(String loginId, String userName, String mobileNumber) { + public void resetPassword(String loginId, String userName, String mobileNumber) { PortalUser portalUser = portalUserRepository.findByLoginIdAndUserNameAndMobileNumber(loginId, userName, mobileNumber) .orElseThrow(() -> new UserNotFoundException("일치하는 사용자 정보를 찾을 수 없습니다.")); String tempPassword = EncryptionUtil.generateNewPasswordForKjbank(loginId); portalUser.setPasswordHash(passwordEncoder.encode(tempPassword)); + if ("Y".equalsIgnoreCase(portalUser.getAccountLockYn())) { + portalUser.setAccountLockYn("N"); + } portalUserRepository.save(portalUser); HashMap params = new HashMap<>(); From 5be804eb3592a8f2e136389a7a72c56c2545352b Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 28 Nov 2025 16:54:08 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=ED=8C=A8=EC=8A=A4=EC=9B=8C=EB=93=9C=20?= =?UTF-8?q?=EC=A0=95=EC=B1=85=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kjb-docs/mermaid/invite-flow-integrated.mermaid | 6 +++--- kjb-docs/mermaid/invite-state.mermaid | 6 +++--- .../portal/apps/user/service/PortalUserAuthService.java | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/kjb-docs/mermaid/invite-flow-integrated.mermaid b/kjb-docs/mermaid/invite-flow-integrated.mermaid index c5d5f1d..3c36d86 100644 --- a/kjb-docs/mermaid/invite-flow-integrated.mermaid +++ b/kjb-docs/mermaid/invite-flow-integrated.mermaid @@ -14,7 +14,7 @@ flowchart TD NewUserPath -->|일반 회원가입| DirectSignup[일반 회원가입 진행
ROLE_USER로 생성] EmailLink1 --> SignupPage1[회원가입 페이지
- 이메일 자동 입력됨
- 법인명 표시] - SignupPage1 --> RegisterForm[가입 정보 입력
약관 동의] + SignupPage1 --> RegisterForm[가입 정보 입력
초대 수락] RegisterForm --> RegisterComplete[회원가입 완료
ROLE_CORP_USER로 생성
상태: COMPLETED] RegisterComplete --> NewUserEnd([가입 완료 안내]) @@ -38,7 +38,7 @@ flowchart TD Login2 --> AfterLogin2[로그인 성공] %% 로그인 상태에서 이메일 링크 클릭 → 바로 수락 페이지 - EmailLinkLoggedIn --> DecisionPageDirect[초대 수락 페이지
/signup/decision_process
약관 동의] + EmailLinkLoggedIn --> DecisionPageDirect[초대 수락 페이지
/signup/decision_process
초대 수락] DecisionPageDirect --> UserDecision %% 직접 로그인 @@ -71,7 +71,7 @@ flowchart TD StayHome --> NextLogin[다음 로그인] NextLogin --> CheckInvitation - GoDecisionPage --> DecisionPage[초대 수락 페이지
/signup/decision_process
약관 동의] + GoDecisionPage --> DecisionPage[초대 수락 페이지
/signup/decision_process
초대 수락] DecisionPage --> UserDecision{사용자 선택} diff --git a/kjb-docs/mermaid/invite-state.mermaid b/kjb-docs/mermaid/invite-state.mermaid index 1699fec..e9a551c 100644 --- a/kjb-docs/mermaid/invite-state.mermaid +++ b/kjb-docs/mermaid/invite-state.mermaid @@ -15,10 +15,10 @@ stateDiagram-v2 팝업취소 --> 로그인: 다음 로그인 시 재표시 } - 팝업확인 --> 약관동의: 수락 페이지 이동 + 팝업확인 --> 초대수락: 수락 페이지 이동 - 약관동의 --> COMPLETED: 수락 - 약관동의 --> REJECTED: 거절 + 초대수락 --> COMPLETED: 수락 + 초대수락 --> REJECTED: 거절 COMPLETED --> [*]: 초대 완료 REJECTED --> [*]: 초대 거절 diff --git a/src/main/java/com/eactive/apim/portal/apps/user/service/PortalUserAuthService.java b/src/main/java/com/eactive/apim/portal/apps/user/service/PortalUserAuthService.java index 94fe33a..1c84d81 100644 --- a/src/main/java/com/eactive/apim/portal/apps/user/service/PortalUserAuthService.java +++ b/src/main/java/com/eactive/apim/portal/apps/user/service/PortalUserAuthService.java @@ -99,7 +99,8 @@ public class PortalUserAuthService implements UserDetailsService { PortalUser portalUser = portalUserRepository.findByLoginIdAndUserNameAndMobileNumber(loginId, userName, mobileNumber) .orElseThrow(() -> new UserNotFoundException("일치하는 사용자 정보를 찾을 수 없습니다.")); - String tempPassword = EncryptionUtil.generateNewPasswordForKjbank(loginId); +// String tempPassword = EncryptionUtil.generateNewPasswordForKjbank(loginId); + String tempPassword = EncryptionUtil.generateNewPassword(); portalUser.setPasswordHash(passwordEncoder.encode(tempPassword)); if ("Y".equalsIgnoreCase(portalUser.getAccountLockYn())) { portalUser.setAccountLockYn("N"); From c700f5e6cb4b2d2ae9373686dc84b74754583e40 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 28 Nov 2025 18:03:19 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EB=B2=95=EC=9D=B8=20=ED=9A=8C=EC=9B=90=20?= =?UTF-8?q?=EA=B0=80=EC=9E=85=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java b/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java index b23c960..cd54643 100644 --- a/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java +++ b/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java @@ -76,7 +76,7 @@ public class OrgRegisterFacadeImpl implements OrgRegisterFacade { // 2025.10.20 - 휴대폰 번호 중복 무시 // PortalUser existingUser = portalUserRepository.findByUserNameAndMobileNumber(orgDTO.getUserName(), orgDTO.getMobileNumber()); - Optional existingUser = portalUserRepository.findByUserName(orgDTO.getUserName()); + Optional existingUser = portalUserRepository.findByUserName(orgDTO.getLoginId()); if(existingUser.isPresent()) { return new ValidationResponse(false, "가입된 계정이 이미 존재합니다."); From 24959c1a2494f0e01739c731af9f5157b6038096 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 28 Nov 2025 18:04:41 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EB=B2=95=EC=9D=B8=20=ED=9A=8C=EC=9B=90=20?= =?UTF-8?q?=EA=B0=80=EC=9E=85=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java b/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java index cd54643..098498e 100644 --- a/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java +++ b/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java @@ -76,7 +76,7 @@ public class OrgRegisterFacadeImpl implements OrgRegisterFacade { // 2025.10.20 - 휴대폰 번호 중복 무시 // PortalUser existingUser = portalUserRepository.findByUserNameAndMobileNumber(orgDTO.getUserName(), orgDTO.getMobileNumber()); - Optional existingUser = portalUserRepository.findByUserName(orgDTO.getLoginId()); + Optional existingUser = portalUserRepository.findByLoginId(orgDTO.getLoginId()); if(existingUser.isPresent()) { return new ValidationResponse(false, "가입된 계정이 이미 존재합니다."); From 440c4c3a4138dc5bfe0649ee450f5938c795ccbf Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 28 Nov 2025 18:29:54 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EB=B2=95=EC=9D=B8=20=ED=9A=8C=EC=9B=90=20?= =?UTF-8?q?=EA=B0=80=EC=9E=85=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java b/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java index 098498e..33830db 100644 --- a/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java +++ b/src/main/java/com/eactive/apim/portal/apps/user/facade/OrgRegisterFacadeImpl.java @@ -190,7 +190,8 @@ public class OrgRegisterFacadeImpl implements OrgRegisterFacade { agreementsFacade.saveUserAgreements(newUser.getId(), AgreementType.PRIVACY_COLLECT_ORG); approvalService.createUserApproval(newUser); - sendActivationEmail(newUser); + // 11.28 - 회원 가입단계가 아닌 로그인 단계로 이메일 인증 이동 +// sendActivationEmail(newUser); return new ValidationResponse(true, "법인 사용자 등록 신청이 완료되었습니다."); }