diff --git a/WebContent/jsp/onl/apim/messagerequest/messageRequestMan.jsp b/WebContent/jsp/onl/apim/messagerequest/messageRequestMan.jsp
index 73516a7..3f8d066 100644
--- a/WebContent/jsp/onl/apim/messagerequest/messageRequestMan.jsp
+++ b/WebContent/jsp/onl/apim/messagerequest/messageRequestMan.jsp
@@ -192,6 +192,8 @@
+
+
diff --git a/WebContent/jsp/onl/apim/portalinquiry/portalInquiryMan.jsp b/WebContent/jsp/onl/apim/portalinquiry/portalInquiryMan.jsp
index d2c25ca..520cb0c 100644
--- a/WebContent/jsp/onl/apim/portalinquiry/portalInquiryMan.jsp
+++ b/WebContent/jsp/onl/apim/portalinquiry/portalInquiryMan.jsp
@@ -208,6 +208,7 @@
+
diff --git a/libs/damo-manager.jar b/libs/damo-manager.jar
deleted file mode 100644
index e80c2ad..0000000
Binary files a/libs/damo-manager.jar and /dev/null differ
diff --git a/src/main/java/com/eactive/eai/rms/common/acl/user/UserManService.java b/src/main/java/com/eactive/eai/rms/common/acl/user/UserManService.java
index 86c6d6f..dec6171 100644
--- a/src/main/java/com/eactive/eai/rms/common/acl/user/UserManService.java
+++ b/src/main/java/com/eactive/eai/rms/common/acl/user/UserManService.java
@@ -33,6 +33,7 @@ import com.eactive.eai.rms.data.entity.man.role.Role;
import com.eactive.eai.rms.data.entity.man.role.RoleService;
import com.eactive.eai.rms.data.entity.onl.bzwkdstcd.UserBusinessService;
import com.eactive.eai.rms.onl.common.exception.BizException;
+import com.eactive.ext.djb.DamoManager;
import lombok.RequiredArgsConstructor;
@@ -99,7 +100,7 @@ public class UserManService extends BaseService {
userInfo.setRoleidnfiname(CommonConstants.DEPT_DEVELOPER);
try {
- userInfo.setPassword(Seed.encrypt(userUI.getUserId()));
+ userInfo.setPassword(DamoManager.getInstance().hash(DamoManager.SHA256,userUI.getUserId()));
} catch (Exception e) {
throw new RuntimeException("Error encrypting password", e);
}
@@ -140,7 +141,7 @@ public class UserManService extends BaseService {
public void updatePassword(UserUI userUI) throws Exception {
UserInfo userInfo = userInfoService.getById(userUI.getUserId());
- userInfo.setPassword(Seed.encrypt(userUI.getUserId()));
+ userInfo.setPassword(DamoManager.getInstance().hash(DamoManager.SHA256, userUI.getUserId()));
userUIMapper.updateToEntity(userUI, userInfo);
userInfoService.save(userInfo);
}
diff --git a/src/main/java/com/eactive/eai/rms/common/acl/user/UserSyncService.java b/src/main/java/com/eactive/eai/rms/common/acl/user/UserSyncService.java
index a262bc5..e1db87a 100644
--- a/src/main/java/com/eactive/eai/rms/common/acl/user/UserSyncService.java
+++ b/src/main/java/com/eactive/eai/rms/common/acl/user/UserSyncService.java
@@ -21,6 +21,7 @@ import com.eactive.eai.rms.data.entity.man.user.UserServiceType;
import com.eactive.eai.rms.data.entity.man.user.UserServiceTypeId;
import com.eactive.eai.rms.data.entity.man.user.UserServiceTypeService;
import com.eactive.eai.rms.data.entity.onl.bzwkdstcd.UserBusinessService;
+import com.eactive.ext.djb.DamoManager;
@Service
@Transactional
@@ -124,7 +125,7 @@ public class UserSyncService extends BaseService {
UserInfo userInfo = new UserInfo();
userInfo.setUserid(userId);
userInfo.setUsername(userInfoMap.get("EMPY_NM").toString());
- userInfo.setPassword(Seed.encrypt(userId));
+ userInfo.setPassword(DamoManager.getInstance().hash(DamoManager.SHA256,userId));
userInfo.setRoleidnfiname(CommonConstants.DEPT_DEVELOPER);
userInfoService.save(userInfo);
diff --git a/src/main/java/com/eactive/eai/rms/common/login/MainController.java b/src/main/java/com/eactive/eai/rms/common/login/MainController.java
index d36fb90..af3239e 100644
--- a/src/main/java/com/eactive/eai/rms/common/login/MainController.java
+++ b/src/main/java/com/eactive/eai/rms/common/login/MainController.java
@@ -33,6 +33,7 @@ import org.springframework.web.servlet.View;
import com.eactive.eai.common.seed.Seed;
import com.eactive.eai.rms.ext.kjb.smsauth.SmsAuthService;
+import com.eactive.ext.djb.DamoManager;
import com.eactive.eai.data.converter.LocalDateTimeFormatters;
import com.eactive.eai.rms.common.context.MonitoringContext;
import com.eactive.eai.rms.common.datasource.DataSourceType;
@@ -363,7 +364,7 @@ public class MainController implements InterceptorSkipController {
String loginMode = System.getProperty("login.mode");
if("db".equals(loginMode) || "DB".equals(loginMode)) {
/* 기존로직 - LDAP 사용 x */
- if (!userInfo.getPassword().equals(Seed.encrypt(dto.getPassword()))) {
+ if (!userInfo.getPassword().equals(DamoManager.getInstance().hash(DamoManager.SHA256, dto.getPassword()))) {
// password 다름.
setLoginFailure(request, session, "login.loginfail1",
"login.loginfail2");
@@ -799,9 +800,9 @@ public class MainController implements InterceptorSkipController {
.getString("login.pwdmismatch4"));
return REDIRECT_CHANGE_PASSWORD_URL;
}
-
+
// 3. 비밀번호 체크
- if (!userInfo.getPassword().equals(Seed.encrypt(resetPassword))
+ if (!userInfo.getPassword().equals(DamoManager.getInstance().hash(DamoManager.SHA256,resetPassword))
|| !userInfo.getUserid().equals(resetUserId)) {
UserAccessLogger.log(request, LOG_CATEGORY_LOGIN, "F",
localeMessage
@@ -812,7 +813,7 @@ public class MainController implements InterceptorSkipController {
}
// 4. 비밀번호 변경
- userInfo.setPassword(Seed.encrypt(changePassword));
+ userInfo.setPassword(DamoManager.getInstance().hash(DamoManager.SHA256,changePassword));
userInfoService.save(userInfo);
UserAccessLogger.log(request, LOG_CATEGORY_LOGIN, "S", localeMessage
diff --git a/src/main/java/com/eactive/eai/rms/common/scheduler/EMSSchedulerImpl.java b/src/main/java/com/eactive/eai/rms/common/scheduler/EMSSchedulerImpl.java
index d60458d..2474c2d 100644
--- a/src/main/java/com/eactive/eai/rms/common/scheduler/EMSSchedulerImpl.java
+++ b/src/main/java/com/eactive/eai/rms/common/scheduler/EMSSchedulerImpl.java
@@ -141,6 +141,16 @@ public class EMSSchedulerImpl implements EMSScheduler {
JobDetail existingJob = clusteredScheduler.getJobDetail(jobKey);
if (existing != null && existingJob != null) {
+ // JobDetail(JobData 포함) 갱신
+ @SuppressWarnings("unchecked")
+ Class jobClass = (Class) Class.forName(jobInfo.getJobClassName());
+ JobBuilder jobBuilder = newJob(jobClass).withIdentity(jobKey);
+ for (JobData jobData : jobInfo.getJobDatas()) {
+ jobBuilder.usingJobData(jobData.getId().getDataKey(), jobData.getDataValue());
+ }
+ clusteredScheduler.addJob(jobBuilder.build(), true);
+
+ // 트리거(cron) 갱신
CronTrigger newTrigger = newTrigger()
.withIdentity(triggerKey)
.withSchedule(cronSchedule(jobInfo.getCronExp()))
diff --git a/src/main/java/com/eactive/eai/rms/ext/djb/job/PortalInquiryClosingJob.java b/src/main/java/com/eactive/eai/rms/ext/djb/job/PortalInquiryClosingJob.java
index afc8c69..34e2997 100644
--- a/src/main/java/com/eactive/eai/rms/ext/djb/job/PortalInquiryClosingJob.java
+++ b/src/main/java/com/eactive/eai/rms/ext/djb/job/PortalInquiryClosingJob.java
@@ -11,9 +11,10 @@ import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
+import org.quartz.SchedulerException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
import java.util.Arrays;
import java.util.Set;
@@ -45,9 +46,6 @@ public class PortalInquiryClosingJob implements Job {
private static final int DEFAULT_CLOSING_DAYS = 7;
- @Autowired
- private PortalInquiryClosingService inquiryCommentClosingService;
-
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
@@ -67,6 +65,15 @@ public class PortalInquiryClosingJob implements Job {
log.info("*** START PortalInquiryCommentClosingService run({})", CommonUtil.getToday("yyyy-MM-dd HH:mm"));
+ PortalInquiryClosingService service;
+ try {
+ ApplicationContext appContext = (ApplicationContext) context.getScheduler().getContext().get("applicationContext");
+ service = appContext.getBean(PortalInquiryClosingService.class);
+ } catch (SchedulerException e) {
+ log.error("applicationContext 조회 실패", e);
+ throw new JobExecutionException(e);
+ }
+
int closingDays = DEFAULT_CLOSING_DAYS;
String closingDayParam = context.getMergedJobDataMap().getString(KEY_INQUIRY_COMMENT_CLOSING_DAY);
if (closingDayParam != null) {
@@ -80,7 +87,7 @@ public class PortalInquiryClosingJob implements Job {
DataSourceContextHolder.setDataSourceType(
DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.APIGW));
try {
- int closedCount = inquiryCommentClosingService.closeExpiredInquiries(closingDays);
+ int closedCount = service.closeExpiredInquiries(closingDays);
log.info("PortalInquiryCommentClosingService 완료: {}건 CLOSED 처리", closedCount);
} catch (Exception e) {
log.error("PortalInquiryCommentClosingService execution failed", e);
diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/comm/unifbwk/UnifbwkManService.java b/src/main/java/com/eactive/eai/rms/onl/manage/comm/unifbwk/UnifbwkManService.java
index 4ca7c00..67defe0 100644
--- a/src/main/java/com/eactive/eai/rms/onl/manage/comm/unifbwk/UnifbwkManService.java
+++ b/src/main/java/com/eactive/eai/rms/onl/manage/comm/unifbwk/UnifbwkManService.java
@@ -15,6 +15,7 @@ import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import com.eactive.apim.portal.jpa.PersonalDataEncryptConverter;
import com.eactive.apim.portal.user.entity.UserInfo;
import com.eactive.eai.data.converter.LocalDateTimeFormatters;
import com.eactive.eai.data.entity.onl.unifbwk.UnifBwkTp;
@@ -33,6 +34,7 @@ public class UnifbwkManService extends BaseService {
private final BizManService bizManService;
private final UserInfoService userInfoService;
private final UserDao userDao;
+ private final PersonalDataEncryptConverter encryptConverter = new PersonalDataEncryptConverter();
@Autowired
public UnifbwkManService(UnifBwkTpService unifBwkTpService,
@@ -54,7 +56,8 @@ public class UnifbwkManService extends BaseService {
private UnifbwkUI getUserOrgInfo(UnifBwkTp unifBwkTp) {
UnifbwkUI unifbwkUI = unifbwkUIMapper.toVo(unifBwkTp);
- String rspblpsncntpctnt = unifBwkTp.getRspblpsncntpctnt();
+ String rspblpsncntpctnt = encryptConverter.convertToEntityAttribute(unifBwkTp.getRspblpsncntpctnt());
+ unifbwkUI.setRsPblpsncntpcTnt(rspblpsncntpctnt);
Optional userInfo = Optional.empty();
if (StringUtils.isNotBlank(rspblpsncntpctnt)) {
@@ -75,10 +78,13 @@ public class UnifbwkManService extends BaseService {
UnifBwkTp unifBwkTp = unifBwkTpService.getById(eaiBzwkDstcd);
UnifbwkUI unifbwkUI = unifbwkUIMapper.toVo(unifBwkTp);
+ String rspblpsncntpctnt = encryptConverter.convertToEntityAttribute(unifBwkTp.getRspblpsncntpctnt());
+ unifbwkUI.setRsPblpsncntpcTnt(rspblpsncntpctnt);
+
Optional optionalUserInfo = Optional.empty();
- if (StringUtils.isNotBlank(unifBwkTp.getRspblpsncntpctnt())) {
- optionalUserInfo = userInfoService.findByOfctelno(unifBwkTp.getRspblpsncntpctnt());
+ if (StringUtils.isNotBlank(rspblpsncntpctnt)) {
+ optionalUserInfo = userInfoService.findByOfctelno(rspblpsncntpctnt);
}
if (optionalUserInfo.isPresent()) {
UserInfo userInfo = optionalUserInfo.get();
@@ -90,8 +96,9 @@ public class UnifbwkManService extends BaseService {
public void insert(UnifbwkUI unifbwkUI) {
UnifBwkTp unifBwkTp = unifbwkUIMapper.toEntity(unifbwkUI);
+ unifBwkTp.setRspblpsncntpctnt(encryptConverter.convertToDatabaseColumn(unifBwkTp.getRspblpsncntpctnt()));
unifBwkTpService.save(unifBwkTp);
-
+
bizManService.transactionAdminBiz(unifbwkUI.getEaiBzwkDstcd());
}
@@ -113,6 +120,7 @@ public class UnifbwkManService extends BaseService {
unifbwkUI.setTrackAsisKey2Name(trackAsisKey2Name);
unifbwkUIMapper.updateToEntity(unifbwkUI, unifBwkTp);
+ unifBwkTp.setRspblpsncntpctnt(encryptConverter.convertToDatabaseColumn(rspblPsnCntpCtnt));
unifBwkTpService.save(unifBwkTp);
}
@@ -132,7 +140,7 @@ public class UnifbwkManService extends BaseService {
map.put("TRACKASISKEY1NAME", e.getTrackasiskey1name());
map.put("TRACKASISKEY2NAME", e.getTrackasiskey2name());
map.put("RSEMPNAME", e.getRsempname());
- map.put("RSPBLPSNCNTPCTNT", e.getRspblpsncntpctnt());
+ map.put("RSPBLPSNCNTPCTNT", encryptConverter.convertToEntityAttribute(e.getRspblpsncntpctnt()));
map.put("GROUPCOCD", e.getGroupcocd());
if (e.getLastModDtm() != null) {
map.put("LAST_MOD_DTM",
@@ -174,6 +182,7 @@ public class UnifbwkManService extends BaseService {
}
UnifBwkTp unifBwkTp = unifbwkUIMapper.toEntity(unifbwkUI);
+ unifBwkTp.setRspblpsncntpctnt(encryptConverter.convertToDatabaseColumn(unifBwkTp.getRspblpsncntpctnt()));
unifBwkTpService.save(unifBwkTp);
}
@@ -206,6 +215,7 @@ public class UnifbwkManService extends BaseService {
}
unifbwkUIMapper.updateToEntity(unifbwkUI, optionalUnifBwkTp.get());
+ optionalUnifBwkTp.get().setRspblpsncntpctnt(encryptConverter.convertToDatabaseColumn(unifbwkUI.getRsPblpsncntpcTnt()));
unifBwkTpService.save(optionalUnifBwkTp.get());
}
}
diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/rule/layout/LayoutDao.java b/src/main/java/com/eactive/eai/rms/onl/manage/rule/layout/LayoutDao.java
index 5bf2b1f..24168d6 100644
--- a/src/main/java/com/eactive/eai/rms/onl/manage/rule/layout/LayoutDao.java
+++ b/src/main/java/com/eactive/eai/rms/onl/manage/rule/layout/LayoutDao.java
@@ -74,6 +74,7 @@ public class LayoutDao extends SqlMapClientTemplateDao {
entity.setEaibzwkdstcd((String) paramMap.get("eaiBzwkDstcd"));
entity.setUapplname((String) paramMap.get("uapplName"));
entity.setSysintfacname((String) paramMap.get("sysIntfacName"));
+ entity.setUseyn((String) paramMap.get("useYn"));
layoutService.save(entity);
}
diff --git a/src/main/java/com/eactive/eai/rms/onl/manage/rule/layoutsync/LayoutSyncController.java b/src/main/java/com/eactive/eai/rms/onl/manage/rule/layoutsync/LayoutSyncController.java
index b8df9ea..907f678 100644
--- a/src/main/java/com/eactive/eai/rms/onl/manage/rule/layoutsync/LayoutSyncController.java
+++ b/src/main/java/com/eactive/eai/rms/onl/manage/rule/layoutsync/LayoutSyncController.java
@@ -683,7 +683,9 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
param.put("recvData", "");
}
- syncLayout(param, recvTime, json);
+ //syncLayout(param, recvTime, json);
+ syncLayoutDjb(param, recvTime, json);
+
// results.getChild("Result").setText("S".equals(param.get("prcssRslt"))?"True":"False");
// results.getChild("ResultMessage").setText("S".equals(param.get("prcssRslt"))?"성공":param.get("prcssRsltCmnt"));
@@ -900,7 +902,11 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
private void syncLayout(HashMap param, JSONObject body, String command, JSONObject layout)
throws Exception, BizException, ParseException {
- String layoutName = (String) layout.get("id");
+ String id = (String) layout.get("id");
+ String layoutName = (String) layout.get("layoutName");
+ if (StringUtils.isEmpty(layoutName)) {
+ layoutName = id;
+ }
String useSystem = (String) layout.get("usesystem");
param.put("logPrcssSeqno", UUIDGenerator.getUUID());
@@ -935,7 +941,7 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
break;
}
- if(!layoutName.matches(fattern)) {
+ if(!id.matches(fattern)) {
throw new BizException("잘못된 전문레이아웃명 입니다.\n명명규칙을 확인하세요.\n"+fattern);
}
@@ -955,7 +961,8 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
// Layout Format (TR07)
vo.put("loutName",layoutName);
vo.put("loutPtrnName",msgType); // ASCII, EBCDIC, XML
- vo.put("loutDesc",layout.get("desc"));
+ vo.put("loutDesc",layout.get("desc"));
+ vo.put("useYn", "1");
String date = (String) layout.get("date");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -1183,5 +1190,63 @@ public class LayoutSyncController extends OnlBaseAnnotationController implements
}
return null ;
}
+
+
+ private void syncLayoutDjb(HashMap param, String recvTime, JSONObject json)
+ throws Exception, BizException, ParseException {
+ JSONObject header = (JSONObject) ((JSONObject) json.get("Message")).get("Header");
+ JSONObject body = (JSONObject) ((JSONObject) json.get("Message")).get("Body");
+
+ String serviceName = (String) header.get("ServiceName");
+ String command = (String) header.get("Command");
+
+ param.put("serviceName", serviceName);
+ param.put("command", command);
+ param.put("recvAmndHMS", recvTime);
+
+
+ Object layoutObject = body.get("Layout");
+
+ JSONArray layoutArray = null;
+ if (layoutObject instanceof JSONArray) {
+
+ String interfaceId = (String) body.get("interfaceCode");
+ if (interfaceId.startsWith("ES")) {
+ interfaceId = interfaceId.replaceFirst("ES", "AS");
+ }
+
+ layoutArray = (JSONArray) layoutObject;
+
+ for (int i = 0; i < layoutArray.size(); i++) {
+ JSONObject layout = (JSONObject)layoutArray.get(i);
+
+ String usesystem = (String)layout.get("usesystem");
+
+ if ("EAI".equals(usesystem)) {
+ String id = (String)layout.get("id");
+ String inOutType = "OPA".equals(id.substring(5,8)) ? "S1" : "S2";
+ String group = (String)layout.get("group");
+ String ioType = (String)layout.get("ioType");
+
+ if ("I".equals(ioType)) {
+ layout.put("layoutName", group + "_" + interfaceId + inOutType + "_SRCS");
+ syncLayout(param, body, command, layout);
+
+ layout.put("layoutName", group + "_" + interfaceId + inOutType + "_TGTS");
+ syncLayout(param, body, command, layout);
+ } else {
+ layout.put("layoutName", group + "_" + interfaceId + inOutType + "_SRCR");
+ syncLayout(param, body, command, layout);
+
+ layout.put("layoutName", group + "_" + interfaceId + inOutType + "_TGTR");
+ syncLayout(param, body, command, layout);
+ }
+ }
+ }
+
+ } else {
+ throw new BizException("단독 레이아웃 연동은 지원하지 않습니다.");
+ }
+ }
}
diff --git a/src/main/resources/logback-dev.xml b/src/main/resources/logback-dev.xml
index aace92d..398746f 100644
--- a/src/main/resources/logback-dev.xml
+++ b/src/main/resources/logback-dev.xml
@@ -9,12 +9,12 @@
-
+
@@ -183,6 +183,5 @@
-
\ No newline at end of file
diff --git a/src/main/resources/logback-local.xml b/src/main/resources/logback-local.xml
index 00b1dd8..171928e 100644
--- a/src/main/resources/logback-local.xml
+++ b/src/main/resources/logback-local.xml
@@ -1,10 +1,10 @@
-
+
-
+
@@ -113,12 +113,13 @@
-
-
+
+
+
@@ -135,6 +136,7 @@
+
@@ -159,9 +161,11 @@
+
+
@@ -178,6 +182,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+