From 67e6f6d59ae7f4d36c97df52eb0ccbd7add7a2a2 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Wed, 24 Sep 2025 17:33:57 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EA=B4=91=EC=A3=BC=EC=9D=80=ED=96=89=20?= =?UTF-8?q?=EC=A0=84=EC=9A=A9=20password=20encoder=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/WEB-INF/applicationContext.xml | 2 ++ .../spring/KjbSafedbPasswordEncoder.java | 20 +++++++++++++++++++ .../apim/portaluser/PortalUserManService.java | 6 ++++-- 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/eactive/eai/custom/kjb/common/spring/KjbSafedbPasswordEncoder.java diff --git a/WebContent/WEB-INF/applicationContext.xml b/WebContent/WEB-INF/applicationContext.xml index 2c394c4..5e52154 100644 --- a/WebContent/WEB-INF/applicationContext.xml +++ b/WebContent/WEB-INF/applicationContext.xml @@ -54,6 +54,8 @@ + diff --git a/src/main/java/com/eactive/eai/custom/kjb/common/spring/KjbSafedbPasswordEncoder.java b/src/main/java/com/eactive/eai/custom/kjb/common/spring/KjbSafedbPasswordEncoder.java new file mode 100644 index 0000000..7f61416 --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/kjb/common/spring/KjbSafedbPasswordEncoder.java @@ -0,0 +1,20 @@ +package com.eactive.eai.custom.kjb.common.spring; + +import com.eactive.ext.kjb.safedb.SafeDBWrapper; +import org.springframework.security.crypto.password.PasswordEncoder; + + +public class KjbSafedbPasswordEncoder implements PasswordEncoder { + @Override + public String encode(CharSequence rawPassword) { + SafeDBWrapper safedb = SafeDBWrapper.getInstance(); + return safedb.encryptPswd(rawPassword.toString()); + } + + @Override + public boolean matches(CharSequence rawPassword, String encodedPassword) { + SafeDBWrapper safedb = SafeDBWrapper.getInstance(); + String encoded = safedb.encryptPswd(rawPassword.toString()); + return encoded.equals(encodedPassword); + } +} 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 0957556..62a7ede 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 @@ -41,9 +41,11 @@ public class PortalUserManService extends BaseService { private final PortalOrgService portalOrgService; private final FileService fileService; private final PortalOrgManService portalOrgManService; - private final PasswordEncoder passwordEncoder; +// private final PasswordEncoder passwordEncoder; + private final PasswordEncoder kjbSafedbPasswordEncoder; private final PortalUserTermsService portalUserTermsService; + public Page selectList(Pageable pageable, PortalUserUISearch portalUserUISearch) { Page portalUser = portalUserService.findAll(pageable, portalUserUISearch); return portalUser.map(entity -> { @@ -122,7 +124,7 @@ public class PortalUserManService extends BaseService { } PortalUser portalUser = portalUserUIMapper.toEntity(portalUserUI); - portalUser.setPasswordHash(passwordEncoder.encode("!" + portalUserUI.getLoginId())); + portalUser.setPasswordHash(kjbSafedbPasswordEncoder.encode("!" + portalUserUI.getLoginId())); portalUser.setLoginFailureCount(0); portalUser.setAccountLockYn("N"); portalUser.setEmailAddr(portalUserUI.getLoginId()); From 1fc81e5e29fe48c30ca00582f6cd32e7f6ef4cbf Mon Sep 17 00:00:00 2001 From: Rinjae Date: Mon, 29 Sep 2025 16:54:47 +0900 Subject: [PATCH 2/2] =?UTF-8?q?kjb-safedb=20=EB=A1=9C=20PasswordEncoer=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20/=20=EA=B0=80=EC=9E=85=EC=9E=90=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=ED=99=94=EB=A9=B4=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=EB=B2=84=ED=8A=BC=20=ED=95=AD=EC=83=81=20?= =?UTF-8?q?=ED=99=9C=EC=84=B1=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onl/apim/portaluser/portalUserManDetail.jsp | 16 ++++++++++------ build.gradle | 4 ++-- readme.md | 15 ++++++++++----- .../common/spring/KjbSafedbPasswordEncoder.java | 11 ++++++----- 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp b/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp index a764a6c..b970798 100644 --- a/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp +++ b/WebContent/jsp/onl/apim/portaluser/portalUserManDetail.jsp @@ -66,16 +66,18 @@ // 현재 상태가 탈퇴인 경우 if (status === STATUS.REMOVED) { - $("#btn_modify").show().prop('disabled', true); + $("#btn_modify").show().prop('disabled', false); return; } // 일반 상태 - $("#btn_modify").show().prop('disabled', !isUnmasked); + /* $("#btn_modify").show().prop('disabled', !isUnmasked); if (isUnmasked) { $("input, select").prop('disabled', false); updateOrgControl(); - } + } */ + // 25.09.29 - 항상 해제 + $("#btn_modify").show().prop('disabled', false); } function init() { @@ -261,7 +263,7 @@ } const fullLoginId = id + "@" + domain; - const emailPattern = /^[A-Za-z][A-Za-z0-9._-]*@[A-Za-z0-9][-A-Za-z0-9.]+\.[A-Za-z]{2,}$/; + const emailPattern = /^[A-Za-z0-9._-]*@[A-Za-z0-9][-A-Za-z0-9.]+\.[A-Za-z]{2,}$/; if (!emailPattern.test(fullLoginId)) { alert(fullLoginId + " 은 올바른 이메일 형식이 아닙니다."); return; @@ -558,9 +560,11 @@
- + @ - +