From 8f4162569dea3912cfb3a512da27f0595005a138 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Mon, 27 Jul 2026 15:05:51 +0900 Subject: [PATCH] =?UTF-8?q?-=20=EC=B4=88=EA=B8=B0=20=ED=8C=A8=EC=8A=A4?= =?UTF-8?q?=EC=9B=8C=EB=93=9C=20=EC=A0=91=EB=AF=B8=EC=82=AC=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80=20=EB=B0=8F?= =?UTF-8?q?=20=EA=B4=80=EB=A0=A8=20JSP=20=EC=88=98=EC=A0=95=20-=20API=20?= =?UTF-8?q?=ED=97=88=EC=9A=A9=20IP=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EB=B3=80=EC=88=98=EB=AA=85=20=EB=B3=80=EA=B2=BD(dapiAllowIpLis?= =?UTF-8?q?t=20=E2=86=92=20apiAllowIpList)=20-=20=EC=B4=88=EA=B8=B0=20?= =?UTF-8?q?=ED=8C=A8=EC=8A=A4=EC=9B=8C=EB=93=9C=20=EA=B0=95=EC=A0=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EC=9C=A0=EB=8F=84=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80(=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=EC=9D=BC=20=EC=B4=88=EA=B8=B0=ED=99=94)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onl/apim/portaluser/portalUserManDetail.jsp | 2 +- .../eai/rms/ext/djb/common/DjbProperty.java | 2 +- .../apim/portaluser/PortalUserManController.java | 3 ++- .../onl/apim/portaluser/PortalUserManService.java | 15 +++++++++++++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp b/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp index 62027e4..f2db533 100644 --- a/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp +++ b/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp @@ -567,7 +567,7 @@ }); $("#btn_password_reset").click(function () { - if (!confirm("패스워드를 초기화 하시겠습니까?\n초기 패스워드는 '!' + 이메일ID 입니다.")) return; + if (!confirm("패스워드를 초기화 하시겠습니까?\n초기 패스워드는 '이메일ID${passwordInitSubfix}' 입니다.")) return; $.ajax({ type: "POST", diff --git a/src/main/java/com/eactive/eai/rms/ext/djb/common/DjbProperty.java b/src/main/java/com/eactive/eai/rms/ext/djb/common/DjbProperty.java index 55575db..e7c4ac6 100644 --- a/src/main/java/com/eactive/eai/rms/ext/djb/common/DjbProperty.java +++ b/src/main/java/com/eactive/eai/rms/ext/djb/common/DjbProperty.java @@ -41,7 +41,7 @@ public class DjbProperty { description = "API 접근 허용 IP 목록 (콤마(,)로 구분된 IP들, 예: 192.168.0.1, 192.168.1.*,127.*.*.*", defaultValue = "10.15.106.*, 10.14.8.*, 10.15.8.*, 192.168.240.*, 127.0.0.1, 192.168.132.*, 192.168.131.*" ) - private String dapiAllowIpList = "10.15.106.*, 10.14.8.*, 10.15.8.*, 192.168.240.*, 127.0.0.1, 192.168.132.*, 192.168.131.*"; + private String apiAllowIpList = "10.15.106.*, 10.14.8.*, 10.15.8.*, 192.168.240.*, 127.0.0.1, 192.168.132.*, 192.168.131.*"; diff --git a/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManController.java b/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManController.java index 0388ba1..d1812b9 100644 --- a/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManController.java +++ b/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManController.java @@ -38,7 +38,8 @@ public class PortalUserManController extends BaseAnnotationController { } @GetMapping(value = "/onl/apim/portaluser/portalUserMan.view", params = "cmd=DETAIL") - public String detailNewView() { + public String detailNewView(Model model) { + model.addAttribute("passwordInitSubfix", portalUserManService.getPasswordInitSubfix()); return "/onl/apim/portaluser/portalUserManDetail"; } diff --git a/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManService.java b/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManService.java index 4a749f6..bb71dbf 100644 --- a/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManService.java +++ b/src/main/java/com/eactive/eai/rms/onl/apim/portaluser/PortalUserManService.java @@ -10,6 +10,7 @@ import com.eactive.apim.portal.portaluser.entity.PortalUserEnums; import com.eactive.apim.portal.portaluser.entity.PortalUserPrivacyAgreement; import com.eactive.eai.common.util.SystemUtil; import com.eactive.eai.rms.common.base.BaseService; +import com.eactive.eai.rms.common.context.MonitoringContext; import com.eactive.eai.rms.common.spring.LocaleMessage; import com.eactive.eai.rms.data.entity.onl.apim.approval.ApprovalService; import com.eactive.eai.rms.data.entity.onl.apim.portalinquiry.PortalInquiryService; @@ -61,6 +62,7 @@ public class PortalUserManService extends BaseService { private final ApprovalService approvalService; private final PortalInquiryService portalInquiryService; private final PortalPropertyService portalPropertyService; + private final MonitoringContext monitoringContext; /** 가입자 목록 '선택 삭제'(완전삭제) 버튼 노출 여부 */ public boolean isHardDeleteEnabled() { @@ -270,11 +272,20 @@ public class PortalUserManService extends BaseService { portalUserService.deleteById(id); } + /** 초기 패스워드 접미사(loginId + subfix). 초기화 안내 문구 노출에도 사용. */ + public String getPasswordInitSubfix() { + return monitoringContext.getStringProperty(MonitoringContext.RMS_PASSWORD_INIT_SUBFIX, "@!"); + } + public void passwordReset(String id) { PortalUser portalUser = portalUserService.getById(id); - // 패스워드를 초기 패스워드("!" + loginId)로 초기화 - portalUser.setPasswordHash(kjbSafedbPasswordEncoder.encode("!" + portalUser.getLoginId())); + // 패스워드를 초기 패스워드(loginId + subfix)로 초기화 + String subfix = getPasswordInitSubfix(); + portalUser.setPasswordHash(kjbSafedbPasswordEncoder.encode(portalUser.getLoginId() + subfix)); + + // 비밀번호 변경일 초기화 (초기 비밀번호 강제 변경 유도) + portalUser.setPasswordChangeDate(null); // 로그인 실패 횟수 초기화 portalUser.setLoginFailureCount(0);