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 @@ + + + + + + + + + + + + + + + +