From c521835633d0d1bee6b0a2478dc5d3504f065993 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Mon, 22 Jun 2026 19:21:08 +0900 Subject: [PATCH] =?UTF-8?q?-=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=20=EC=8B=9C=20=EC=95=94=ED=98=B8=ED=99=94=20=ED=95=84?= =?UTF-8?q?=EB=93=9C=20=EC=B2=98=EB=A6=AC=20=EB=A1=9C=EC=A7=81=20=EA=B0=9C?= =?UTF-8?q?=EC=84=A0:=20=EB=B6=80=EB=B6=84=EA=B2=80=EC=83=89=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20=EB=B0=8F=20=EC=A0=95=ED=99=95=EC=9D=BC=EC=B9=98=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=20=EC=B6=94=EA=B0=80.=20-=20UI=EC=97=90=20?= =?UTF-8?q?=EC=95=94=ED=98=B8=ED=99=94=20=ED=95=84=EB=93=9C=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=20=EC=A0=9C=ED=95=9C=20=EC=95=88=EB=82=B4=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80.=20-=20=EA=B0=9C=EC=9D=B8=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EB=A7=88=EC=8A=A4=ED=82=B9=20=EA=B7=9C=EC=B9=99=20=ED=99=95?= =?UTF-8?q?=EB=8C=80:=20=EC=9D=B4=EB=A6=84/ID/=EC=A0=84=ED=99=94=EB=B2=88?= =?UTF-8?q?=ED=98=B8=20=EB=AA=A8=EB=91=90=20=EC=A0=81=EC=9A=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsp/onl/apim/portaluser/portalUserMan.jsp | 5 ++-- .../apim/portaluser/PortalUserService.java | 21 +++++++++++++-- .../apim/portaluser/PortalUserManService.java | 26 +++++++++++++------ 3 files changed, 40 insertions(+), 12 deletions(-) diff --git a/WebContent/jsp/onl/apim/portaluser/portalUserMan.jsp b/WebContent/jsp/onl/apim/portaluser/portalUserMan.jsp index ad1005e..6d828a3 100644 --- a/WebContent/jsp/onl/apim/portaluser/portalUserMan.jsp +++ b/WebContent/jsp/onl/apim/portaluser/portalUserMan.jsp @@ -398,15 +398,16 @@ - <%= localeMessage.getString("portalUser.userId") %> + <%= localeMessage.getString("portalUser.userId") %>(*) - <%= localeMessage.getString("portalUser.mobileNumber") %> + <%= localeMessage.getString("portalUser.mobileNumber") %>(*) +
(*) 암호화 항목 · 부분검색 불가(전체 일치)
diff --git a/src/main/java/com/eactive/eai/rms/data/entity/onl/apim/portaluser/PortalUserService.java b/src/main/java/com/eactive/eai/rms/data/entity/onl/apim/portaluser/PortalUserService.java index 1566095..64ebf1d 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/onl/apim/portaluser/PortalUserService.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/onl/apim/portaluser/PortalUserService.java @@ -38,7 +38,22 @@ public class PortalUserService extends AbstractEMSDataSerivce= 0) { + String plusRestored = searchUserId.replace(' ', '+'); + loginIdPredicate.or(qPortalUser.loginId.eq(plusRestored)) + .or(qPortalUser.emailAddr.eq(plusRestored)); + } + predicate.and(loginIdPredicate); } if (StringUtils.isNotBlank(portalUserUISearch.getSearchUserName())) { @@ -49,7 +64,9 @@ public class PortalUserService extends AbstractEMSDataSerivce { PortalUserUI ui = convertToUIWithMaskOption(entity, false); - // 목록의 휴대폰번호는 항상 마스킹 (중복 조회 모드에서만 컬럼이 노출되며 개인정보 보호) - if (ui != null && StringUtils.isNotBlank(ui.getMobileNumber())) { - ui.setMobileNumber(MaskingUtils.maskPhoneNumber(ui.getMobileNumber())); + // 목록의 개인정보(사용자명/이메일아이디/휴대폰번호)는 항상 마스킹하여 노출 (상세 조회에서만 마스킹 해제) + if (ui != null) { + if (StringUtils.isNotBlank(ui.getUserName())) { + ui.setUserName(MaskingUtils.maskName(ui.getUserName())); + } + if (StringUtils.isNotBlank(ui.getLoginId())) { + ui.setLoginId(MaskingUtils.maskEmailId(ui.getLoginId())); + } + if (StringUtils.isNotBlank(ui.getMobileNumber())) { + ui.setMobileNumber(MaskingUtils.maskPhoneNumber(ui.getMobileNumber())); + } } if (entity.getPortalOrg() != null) { @@ -80,7 +88,7 @@ public class PortalUserManService extends BaseService { /** * 사용자 별 휴대폰 번호 중복 허용 프로퍼티(Portal/user.mobile.duplicate.allow)를 확인한다. - * 프로퍼티가 없으면 기본값 'N'(허용안함)으로 생성하며, '허용안함'일 때 중복 휴대폰번호 사용자 수를 함께 반환한다. + * 프로퍼티가 없으면 기본값 'false'(허용안함)으로 생성하며, '허용안함'일 때 중복 휴대폰번호 사용자 수를 함께 반환한다. * * @return enabled(boolean): 중복 조회 기능 활성 여부, count(long): 중복 휴대폰번호 사용자 수 */ @@ -88,10 +96,12 @@ public class PortalUserManService extends BaseService { String allowValue = portalPropertyService.getOrCreateProperty( PORTAL_PROPERTY_GROUP, PROP_MOBILE_DUPLICATE_ALLOW, - "N", - "사용자 별 휴대폰 번호 중복 허용 여부 (Y:허용, N:허용안함). 허용안함일 때 사용자 관리 목록에 중복 휴대폰번호 사용자 조회 기능을 노출"); + "false", + "사용자 별 휴대폰 번호 중복 허용 여부 (true:허용, false:허용안함). 허용안함일 때 사용자 관리 목록에 중복 휴대폰번호 사용자 조회 기능을 노출"); - boolean checkEnabled = "N".equalsIgnoreCase(allowValue); + // 레거시 Y/N 값도 허용으로 함께 인식 (true/Y → 허용, 그 외 → 허용안함) + boolean allowed = "true".equalsIgnoreCase(allowValue) || "Y".equalsIgnoreCase(allowValue); + boolean checkEnabled = !allowed; long duplicateUserCount = checkEnabled ? portalUserService.countDuplicateMobileUsers() : 0L; Map info = new HashMap<>();