From 3dc2bb67d910107c5e1fed141667d3473e4abfa7 Mon Sep 17 00:00:00 2001 From: ijunho Date: Tue, 26 Aug 2025 09:28:44 +0900 Subject: [PATCH] =?UTF-8?q?kmc=20=EC=95=94=ED=98=B8=ED=99=94=EB=AA=A8?= =?UTF-8?q?=EB=93=88=20=EA=B0=9C=EB=B0=9C=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit http://pms.iten.co.kr:9999/issues/4608 --- .gitignore | 3 + .../let/mjo/addr/web/AddrGroupController.java | 247 +--- .../java/itn/let/mjo/pay/service/KmcVO.java | 62 +- .../let/mjo/pay/web/MjonPayController.java | 312 +---- .../let/uat/uia/service/EgovLoginService.java | 1 - .../service/impl/EgovLoginServiceImpl.java | 235 +--- .../let/uat/uia/web/EgovLoginController.java | 312 +---- .../let/uat/uia/web/EgovMypageController.java | 1196 +---------------- .../itn/let/uat/uia/web/KmcCertChecker.java | 74 +- .../sample/kmc/kmcis_web_sample_step02.jsp | 1 + .../jsp/web/addr/AddrGroupListAjax.jsp | 1 + .../WEB-INF/jsp/web/com/webCommonHeader.jsp | 1 + .../jsp/web/cop/bbs/include/mberSecession.jsp | 1 + .../jsp/web/fax/addr/FaxAddrGroupListAjax.jsp | 1 + .../WEB-INF/jsp/web/login/findUserId.jsp | 1 + .../web/login/humanPageAuthenticatedPage.jsp | 1 + .../jsp/web/login/test_usrCheckTerms.jsp | 1 + .../jsp/web/login/usrCheckTerms_back2.jsp | 1 + .../jsp/web/user/mberCompanyInfoChange.jsp | 1 + .../WEB-INF/jsp/web/user/mberInfoChange.jsp | 1 + .../WEB-INF/jsp/web/user/mberInfoIndex.jsp | 1 + .../WEB-INF/jsp/web/user/mberSecession.jsp | 1 + .../WEB-INF/jsp/web/user/mberSecureLogin.jsp | 1 + .../jsp/web/user/sendNumberKmcReqPage.jsp | 4 +- .../jsp/web/user/sendNumberManageRegister.jsp | 1 + .../web/user/sendNumberManage_bak220502.jsp | 1 + 26 files changed, 214 insertions(+), 2248 deletions(-) diff --git a/.gitignore b/.gitignore index 5512880c..a8209c63 100644 --- a/.gitignore +++ b/.gitignore @@ -202,3 +202,6 @@ rebel.xml /mvnw /mvnw.cmd /.gemini.zip + +### MAC OS ### +.DS_Store \ No newline at end of file diff --git a/src/main/java/itn/let/mjo/addr/web/AddrGroupController.java b/src/main/java/itn/let/mjo/addr/web/AddrGroupController.java index 4ecb759b..2753f7b4 100644 --- a/src/main/java/itn/let/mjo/addr/web/AddrGroupController.java +++ b/src/main/java/itn/let/mjo/addr/web/AddrGroupController.java @@ -74,7 +74,7 @@ public class AddrGroupController { private EgovMberManageService mberManageService; @Resource(name = "KmcCertChecker") - private KmcCertChecker kmcCertCheck; + private KmcCertChecker kmcCertChecker; /** * 주소록 그룹 리스트 @@ -954,7 +954,7 @@ public class AddrGroupController { mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAddrSubmitAjax.do"); mberCertPhoneVO.setPlusInfo(mberManageVO.getMberId()); - AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); + AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); modelAndView.addObject("tr_cert", certVO.getTr_cert()); modelAndView.addObject("tr_url", certVO.getTr_url()); @@ -979,241 +979,16 @@ public class AddrGroupController { */ @RequestMapping("/web/cop/kmc/authRequestAddrSubmitAjax.do") - public String authRequestFindIdPwAjax(HttpServletRequest request, ModelMap model, - @RequestParam Map commandMap, @ModelAttribute("searchVO") KmcVO kmcVO, - RedirectAttributes redirectAttributes) throws Exception { + public String authRequestFindIdPwAjax( + HttpServletRequest request + , HttpServletResponse response + , ModelMap model + , @RequestParam Map commandMap + , @ModelAttribute("searchVO") KmcVO kmcVO + , RedirectAttributes redirectAttributes + ) throws Exception { - String errMessage = ""; // 에러메세지 - - String rec_cert = ""; // 결과값(암호화) - String certNum = ""; // certNum - - rec_cert = request.getParameter("rec_cert").trim(); - certNum = request.getParameter("certNum").trim(); - - kmcVO.setRecCert(rec_cert); - kmcVO.setCertNum(certNum); - // 파라미터 유효성 검증 - if (rec_cert.length() == 0 || certNum.length() == 0) { - errMessage = "비정상"; - return returnPage(model, errMessage, kmcVO); - } - - // 변수선언 - // -------------------------------------------------------------------------------------------------------- - String k_certNum = ""; // 파라미터로 수신한 요청번호 - k_certNum = certNum; - String date = ""; // 요청일시 - String CI = ""; // 연계정보(CI) - String DI = ""; // 중복가입확인정보(DI) - String phoneNo = ""; // 휴대폰번호 - String phoneCorp = ""; // 이동통신사 - String birthDay = ""; // 생년월일 - String gender = ""; // 성별 - String nation = ""; // 내국인 - String name = ""; // 성명 - String M_name = ""; // 미성년자 성명 - String M_birthDay = ""; // 미성년자 생년월일 - String M_Gender = ""; // 미성년자 성별 - String M_nation = ""; // 미성년자 내외국인 - String result = ""; // 결과값 - - String certMet = ""; // 인증방법 - String ip = ""; // ip주소 - String plusInfo = ""; - - String encPara = ""; - String encMsg1 = ""; - String encMsg2 = ""; - String msgChk = ""; - - com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); - - // 02. 1차 복호화 - // 수신된 certNum를 이용하여 복호화 - rec_cert = seed.getDec(rec_cert, k_certNum); - - // 03. 1차 파싱 - int inf1 = rec_cert.indexOf("/", 0); - int inf2 = rec_cert.indexOf("/", inf1 + 1); - - encPara = rec_cert.substring(0, inf1); // 암호화된 통합 파라미터 - encMsg1 = rec_cert.substring(inf1 + 1, inf2); // 암호화된 통합 파라미터의 Hash값 - - // 04. 위변조 검증 - encMsg2 = seed.getMsg(encPara); - kmcVO.setEncMsg2(encMsg2); - if (encMsg2.equals(encMsg1)) { - msgChk = "Y"; - } - - if (!"Y".equals(msgChk)) { - errMessage = "비정상접근입니다."; - return returnPage(model, errMessage, kmcVO); - } - - // 05. 2차 복호화 - rec_cert = seed.getDec(encPara, k_certNum); - kmcVO.setRecCert(rec_cert); - // 06. 2차 파싱 - int info1 = rec_cert.indexOf("/", 0); - int info2 = rec_cert.indexOf("/", info1 + 1); - int info3 = rec_cert.indexOf("/", info2 + 1); - int info4 = rec_cert.indexOf("/", info3 + 1); - int info5 = rec_cert.indexOf("/", info4 + 1); - int info6 = rec_cert.indexOf("/", info5 + 1); - int info7 = rec_cert.indexOf("/", info6 + 1); - int info8 = rec_cert.indexOf("/", info7 + 1); - int info9 = rec_cert.indexOf("/", info8 + 1); - int info10 = rec_cert.indexOf("/", info9 + 1); - int info11 = rec_cert.indexOf("/", info10 + 1); - int info12 = rec_cert.indexOf("/", info11 + 1); - int info13 = rec_cert.indexOf("/", info12 + 1); - int info14 = rec_cert.indexOf("/", info13 + 1); - int info15 = rec_cert.indexOf("/", info14 + 1); - int info16 = rec_cert.indexOf("/", info15 + 1); - int info17 = rec_cert.indexOf("/", info16 + 1); - int info18 = rec_cert.indexOf("/", info17 + 1); - - certNum = rec_cert.substring(0, info1); - kmcVO.setCertNum(certNum); - date = rec_cert.substring(info1 + 1, info2); - kmcVO.setDate(date); - CI = rec_cert.substring(info2 + 1, info3); - kmcVO.setCI(CI); - phoneNo = rec_cert.substring(info3 + 1, info4); - kmcVO.setPhoneNo(phoneNo); - phoneCorp = rec_cert.substring(info4 + 1, info5); - kmcVO.setPhoneCorp(phoneCorp); - birthDay = rec_cert.substring(info5 + 1, info6); - kmcVO.setBirthDay(birthDay); - gender = rec_cert.substring(info6 + 1, info7); - kmcVO.setGender(gender); - nation = rec_cert.substring(info7 + 1, info8); - kmcVO.setNation(nation); - name = rec_cert.substring(info8 + 1, info9); - kmcVO.setName(name); - result = rec_cert.substring(info9 + 1, info10); - kmcVO.setResult(result); - certMet = rec_cert.substring(info10 + 1, info11); - kmcVO.setCertMet(certMet); - ip = rec_cert.substring(info11 + 1, info12); - kmcVO.setIp(ip); - M_name = rec_cert.substring(info12 + 1, info13); - kmcVO.setMName(M_name); - M_birthDay = rec_cert.substring(info13 + 1, info14); - kmcVO.setMBirthDay(M_birthDay); - M_Gender = rec_cert.substring(info14 + 1, info15); - kmcVO.setMGender(M_Gender); - M_nation = rec_cert.substring(info15 + 1, info16); - kmcVO.setMNation(M_nation); - plusInfo = rec_cert.substring(info16 + 1, info17); - kmcVO.setPlusInfo(plusInfo); - DI = rec_cert.substring(info17 + 1, info18); - kmcVO.setDI(DI); - - // 07. CI, DI 복호화 - CI = seed.getDec(CI, k_certNum); - kmcVO.setCI(CI); - DI = seed.getDec(DI, k_certNum); - kmcVO.setDI(DI); - - if ("Y".equals(result)) { - - } - - // -------------------------------------------------------------- - String regex = ""; - if (certNum.length() == 0 || certNum.length() > 40) { - errMessage = "요청번호 비정상."; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[0-9]*"; - if (date.length() != 14 || !paramChk(regex, date)) { - errMessage = "요청일시"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[A-Z]*"; - if (certMet.length() != 1 || !paramChk(regex, certMet)) { - errMessage = "본인인증방법 비정상" + certMet; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[0-9]*"; - if ((phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo)) { - errMessage = "휴대폰번호 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[A-Z]*"; - if (phoneCorp.length() != 3 || !paramChk(regex, phoneCorp)) { - errMessage = "이동통신사 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[0-9]*"; - if (birthDay.length() != 8 || !paramChk(regex, birthDay)) { - errMessage = "생년월일 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[0-9]*"; - if (gender.length() != 1 || !paramChk(regex, gender)) { - errMessage = "성별 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[0-9]*"; - if (nation.length() != 1 || !paramChk(regex, nation)) { - errMessage = "내/외국인 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[\\sA-Za-z가-�R.,-]*"; - if (name.length() > 60 || !paramChk(regex, name)) { - errMessage = "성명 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[A-Z]*"; - if (result.length() != 1 || !paramChk(regex, result)) { - errMessage = "결과값 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[\\sA-Za-z가-?.,-]*"; - if (M_name.length() != 0) { - if (M_name.length() > 60 || !paramChk(regex, M_name)) { - errMessage = "미성년자 성명 비정상"; - return returnPage(model, errMessage, kmcVO); - } - } - - regex = "[0-9]*"; - if (M_birthDay.length() != 0) { - if (M_birthDay.length() != 8 || !paramChk(regex, M_birthDay)) { - errMessage = "미성년자 생년월일 비정상"; - return returnPage(model, errMessage, kmcVO); - } - } - - regex = "[0-9]*"; - if (M_Gender.length() != 0) { - if (M_Gender.length() != 1 || !paramChk(regex, M_Gender)) { - errMessage = "미성년자 성별 비정상"; - return returnPage(model, errMessage, kmcVO); - } - } - - regex = "[0-9]*"; - if (M_nation.length() != 0) { - if (M_nation.length() != 1 || !paramChk(regex, M_nation)) { - errMessage = "미성년자 내/외국인 비정상"; - return returnPage(model, errMessage, kmcVO); - } - } + kmcVO = kmcCertChecker.authCertResult(request, response, model); // KMC 본인인증 로그 AuthCertVO certVO = new AuthCertVO(); diff --git a/src/main/java/itn/let/mjo/pay/service/KmcVO.java b/src/main/java/itn/let/mjo/pay/service/KmcVO.java index 3a662cd2..374d03ad 100644 --- a/src/main/java/itn/let/mjo/pay/service/KmcVO.java +++ b/src/main/java/itn/let/mjo/pay/service/KmcVO.java @@ -18,10 +18,10 @@ public class KmcVO extends ComDefaultVO{ private String gender = ""; // 성별 private String nation = ""; // 내국인 private String name = ""; // 성명 - private String MName = ""; // 미성년자 성명 - private String MBirthDay = ""; // 미성년자 생년월일 - private String MGender = ""; // 미성년자 성별 - private String MNation = ""; // 미성년자 내외국인 +// private String MName = ""; // 미성년자 성명 +// private String MBirthDay = ""; // 미성년자 생년월일 +// private String MGender = ""; // 미성년자 성별 +// private String MNation = ""; // 미성년자 내외국인 private String result = ""; // 결과값 private String certMet = ""; // 인증방법 @@ -41,6 +41,11 @@ public class KmcVO extends ComDefaultVO{ private String idx = ""; //본인인증 로그 idx private String dnChk = ""; //본인명의 DN 체크 + private String reserve1 = ""; + private String reserve2 = ""; + private String reserve3 = ""; + private String reserve4 = ""; + public String getUserId() { return userId; } @@ -177,30 +182,6 @@ public class KmcVO extends ComDefaultVO{ public void setCertNum(String certNum) { this.certNum = certNum; } - public String getMName() { - return MName; - } - public void setMName(String mName) { - MName = mName; - } - public String getMBirthDay() { - return MBirthDay; - } - public void setMBirthDay(String mBirthDay) { - MBirthDay = mBirthDay; - } - public String getMGender() { - return MGender; - } - public void setMGender(String mGender) { - MGender = mGender; - } - public String getMNation() { - return MNation; - } - public void setMNation(String mNation) { - MNation = mNation; - } public String getRecCert() { return recCert; } @@ -225,5 +206,30 @@ public class KmcVO extends ComDefaultVO{ public void setCertType(String certType) { this.certType = certType; } + public String getReserve1() { + return reserve1; + } + public void setReserve1(String reserve1) { + this.reserve1 = reserve1; + } + public String getReserve2() { + return reserve2; + } + public void setReserve2(String reserve2) { + this.reserve2 = reserve2; + } + public String getReserve3() { + return reserve3; + } + public void setReserve3(String reserve3) { + this.reserve3 = reserve3; + } + public String getReserve4() { + return reserve4; + } + public void setReserve4(String reserve4) { + this.reserve4 = reserve4; + } + } diff --git a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java index b65e7b3c..52b9d57d 100644 --- a/src/main/java/itn/let/mjo/pay/web/MjonPayController.java +++ b/src/main/java/itn/let/mjo/pay/web/MjonPayController.java @@ -945,24 +945,10 @@ public class MjonPayController { ModelMap model , @RequestParam Map commandMap, @ModelAttribute("searchVO") KmcVO kmcVO) throws Exception { + //kmc 본인인증 결과처리 kmcVO = kmcCertChecker.authCertResult(request, response, model); - //KMC 본인인증 로그 insert - AuthCertVO certVO = new AuthCertVO(); - certVO.setMberId(kmcVO.getPlusInfo()); - certVO.setCertNum(kmcVO.getCertNum()); - certVO.setCertDate(kmcVO.getDate()); - certVO.setCertDi(kmcVO.getDI()); - certVO.setCertPhone(kmcVO.getPhoneNo()); - certVO.setCertNation(kmcVO.getNation()); - certVO.setCertName(kmcVO.getName()); - certVO.setCertResult(kmcVO.getResult()); - certVO.setCertType("KMC_회원가입 인증"); - certVO.setCertIpaddr(kmcVO.getIp()); - certVO.setBirthDay(kmcVO.getBirthDay()); - certVO.setSexdstnCode(kmcVO.getGender()); - - //디비 테이블에 저장하기 - mberManageService.insertCertInfoLog(certVO); + //kmc 본인인증 로그 처리 + AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_회원가입 인증"); kmcVO.setIdx(certVO.getIdx()); //본인인증 로그 Idx - 로그 insert 후 idx selectKey model.addAttribute("kmcVO", kmcVO); @@ -5937,297 +5923,5 @@ public class MjonPayController { return p_response; } - - - - /** - * 회원가입 본인인증 - * - * @param - * @return - * @throws Exception - */ - @RequestMapping("/web/cop/kmc/authRequestAjax_back.do") - public String authRequestAjax_back(HttpServletRequest request, HttpSession session, HttpServletResponse response, - ModelMap model , @RequestParam Map commandMap, - @ModelAttribute("searchVO") KmcVO kmcVO) throws Exception { - - //크롬 SameSite정책 방지 - 도메인이 다른 타사로 이동 시 크롬 정책에 의해 세션 유실이 일어나는 경우가 있는데, 이를 방지하기 위해 samesite 보안을 none처리 - response.setHeader("Set-Cookie", "mberSession=mberSession; Secure; SameSite=None"); - - System.out.println("++++++++++++ 세션체크 ::: "+ session.getAttribute("mberSession")); - - String errMessage = ""; //에러메세지 - - String rec_cert = ""; // 결과값(암호화) - String certNum = ""; // certNum - - rec_cert = request.getParameter("rec_cert").trim(); - certNum = request.getParameter("certNum").trim(); - - kmcVO.setRecCert(rec_cert); - kmcVO.setCertNum(certNum); - // 파라미터 유효성 검증 - if( rec_cert.length() == 0 || certNum.length() == 0 ){ - errMessage = "비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - - // 변수선언 -------------------------------------------------------------------------------------------------------- - String k_certNum = ""; // 파라미터로 수신한 요청번호 - k_certNum = certNum; - String date = ""; // 요청일시 - String CI = ""; // 연계정보(CI) - String DI = ""; // 중복가입확인정보(DI) - String phoneNo = ""; // 휴대폰번호 - String phoneCorp = ""; // 이동통신사 - String birthDay = ""; // 생년월일 - String gender = ""; // 성별 - String nation = ""; // 내국인 - String name = ""; // 성명 - String M_name = ""; // 미성년자 성명 - String M_birthDay = ""; // 미성년자 생년월일 - String M_Gender = ""; // 미성년자 성별 - String M_nation = ""; // 미성년자 내외국인 - String result = ""; // 결과값 - - String certMet = ""; // 인증방법 - String ip = ""; // ip주소 - String plusInfo = ""; - - String encPara = ""; - String encMsg1 = ""; - String encMsg2 = ""; - String msgChk = ""; - - com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); - - //02. 1차 복호화 - //수신된 certNum를 이용하여 복호화 - rec_cert = seed.getDec(rec_cert, k_certNum); - - //03. 1차 파싱 - int inf1 = rec_cert.indexOf("/",0); - int inf2 = rec_cert.indexOf("/",inf1+1); - - encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 - encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 - - //04. 위변조 검증 - encMsg2 = seed.getMsg(encPara); - kmcVO.setEncMsg2(encMsg2); - if(encMsg2.equals(encMsg1)){ - msgChk="Y"; - } - - if(!"Y".equals(msgChk)) { - errMessage = "비정상접근입니다."; - return returnPage(model , errMessage , kmcVO) ; - } - - //05. 2차 복호화 - rec_cert = seed.getDec(encPara, k_certNum); - kmcVO.setRecCert(rec_cert); - //06. 2차 파싱 - int info1 = rec_cert.indexOf("/",0); - int info2 = rec_cert.indexOf("/",info1+1); - int info3 = rec_cert.indexOf("/",info2+1); - int info4 = rec_cert.indexOf("/",info3+1); - int info5 = rec_cert.indexOf("/",info4+1); - int info6 = rec_cert.indexOf("/",info5+1); - int info7 = rec_cert.indexOf("/",info6+1); - int info8 = rec_cert.indexOf("/",info7+1); - int info9 = rec_cert.indexOf("/",info8+1); - int info10 = rec_cert.indexOf("/",info9+1); - int info11 = rec_cert.indexOf("/",info10+1); - int info12 = rec_cert.indexOf("/",info11+1); - int info13 = rec_cert.indexOf("/",info12+1); - int info14 = rec_cert.indexOf("/",info13+1); - int info15 = rec_cert.indexOf("/",info14+1); - int info16 = rec_cert.indexOf("/",info15+1); - int info17 = rec_cert.indexOf("/",info16+1); - int info18 = rec_cert.indexOf("/",info17+1); - - certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); - date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); - CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); - phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); - phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); - birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); - gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); - nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); - name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); - result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); - certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); - ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); - M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); - M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); - M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); - M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); - plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); - DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); - - //07. CI, DI 복호화 - CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); - DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); - - if("Y".equals(result)) { - - } - - //-------------------------------------------------------------- - String regex = ""; - if( certNum.length() == 0 || certNum.length() > 40){ - errMessage = "요청번호 비정상."; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( date.length() != 14 || !paramChk(regex, date) ){ - errMessage = "요청일시"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( certMet.length() != 1 || !paramChk(regex, certMet) ){ - errMessage = "본인인증방법 비정상" + certMet; - return returnPage(model , errMessage , kmcVO) ; - } - - - regex = "[0-9]*"; - if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){ - errMessage = "휴대폰번호 비정상" ; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){ - errMessage = "이동통신사 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){ - errMessage = "생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( gender.length() != 1 || !paramChk(regex, gender) ){ - errMessage = "성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( nation.length() != 1 || !paramChk(regex, nation) ){ - errMessage = "내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-�R.,-]*"; - if( name.length() > 60 || !paramChk(regex, name) ){ - errMessage = "성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( result.length() != 1 || !paramChk(regex, result) ){ - errMessage = "결과값 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-?.,-]*"; - if( M_name.length() != 0 ){ - if( M_name.length() > 60 || !paramChk(regex, M_name) ){ - errMessage = "미성년자 성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_birthDay.length() != 0 ){ - if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){ - errMessage = "미성년자 생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_Gender.length() != 0 ){ - if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){ - errMessage = "미성년자 성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_nation.length() != 0 ){ - if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){ - errMessage = "미성년자 내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - //본인인증 결과 내용 저장하기. - /*System.out.println("+++++++++++++ getCertNum ::: "+kmcVO.getCertNum()); - System.out.println("+++++++++++++ getDate ::: "+kmcVO.getDate()); - System.out.println("+++++++++++++ getDI ::: "+kmcVO.getDI()); - System.out.println("+++++++++++++ getPhoneNo ::: "+kmcVO.getPhoneNo()); - System.out.println("+++++++++++++ getNation ::: "+kmcVO.getNation()); - System.out.println("+++++++++++++ getName ::: "+kmcVO.getName()); - System.out.println("+++++++++++++ getResult ::: "+kmcVO.getResult()); - System.out.println("+++++++++++++ getCertMet ::: "+kmcVO.getCertMet()); - System.out.println("+++++++++++++ getIp ::: "+kmcVO.getIp());*/ - - //KMC 본인인증 정보를 세션에 담아준다. - /*AuthCertVO certVO = new AuthCertVO(); - certVO.setCertNum(kmcVO.getCertNum()); - certVO.setCertDate(kmcVO.getDate()); - certVO.setCertDi(kmcVO.getDI()); - certVO.setCertPhone(kmcVO.getPhoneNo()); - certVO.setCertNation(kmcVO.getNation()); - certVO.setCertName(kmcVO.getName()); - certVO.setCertResult(kmcVO.getResult()); - certVO.setCertType("KMC문자인증"); - certVO.setCertIpaddr(kmcVO.getIp()); - certVO.setBirthDay(kmcVO.getBirthDay()); - certVO.setSexdstnCode(kmcVO.getGender());*/ - - /*request.getSession().setAttribute("AuthKmcCertVO", certVO);*/ - - /*System.out.println("++++++++++++ 세션체크22 ::: "+(MberManageVO) session.getAttribute("mberSession"));*/ - - //KMC 본인인증 로그 insert - AuthCertVO certVO = new AuthCertVO(); - certVO.setMberId(kmcVO.getPlusInfo()); - certVO.setCertNum(kmcVO.getCertNum()); - certVO.setCertDate(kmcVO.getDate()); - certVO.setCertDi(kmcVO.getDI()); - certVO.setCertPhone(kmcVO.getPhoneNo()); - certVO.setCertNation(kmcVO.getNation()); - certVO.setCertName(kmcVO.getName()); - certVO.setCertResult(kmcVO.getResult()); - certVO.setCertType("KMC_회원가입 인증"); - certVO.setCertIpaddr(kmcVO.getIp()); - certVO.setBirthDay(kmcVO.getBirthDay()); - certVO.setSexdstnCode(kmcVO.getGender()); - - //디비 테이블에 저장하기 - mberManageService.insertCertInfoLog(certVO); - - kmcVO.setIdx(certVO.getIdx()); //본인인증 로그 Idx - 로그 insert 후 idx selectKey - model.addAttribute("kmcVO", kmcVO); - return "web/cop/kmc/authRequestAjax"; - } - - - - - - - - } diff --git a/src/main/java/itn/let/uat/uia/service/EgovLoginService.java b/src/main/java/itn/let/uat/uia/service/EgovLoginService.java index ccb85055..ab45a78a 100644 --- a/src/main/java/itn/let/uat/uia/service/EgovLoginService.java +++ b/src/main/java/itn/let/uat/uia/service/EgovLoginService.java @@ -121,5 +121,4 @@ public interface EgovLoginService { //비밀번호 실패 횟수 조회 public LoginVO selectPassMiss(LoginVO vo) throws Exception; - public KmcVO kmcDecryption(HttpServletRequest request, KmcVO kmcVO); } diff --git a/src/main/java/itn/let/uat/uia/service/impl/EgovLoginServiceImpl.java b/src/main/java/itn/let/uat/uia/service/impl/EgovLoginServiceImpl.java index b30fb473..a5fa09d2 100644 --- a/src/main/java/itn/let/uat/uia/service/impl/EgovLoginServiceImpl.java +++ b/src/main/java/itn/let/uat/uia/service/impl/EgovLoginServiceImpl.java @@ -17,6 +17,7 @@ import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.psl.dataaccess.util.EgovMap; import itn.com.cmm.LoginVO; import itn.let.mjo.pay.service.KmcVO; +import itn.let.uat.uia.service.AuthCertVO; import itn.let.uat.uia.service.EgovLoginService; import itn.let.uss.umt.service.UserManageVO; import itn.let.utl.fcc.service.EgovNumberUtil; @@ -318,240 +319,6 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements return loginDAO.selectPassMiss(vo); } - - @Override - public KmcVO kmcDecryption(HttpServletRequest request, KmcVO kmcVO) { - - - - String rec_cert = request.getParameter("rec_cert").trim(); - String certNum = request.getParameter("certNum").trim(); - - kmcVO.setRecCert(rec_cert); - kmcVO.setCertNum(certNum); - // 파라미터 유효성 검증 - if (rec_cert.length() == 0 || certNum.length() == 0) { - kmcVO.setErrMessage("비정상"); - return kmcVO; - } - // 변수선언 - // -------------------------------------------------------------------------------------------------------- - String k_certNum = ""; // 파라미터로 수신한 요청번호 - k_certNum = certNum; - String date = ""; // 요청일시 - String CI = ""; // 연계정보(CI) - String DI = ""; // 중복가입확인정보(DI) - String phoneNo = ""; // 휴대폰번호 - String phoneCorp = ""; // 이동통신사 - String birthDay = ""; // 생년월일 - String gender = ""; // 성별 - String nation = ""; // 내국인 - String name = ""; // 성명 - String M_name = ""; // 미성년자 성명 - String M_birthDay = ""; // 미성년자 생년월일 - String M_Gender = ""; // 미성년자 성별 - String M_nation = ""; // 미성년자 내외국인 - String result = ""; // 결과값 - - String certMet = ""; // 인증방법 - String ip = ""; // ip주소 - String plusInfo = ""; - - String encPara = ""; - String encMsg1 = ""; - String encMsg2 = ""; - String msgChk = ""; - - IcertSecuManager seed = new IcertSecuManager(); - - // 02. 1차 복호화 - // 수신된 certNum를 이용하여 복호화 - rec_cert = seed.getDec(rec_cert, k_certNum); - - // 03. 1차 파싱 - int inf1 = rec_cert.indexOf("/", 0); - int inf2 = rec_cert.indexOf("/", inf1 + 1); - - encPara = rec_cert.substring(0, inf1); // 암호화된 통합 파라미터 - encMsg1 = rec_cert.substring(inf1 + 1, inf2); // 암호화된 통합 파라미터의 Hash값 - - // 04. 위변조 검증 - encMsg2 = seed.getMsg(encPara); - kmcVO.setEncMsg2(encMsg2); - if (encMsg2.equals(encMsg1)) { - msgChk = "Y"; - } - - if (!"Y".equals(msgChk)) { - kmcVO.setErrMessage("비정상접근입니다."); - return kmcVO; - } - - // 05. 2차 복호화 - rec_cert = seed.getDec(encPara, k_certNum); - kmcVO.setRecCert(rec_cert); - // 06. 2차 파싱 - int info1 = rec_cert.indexOf("/", 0); - int info2 = rec_cert.indexOf("/", info1 + 1); - int info3 = rec_cert.indexOf("/", info2 + 1); - int info4 = rec_cert.indexOf("/", info3 + 1); - int info5 = rec_cert.indexOf("/", info4 + 1); - int info6 = rec_cert.indexOf("/", info5 + 1); - int info7 = rec_cert.indexOf("/", info6 + 1); - int info8 = rec_cert.indexOf("/", info7 + 1); - int info9 = rec_cert.indexOf("/", info8 + 1); - int info10 = rec_cert.indexOf("/", info9 + 1); - int info11 = rec_cert.indexOf("/", info10 + 1); - int info12 = rec_cert.indexOf("/", info11 + 1); - int info13 = rec_cert.indexOf("/", info12 + 1); - int info14 = rec_cert.indexOf("/", info13 + 1); - int info15 = rec_cert.indexOf("/", info14 + 1); - int info16 = rec_cert.indexOf("/", info15 + 1); - int info17 = rec_cert.indexOf("/", info16 + 1); - int info18 = rec_cert.indexOf("/", info17 + 1); - - certNum = rec_cert.substring(0, info1); - kmcVO.setCertNum(certNum); - date = rec_cert.substring(info1 + 1, info2); - kmcVO.setDate(date); - CI = rec_cert.substring(info2 + 1, info3); - kmcVO.setCI(CI); - phoneNo = rec_cert.substring(info3 + 1, info4); - kmcVO.setPhoneNo(phoneNo); - phoneCorp = rec_cert.substring(info4 + 1, info5); - kmcVO.setPhoneCorp(phoneCorp); - birthDay = rec_cert.substring(info5 + 1, info6); - kmcVO.setBirthDay(birthDay); - gender = rec_cert.substring(info6 + 1, info7); - kmcVO.setGender(gender); - nation = rec_cert.substring(info7 + 1, info8); - kmcVO.setNation(nation); - name = rec_cert.substring(info8 + 1, info9); - kmcVO.setName(name); - result = rec_cert.substring(info9 + 1, info10); - kmcVO.setResult(result); - certMet = rec_cert.substring(info10 + 1, info11); - kmcVO.setCertMet(certMet); - ip = rec_cert.substring(info11 + 1, info12); - kmcVO.setIp(ip); - M_name = rec_cert.substring(info12 + 1, info13); - kmcVO.setMName(M_name); - M_birthDay = rec_cert.substring(info13 + 1, info14); - kmcVO.setMBirthDay(M_birthDay); - M_Gender = rec_cert.substring(info14 + 1, info15); - kmcVO.setMGender(M_Gender); - M_nation = rec_cert.substring(info15 + 1, info16); - kmcVO.setMNation(M_nation); - plusInfo = rec_cert.substring(info16 + 1, info17); - kmcVO.setPlusInfo(plusInfo); - DI = rec_cert.substring(info17 + 1, info18); - kmcVO.setDI(DI); - - // 07. CI, DI 복호화 - CI = seed.getDec(CI, k_certNum); - kmcVO.setCI(CI); - DI = seed.getDec(DI, k_certNum); - kmcVO.setDI(DI); - - if ("Y".equals(result)) { - - } - - // -------------------------------------------------------------- - String regex = ""; - if (certNum.length() == 0 || certNum.length() > 40) { - kmcVO.setErrMessage("요청번호 비정상."); - return kmcVO; - } - - regex = "[0-9]*"; - if (date.length() != 14 || !this.paramChk(regex, date)) { - kmcVO.setErrMessage("요청일시"); - return kmcVO; - } - - regex = "[A-Z]*"; - if (certMet.length() != 1 || !this.paramChk(regex, certMet)) { - kmcVO.setErrMessage("본인인증방법 비정상" + certMet); - return kmcVO; - } - - regex = "[0-9]*"; - if ((phoneNo.length() != 10 && phoneNo.length() != 11) || !this.paramChk(regex, phoneNo)) { - kmcVO.setErrMessage("휴대폰번호 비정상"); - return kmcVO; - } - - regex = "[A-Z]*"; - if (phoneCorp.length() != 3 || !this.paramChk(regex, phoneCorp)) { - kmcVO.setErrMessage("이동통신사 비정상"); - return kmcVO; - } - - regex = "[0-9]*"; - if (birthDay.length() != 8 || !this.paramChk(regex, birthDay)) { - kmcVO.setErrMessage("생년월일 비정상"); - return kmcVO; - } - - regex = "[0-9]*"; - if (gender.length() != 1 || !this.paramChk(regex, gender)) { - kmcVO.setErrMessage("성별 비정상"); - return kmcVO; - } - - regex = "[0-9]*"; - if (nation.length() != 1 || !this.paramChk(regex, nation)) { - kmcVO.setErrMessage("내/외국인 비정상"); - return kmcVO; - } - - regex = "[\\sA-Za-z가-�R.,-]*"; - if (name.length() > 60 || !this.paramChk(regex, name)) { - kmcVO.setErrMessage("성명 비정상"); - return kmcVO; - } - - regex = "[A-Z]*"; - if (result.length() != 1 || !this.paramChk(regex, result)) { - kmcVO.setErrMessage("결과값 비정상"); - return kmcVO; - } - - regex = "[\\sA-Za-z가-?.,-]*"; - if (M_name.length() != 0) { - if (M_name.length() > 60 || !this.paramChk(regex, M_name)) { - kmcVO.setErrMessage("미성년자 성명 비정상"); - return kmcVO; - } - } - - regex = "[0-9]*"; - if (M_birthDay.length() != 0) { - if (M_birthDay.length() != 8 || !this.paramChk(regex, M_birthDay)) { - kmcVO.setErrMessage("미성년자 생년월일 비정상"); - } - } - - regex = "[0-9]*"; - if (M_Gender.length() != 0) { - if (M_Gender.length() != 1 || !paramChk(regex, M_Gender)) { - kmcVO.setErrMessage("미성년자 성별 비정상"); - } - } - - regex = "[0-9]*"; - if (M_nation.length() != 0) { - if (M_nation.length() != 1 || !this.paramChk(regex, M_nation)) { - kmcVO.setErrMessage("미성년자 내/외국인 비정상"); - } - } - - - return kmcVO; - } - - public Boolean paramChk(String patn, String param) { Pattern pattern = Pattern.compile(patn); Matcher matcher = pattern.matcher(param); diff --git a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java index fdc173c5..4b65961a 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java @@ -253,7 +253,7 @@ public class EgovLoginController { private CertIpService certIpService; @Resource(name = "KmcCertChecker") - private KmcCertChecker kmcCertCheck; + private KmcCertChecker kmcCertChecker; private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class); @@ -336,7 +336,7 @@ public class EgovLoginController { MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO(); mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAjax.do"); - AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); + AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); model.addAttribute("tr_cert", certVO.getTr_cert()); model.addAttribute("tr_url", certVO.getTr_url()); @@ -385,7 +385,7 @@ public class EgovLoginController { mberCertPhoneVO.setNation(mberManageVO.getNationality()); mberCertPhoneVO.setBirthDay(mberManageVO.getBirth()); - AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); + AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); // AuthCertVO certVO = kmcCertCheck.authCertCheckTwo(serverNm + "/web/cop/kmc/authRequestAjax.do", // mberManageVO.getMberNm(), mberManageVO.getMoblphonNo(), mberManageVO.getSexdstnCode(), @@ -4035,7 +4035,7 @@ public class EgovLoginController { } mberCertPhoneVO.setPlusInfo(plusInfo); - AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); + AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); modelAndView.addObject("tr_cert", certVO.getTr_cert()); modelAndView.addObject("tr_url", certVO.getTr_url()); @@ -4060,22 +4060,26 @@ public class EgovLoginController { */ @RequestMapping("/web/cop/kmc/authRequestFindIdPwAjax.do") - public String authRequestFindIdPwAjax(HttpServletRequest request, ModelMap model, + public String authRequestFindIdPwAjax(HttpServletRequest request, HttpServletResponse response, ModelMap model, @RequestParam Map commandMap, @ModelAttribute("searchVO") KmcVO kmcVO, RedirectAttributes redirectAttributes) throws Exception { - KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO); +// KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO); + //kmc 본인인증 결과처리 + kmcVO = kmcCertChecker.authCertResult(request, response, model); + //kmc 본인인증 로그 처리 + AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_아이디패스워드찾기"); String msg = ""; - if (!findIdKmcCheck(kmcRVO.getDI(), kmcRVO.getName(), kmcRVO.getPhoneNo())) { + if (!findIdKmcCheck(kmcVO.getDI(), kmcVO.getName(), kmcVO.getPhoneNo())) { msg = "일치하는 정보가 없습니다."; redirectAttributes.addFlashAttribute("message", msg); return "redirect:/web/user/findUserId.do"; } - kmcRVO.setCertType("KMC_아이디패스워드찾기"); - // 디비 테이블에 저장하기 - mberManageService.insertCertInfoLogBn(kmcRVO); +// kmcRVO.setCertType("KMC_아이디패스워드찾기"); +// // 디비 테이블에 저장하기 +// mberManageService.insertCertInfoLogBn(kmcRVO); model.addAttribute("kmcVO", kmcVO); return "web/login/findUserIdKmcReqPage"; @@ -4092,18 +4096,24 @@ public class EgovLoginController { * @discription 관리자 로그인 DN 값 최초 등록 */ @RequestMapping("/web/cop/kmc/authRequestSelfLoginAjax.do") - public String authRequestSelfLoginAjax(HttpServletRequest request, ModelMap model, + public String authRequestSelfLoginAjax(HttpServletRequest request, HttpServletResponse response, ModelMap model, @RequestParam Map commandMap, @ModelAttribute("searchVO") KmcVO kmcVO, RedirectAttributes redirectAttributes, HttpSession session) throws Exception { UserManageVO userManageVO = new UserManageVO(); - KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO); +// KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO); + + //kmc 본인인증 결과처리 + kmcVO = kmcCertChecker.authCertResult(request, response, model); + //kmc 본인인증 로그 처리 + AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_아이디패스워드찾기"); + - userManageVO.setCrtfcDnValue(kmcRVO.getDI()); - userManageVO.setEmplyrNm(kmcRVO.getName()); - userManageVO.setEmplyrId(kmcRVO.getPlusInfo().split(",,,")[0]); - userManageVO.setPassword(kmcRVO.getPlusInfo().split(",,,")[1]); + userManageVO.setCrtfcDnValue(kmcVO.getDI()); + userManageVO.setEmplyrNm(kmcVO.getName()); + userManageVO.setEmplyrId(kmcVO.getPlusInfo().split(",,,")[0]); + userManageVO.setPassword(kmcVO.getPlusInfo().split(",,,")[1]); userManageService.updateCrtfcDnValue(userManageVO); @@ -4121,20 +4131,20 @@ public class EgovLoginController { e.printStackTrace(); // TODO: handle exception } - kmcRVO.setCertType("KMC_관리자미인증IP접속인증"); - // 디비 테이블에 저장하기 - - try { - mberManageService.insertCertInfoLogBn(kmcRVO); - - } catch (Exception e) { - System.out.println("!!!!!!!!!!!!!!!!!"); - e.printStackTrace(); - // TODO: handle exception - } +// kmcRVO.setCertType("KMC_관리자미인증IP접속인증"); +// // 디비 테이블에 저장하기 +// +// try { +// mberManageService.insertCertInfoLogBn(kmcRVO); +// +// } catch (Exception e) { +// System.out.println("!!!!!!!!!!!!!!!!!"); +// e.printStackTrace(); +// // TODO: handle exception +// } - model.addAttribute("kmcVO", kmcRVO); + model.addAttribute("kmcVO", kmcVO); System.out.println("======================================"); model.addAttribute("userManageVO", userManageVO); @@ -5425,7 +5435,7 @@ public class EgovLoginController { mberCertPhoneVO.setNation(KMCInfoVO.getNationality()); mberCertPhoneVO.setPlusInfo(loginVO.getId()); - AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); + AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); modelAndView.addObject("tr_cert", certVO.getTr_cert()); modelAndView.addObject("tr_url", certVO.getTr_url()); @@ -5446,245 +5456,19 @@ public class EgovLoginController { * */ @RequestMapping("/web/cop/kmc/insertIPAjax.do") - public String insertIPAjax(HttpServletRequest request, ModelMap model, @RequestParam Map commandMap, + public String insertIPAjax(HttpServletRequest request, HttpServletResponse response, ModelMap model, @RequestParam Map commandMap, @ModelAttribute("searchVO") KmcVO kmcVO) throws Exception { - String errMessage = ""; // 에러메세지 - - String rec_cert = ""; // 결과값(암호화) - String certNum = ""; // certNum - - rec_cert = request.getParameter("rec_cert").trim(); - certNum = request.getParameter("certNum").trim(); - - kmcVO.setRecCert(rec_cert); - kmcVO.setCertNum(certNum); - // 파라미터 유효성 검증 - if (rec_cert.length() == 0 || certNum.length() == 0) { - errMessage = "비정상"; - return returnPage(model, errMessage, kmcVO); - } - - // 변수선언 - // -------------------------------------------------------------------------------------------------------- - String k_certNum = ""; // 파라미터로 수신한 요청번호 - k_certNum = certNum; - String date = ""; // 요청일시 - String CI = ""; // 연계정보(CI) - String DI = ""; // 중복가입확인정보(DI) - String phoneNo = ""; // 휴대폰번호 - String phoneCorp = ""; // 이동통신사 - String birthDay = ""; // 생년월일 - String gender = ""; // 성별 - String nation = ""; // 내국인 - String name = ""; // 성명 - String M_name = ""; // 미성년자 성명 - String M_birthDay = ""; // 미성년자 생년월일 - String M_Gender = ""; // 미성년자 성별 - String M_nation = ""; // 미성년자 내외국인 - String result = ""; // 결과값 - - String certMet = ""; // 인증방법 - String ip = ""; // ip주소 - String plusInfo = ""; - - String encPara = ""; - String encMsg1 = ""; - String encMsg2 = ""; - String msgChk = ""; - - com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); - - // 02. 1차 복호화 - // 수신된 certNum를 이용하여 복호화 - rec_cert = seed.getDec(rec_cert, k_certNum); - - // 03. 1차 파싱 - int inf1 = rec_cert.indexOf("/", 0); - int inf2 = rec_cert.indexOf("/", inf1 + 1); - - encPara = rec_cert.substring(0, inf1); // 암호화된 통합 파라미터 - encMsg1 = rec_cert.substring(inf1 + 1, inf2); // 암호화된 통합 파라미터의 Hash값 - - // 04. 위변조 검증 - encMsg2 = seed.getMsg(encPara); - kmcVO.setEncMsg2(encMsg2); - if (encMsg2.equals(encMsg1)) { - msgChk = "Y"; - } - - if (!"Y".equals(msgChk)) { - errMessage = "비정상접근입니다."; - return returnPage(model, errMessage, kmcVO); - } - - // 05. 2차 복호화 - rec_cert = seed.getDec(encPara, k_certNum); - kmcVO.setRecCert(rec_cert); - // 06. 2차 파싱 - int info1 = rec_cert.indexOf("/", 0); - int info2 = rec_cert.indexOf("/", info1 + 1); - int info3 = rec_cert.indexOf("/", info2 + 1); - int info4 = rec_cert.indexOf("/", info3 + 1); - int info5 = rec_cert.indexOf("/", info4 + 1); - int info6 = rec_cert.indexOf("/", info5 + 1); - int info7 = rec_cert.indexOf("/", info6 + 1); - int info8 = rec_cert.indexOf("/", info7 + 1); - int info9 = rec_cert.indexOf("/", info8 + 1); - int info10 = rec_cert.indexOf("/", info9 + 1); - int info11 = rec_cert.indexOf("/", info10 + 1); - int info12 = rec_cert.indexOf("/", info11 + 1); - int info13 = rec_cert.indexOf("/", info12 + 1); - int info14 = rec_cert.indexOf("/", info13 + 1); - int info15 = rec_cert.indexOf("/", info14 + 1); - int info16 = rec_cert.indexOf("/", info15 + 1); - int info17 = rec_cert.indexOf("/", info16 + 1); - int info18 = rec_cert.indexOf("/", info17 + 1); - - certNum = rec_cert.substring(0, info1); - kmcVO.setCertNum(certNum); - date = rec_cert.substring(info1 + 1, info2); - kmcVO.setDate(date); - CI = rec_cert.substring(info2 + 1, info3); - kmcVO.setCI(CI); - phoneNo = rec_cert.substring(info3 + 1, info4); - kmcVO.setPhoneNo(phoneNo); - phoneCorp = rec_cert.substring(info4 + 1, info5); - kmcVO.setPhoneCorp(phoneCorp); - birthDay = rec_cert.substring(info5 + 1, info6); - kmcVO.setBirthDay(birthDay); - gender = rec_cert.substring(info6 + 1, info7); - kmcVO.setGender(gender); - nation = rec_cert.substring(info7 + 1, info8); - kmcVO.setNation(nation); - name = rec_cert.substring(info8 + 1, info9); - kmcVO.setName(name); - result = rec_cert.substring(info9 + 1, info10); - kmcVO.setResult(result); - certMet = rec_cert.substring(info10 + 1, info11); - kmcVO.setCertMet(certMet); - ip = rec_cert.substring(info11 + 1, info12); - kmcVO.setIp(ip); - M_name = rec_cert.substring(info12 + 1, info13); - kmcVO.setMName(M_name); - M_birthDay = rec_cert.substring(info13 + 1, info14); - kmcVO.setMBirthDay(M_birthDay); - M_Gender = rec_cert.substring(info14 + 1, info15); - kmcVO.setMGender(M_Gender); - M_nation = rec_cert.substring(info15 + 1, info16); - kmcVO.setMNation(M_nation); - plusInfo = rec_cert.substring(info16 + 1, info17); - kmcVO.setPlusInfo(plusInfo); - DI = rec_cert.substring(info17 + 1, info18); - kmcVO.setDI(DI); - - // 07. CI, DI 복호화 - CI = seed.getDec(CI, k_certNum); - kmcVO.setCI(CI); - DI = seed.getDec(DI, k_certNum); - kmcVO.setDI(DI); - - if ("Y".equals(result)) { - - } - - // -------------------------------------------------------------- - String regex = ""; - if (certNum.length() == 0 || certNum.length() > 40) { - errMessage = "요청번호 비정상."; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[0-9]*"; - if (date.length() != 14 || !paramChk(regex, date)) { - errMessage = "요청일시"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[A-Z]*"; - if (certMet.length() != 1 || !paramChk(regex, certMet)) { - errMessage = "본인인증방법 비정상" + certMet; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[0-9]*"; - if ((phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo)) { - errMessage = "휴대폰번호 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[A-Z]*"; - if (phoneCorp.length() != 3 || !paramChk(regex, phoneCorp)) { - errMessage = "이동통신사 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[0-9]*"; - if (birthDay.length() != 8 || !paramChk(regex, birthDay)) { - errMessage = "생년월일 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[0-9]*"; - if (gender.length() != 1 || !paramChk(regex, gender)) { - errMessage = "성별 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[0-9]*"; - if (nation.length() != 1 || !paramChk(regex, nation)) { - errMessage = "내/외국인 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[\\sA-Za-z가-�R.,-]*"; - if (name.length() > 60 || !paramChk(regex, name)) { - errMessage = "성명 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[A-Z]*"; - if (result.length() != 1 || !paramChk(regex, result)) { - errMessage = "결과값 비정상"; - return returnPage(model, errMessage, kmcVO); - } - - regex = "[\\sA-Za-z가-?.,-]*"; - if (M_name.length() != 0) { - if (M_name.length() > 60 || !paramChk(regex, M_name)) { - errMessage = "미성년자 성명 비정상"; - return returnPage(model, errMessage, kmcVO); - } - } - - regex = "[0-9]*"; - if (M_birthDay.length() != 0) { - if (M_birthDay.length() != 8 || !paramChk(regex, M_birthDay)) { - errMessage = "미성년자 생년월일 비정상"; - return returnPage(model, errMessage, kmcVO); - } - } - - regex = "[0-9]*"; - if (M_Gender.length() != 0) { - if (M_Gender.length() != 1 || !paramChk(regex, M_Gender)) { - errMessage = "미성년자 성별 비정상"; - return returnPage(model, errMessage, kmcVO); - } - } - - regex = "[0-9]*"; - if (M_nation.length() != 0) { - if (M_nation.length() != 1 || !paramChk(regex, M_nation)) { - errMessage = "미성년자 내/외국인 비정상"; - return returnPage(model, errMessage, kmcVO); - } - } + //kmc 본인인증 결과처리 + kmcVO = kmcCertChecker.authCertResult(request, response, model); + //kmc 본인인증 로그 처리 + AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "IP등록"); + LoginVO loginVO = new LoginVO(); - loginVO.setId(plusInfo); + loginVO.setId(kmcVO.getPlusInfo()); + loginVO = loginService.selectKMCInfo(loginVO); - String userIp = EgovClntInfo.getClntIP(request); - loginVO.setIp(ip); + loginVO.setIp(kmcVO.getIp()); loginService.insertMberIp(loginVO); diff --git a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java index 997caab0..47adc9a6 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java @@ -183,7 +183,7 @@ public class EgovMypageController { private CertIpService certIpService; @Resource(name = "KmcCertChecker") - private KmcCertChecker kmcCertCheck; + private KmcCertChecker kmcCertChecker; /** * 마이페이지 비밀번호 변경 탭 @@ -717,7 +717,7 @@ public class EgovMypageController { */ @RequestMapping("/web/user/selectKmcMberInfoAjax.do") public String selectKmcMberInfoAjax( - HttpServletRequest request, ModelMap model + HttpServletRequest request, HttpServletResponse response, ModelMap model , @RequestParam Map commandMap , @ModelAttribute("searchVO") KmcVO kmcVO ) throws Exception { @@ -726,241 +726,14 @@ public class EgovMypageController { String mblDn = userManageService.selectUserMblDnById(loginVO.getId()); model.addAttribute("loginVO", loginVO); - String errMessage = ""; //에러메세지 - - String rec_cert = ""; // 결과값(암호화) - String certNum = ""; // certNum - - rec_cert = request.getParameter("rec_cert").trim(); - certNum = request.getParameter("certNum").trim(); - - kmcVO.setRecCert(rec_cert); - kmcVO.setCertNum(certNum); - // 파라미터 유효성 검증 - if( rec_cert.length() == 0 || certNum.length() == 0 ){ - errMessage = "비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - - // 변수선언 -------------------------------------------------------------------------------------------------------- - String k_certNum = ""; // 파라미터로 수신한 요청번호 - k_certNum = certNum; - String date = ""; // 요청일시 - String CI = ""; // 연계정보(CI) - String DI = ""; // 중복가입확인정보(DI) - String phoneNo = ""; // 휴대폰번호 - String phoneCorp = ""; // 이동통신사 - String birthDay = ""; // 생년월일 - String gender = ""; // 성별 - String nation = ""; // 내국인 - String name = ""; // 성명 - String M_name = ""; // 미성년자 성명 - String M_birthDay = ""; // 미성년자 생년월일 - String M_Gender = ""; // 미성년자 성별 - String M_nation = ""; // 미성년자 내외국인 - String result = ""; // 결과값 - - String certMet = ""; // 인증방법 - String ip = ""; // ip주소 - String plusInfo = ""; - - String encPara = ""; - String encMsg1 = ""; - String encMsg2 = ""; - String msgChk = ""; - - com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); - - //02. 1차 복호화 - //수신된 certNum를 이용하여 복호화 - rec_cert = seed.getDec(rec_cert, k_certNum); - - //03. 1차 파싱 - int inf1 = rec_cert.indexOf("/",0); - int inf2 = rec_cert.indexOf("/",inf1+1); - - encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 - encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 - - //04. 위변조 검증 - encMsg2 = seed.getMsg(encPara); - kmcVO.setEncMsg2(encMsg2); - if(encMsg2.equals(encMsg1)){ - msgChk="Y"; - } - - if(!"Y".equals(msgChk)) { - errMessage = "비정상접근입니다."; - return returnPage(model , errMessage , kmcVO) ; - } - - //05. 2차 복호화 - rec_cert = seed.getDec(encPara, k_certNum); - kmcVO.setRecCert(rec_cert); - //06. 2차 파싱 - int info1 = rec_cert.indexOf("/",0); - int info2 = rec_cert.indexOf("/",info1+1); - int info3 = rec_cert.indexOf("/",info2+1); - int info4 = rec_cert.indexOf("/",info3+1); - int info5 = rec_cert.indexOf("/",info4+1); - int info6 = rec_cert.indexOf("/",info5+1); - int info7 = rec_cert.indexOf("/",info6+1); - int info8 = rec_cert.indexOf("/",info7+1); - int info9 = rec_cert.indexOf("/",info8+1); - int info10 = rec_cert.indexOf("/",info9+1); - int info11 = rec_cert.indexOf("/",info10+1); - int info12 = rec_cert.indexOf("/",info11+1); - int info13 = rec_cert.indexOf("/",info12+1); - int info14 = rec_cert.indexOf("/",info13+1); - int info15 = rec_cert.indexOf("/",info14+1); - int info16 = rec_cert.indexOf("/",info15+1); - int info17 = rec_cert.indexOf("/",info16+1); - int info18 = rec_cert.indexOf("/",info17+1); - - certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); - date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); - CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); - phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); - phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); - birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); - gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); - nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); - name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); - result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); - certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); - ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); - M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); - M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); - M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); - M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); - plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); - DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); - - //07. CI, DI 복호화 - CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); - DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); - - if("Y".equals(result)) { - - } - - //-------------------------------------------------------------- - String regex = ""; - if( certNum.length() == 0 || certNum.length() > 40){ - errMessage = "요청번호 비정상."; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( date.length() != 14 || !paramChk(regex, date) ){ - errMessage = "요청일시"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( certMet.length() != 1 || !paramChk(regex, certMet) ){ - errMessage = "본인인증방법 비정상" + certMet; - return returnPage(model , errMessage , kmcVO) ; - } - - - regex = "[0-9]*"; - if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){ - errMessage = "휴대폰번호 비정상" ; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){ - errMessage = "이동통신사 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){ - errMessage = "생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( gender.length() != 1 || !paramChk(regex, gender) ){ - errMessage = "성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( nation.length() != 1 || !paramChk(regex, nation) ){ - errMessage = "내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-�R.,-]*"; - if( name.length() > 60 || !paramChk(regex, name) ){ - errMessage = "성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( result.length() != 1 || !paramChk(regex, result) ){ - errMessage = "결과값 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-?.,-]*"; - if( M_name.length() != 0 ){ - if( M_name.length() > 60 || !paramChk(regex, M_name) ){ - errMessage = "미성년자 성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_birthDay.length() != 0 ){ - if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){ - errMessage = "미성년자 생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_Gender.length() != 0 ){ - if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){ - errMessage = "미성년자 성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_nation.length() != 0 ){ - if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){ - errMessage = "미성년자 내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - - //KMC 본인인증 로그 - AuthCertVO certVO = new AuthCertVO(); - certVO.setMberId(kmcVO.getPlusInfo()); - certVO.setCertNum(kmcVO.getCertNum()); - certVO.setCertDate(kmcVO.getDate()); - certVO.setCertDi(kmcVO.getDI()); - certVO.setCertPhone(kmcVO.getPhoneNo()); - certVO.setCertNation(kmcVO.getNation()); - certVO.setCertName(kmcVO.getName()); - certVO.setCertResult(kmcVO.getResult()); - certVO.setCertType("KMC_회원정보 변경"); - certVO.setCertIpaddr(kmcVO.getIp()); - certVO.setBirthDay(kmcVO.getBirthDay()); - certVO.setSexdstnCode(kmcVO.getGender()); - - //디비 테이블에 저장하기 - mberManageService.insertCertInfoLog(certVO); + //kmc 본인인증 결과처리 + kmcVO = kmcCertChecker.authCertResult(request, response, model); + //kmc 본인인증 로그 처리 + AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_회원정보 변경"); //개인회원일 시 기존 DN가 본인인증 DN비고하여 본인 명의만 번호 변경 가능하게 if("p".equals(loginVO.getDept())) { - if(!mblDn.equals(DI)) { + if(!mblDn.equals(kmcVO.getDI())) { kmcVO.setDnChk("N"); } } @@ -1465,7 +1238,7 @@ public class EgovMypageController { mberCertPhoneVO.setTrUrl("/web/user/selectKmcMberInfoAjax.do"); mberCertPhoneVO.setPlusInfo(loginVO.getId()); - AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); + AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); modelAndView.addObject("certVO", certVO); } @@ -1938,7 +1711,7 @@ public class EgovMypageController { mberCertPhoneVO.setPhoneNo(mjonMsgVO.getCallFrom()); mberCertPhoneVO.setPlusInfo(mjonMsgVO.getUserId()+ "§" + mjonMsgVO.getMyNameFlag()); - AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); + AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); modelAndView.addObject("certVO", certVO); @@ -1962,223 +1735,12 @@ public class EgovMypageController { */ @RequestMapping("/web/user/selectPhoneNumberCertChkAjax.do") public String selectPhoneNumberCertChk( - HttpServletRequest request, ModelMap model + HttpServletRequest request, HttpServletResponse response, ModelMap model , @RequestParam Map commandMap , @ModelAttribute("searchVO") KmcVO kmcVO ) throws Exception { - - String errMessage = ""; //에러메세지 - - String rec_cert = ""; // 결과값(암호화) - String certNum = ""; // certNum - - rec_cert = request.getParameter("rec_cert").trim(); - certNum = request.getParameter("certNum").trim(); - - kmcVO.setRecCert(rec_cert); - kmcVO.setCertNum(certNum); - // 파라미터 유효성 검증 - if( rec_cert.length() == 0 || certNum.length() == 0 ){ - errMessage = "비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - - // 변수선언 -------------------------------------------------------------------------------------------------------- - String k_certNum = ""; // 파라미터로 수신한 요청번호 - k_certNum = certNum; - String date = ""; // 요청일시 - String CI = ""; // 연계정보(CI) - String DI = ""; // 중복가입확인정보(DI) - String phoneNo = ""; // 휴대폰번호 - String phoneCorp = ""; // 이동통신사 - String birthDay = ""; // 생년월일 - String gender = ""; // 성별 - String nation = ""; // 내국인 - String name = ""; // 성명 - String M_name = ""; // 미성년자 성명 - String M_birthDay = ""; // 미성년자 생년월일 - String M_Gender = ""; // 미성년자 성별 - String M_nation = ""; // 미성년자 내외국인 - String result = ""; // 결과값 - String certMet = ""; // 인증방법 - String ip = ""; // ip주소 - String plusInfo = ""; - - String encPara = ""; - String encMsg1 = ""; - String encMsg2 = ""; - String msgChk = ""; - - IcertSecuManager seed = new IcertSecuManager(); - - //02. 1차 복호화 - //수신된 certNum를 이용하여 복호화 - rec_cert = seed.getDec(rec_cert, k_certNum); - - //03. 1차 파싱 - int inf1 = rec_cert.indexOf("/",0); - int inf2 = rec_cert.indexOf("/",inf1+1); - - encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 - encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 - - //04. 위변조 검증 - encMsg2 = seed.getMsg(encPara); - kmcVO.setEncMsg2(encMsg2); - if(encMsg2.equals(encMsg1)){ - msgChk="Y"; - } - - if(!"Y".equals(msgChk)) { - errMessage = "비정상접근입니다."; - return returnPage(model , errMessage , kmcVO) ; - } - - //05. 2차 복호화 - rec_cert = seed.getDec(encPara, k_certNum); - kmcVO.setRecCert(rec_cert); - //06. 2차 파싱 - int info1 = rec_cert.indexOf("/",0); - int info2 = rec_cert.indexOf("/",info1+1); - int info3 = rec_cert.indexOf("/",info2+1); - int info4 = rec_cert.indexOf("/",info3+1); - int info5 = rec_cert.indexOf("/",info4+1); - int info6 = rec_cert.indexOf("/",info5+1); - int info7 = rec_cert.indexOf("/",info6+1); - int info8 = rec_cert.indexOf("/",info7+1); - int info9 = rec_cert.indexOf("/",info8+1); - int info10 = rec_cert.indexOf("/",info9+1); - int info11 = rec_cert.indexOf("/",info10+1); - int info12 = rec_cert.indexOf("/",info11+1); - int info13 = rec_cert.indexOf("/",info12+1); - int info14 = rec_cert.indexOf("/",info13+1); - int info15 = rec_cert.indexOf("/",info14+1); - int info16 = rec_cert.indexOf("/",info15+1); - int info17 = rec_cert.indexOf("/",info16+1); - int info18 = rec_cert.indexOf("/",info17+1); - - certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); - date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); - CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); - phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); - phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); - birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); - gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); - nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); - name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); - result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); - certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); - ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); - M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); - M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); - M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); - M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); - plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); - DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); - - //07. CI, DI 복호화 - CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); - DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); - - if("Y".equals(result)) { - - } - - //-------------------------------------------------------------- - String regex = ""; - if( certNum.length() == 0 || certNum.length() > 40){ - errMessage = "요청번호 비정상."; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( date.length() != 14 || !paramChk(regex, date) ){ - errMessage = "요청일시"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( certMet.length() != 1 || !paramChk(regex, certMet) ){ - errMessage = "본인인증방법 비정상" + certMet; - return returnPage(model , errMessage , kmcVO) ; - } - - - regex = "[0-9]*"; - if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){ - errMessage = "휴대폰번호 비정상" ; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){ - errMessage = "이동통신사 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){ - errMessage = "생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( gender.length() != 1 || !paramChk(regex, gender) ){ - errMessage = "성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( nation.length() != 1 || !paramChk(regex, nation) ){ - errMessage = "내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-�R.,-]*"; - if( name.length() > 60 || !paramChk(regex, name) ){ - errMessage = "성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( result.length() != 1 || !paramChk(regex, result) ){ - errMessage = "결과값 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-?.,-]*"; - if( M_name.length() != 0 ){ - if( M_name.length() > 60 || !paramChk(regex, M_name) ){ - errMessage = "미성년자 성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_birthDay.length() != 0 ){ - if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){ - errMessage = "미성년자 생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_Gender.length() != 0 ){ - if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){ - errMessage = "미성년자 성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_nation.length() != 0 ){ - if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){ - errMessage = "미성년자 내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - + //kmc 본인인증 결과처리 + kmcVO = kmcCertChecker.authCertResult(request, response, model); /* * plusInfo(본인인증 추가파라미터) * 구분지 "§" @@ -2188,32 +1750,17 @@ public class EgovMypageController { * */ String tmp = kmcVO.getPlusInfo(); String[] tmpResult = tmp.split("§"); + kmcVO.setPlusInfo(tmpResult[0]); + //kmc 본인인증 로그 처리 + AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_발신번호 등록 인증"); - //KMC 본인인증 로그 - AuthCertVO certVO = new AuthCertVO(); - - certVO.setMberId(tmpResult[0]); - certVO.setCertNum(kmcVO.getCertNum()); - certVO.setCertDate(kmcVO.getDate()); - certVO.setCertDi(kmcVO.getDI()); - certVO.setCertPhone(kmcVO.getPhoneNo()); - certVO.setCertNation(kmcVO.getNation()); - certVO.setCertName(kmcVO.getName()); - certVO.setCertResult(kmcVO.getResult()); - certVO.setCertType("KMC_발신번호 등록 인증"); - certVO.setCertIpaddr(kmcVO.getIp()); - certVO.setBirthDay(kmcVO.getBirthDay()); - certVO.setSexdstnCode(kmcVO.getGender()); - - //디비 테이블에 저장하기 - mberManageService.insertCertInfoLog(certVO); LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; String mblDn = userManageService.selectUserMblDnById(loginVO.getId()); String resultDnFlag = "N"; - if(DI.equals(mblDn)) { + if((kmcVO.getDI()).equals(mblDn)) { resultDnFlag = "Y"; } @@ -2295,14 +1842,8 @@ public class EgovMypageController { model.addAttribute("resultNameChk", resultNameChk); //=======================끝========================= - String birthDay_tmp = ""; - try { - birthDay_tmp = kmcVO.getMBirthDay().length() != 0 ? kmcVO.getMBirthDay() : kmcVO.getBirthDay(); - } catch (Exception e) { - birthDay_tmp = birthDay; - } model.addAttribute("CI", kmcVO.getCI()); - model.addAttribute("birthDay", birthDay_tmp); + model.addAttribute("birthDay", kmcVO.getBirthDay()); return "web/user/selectPhoneNumberCertChkReq"; } @@ -2326,232 +1867,25 @@ public class EgovMypageController { */ @RequestMapping("/web/user/insertPhoneSendNumber.do") public String insertPhoneSendNumber( - HttpServletRequest request, ModelMap model + HttpServletRequest request, HttpServletResponse response, ModelMap model , @RequestParam Map commandMap , @ModelAttribute("searchVO") KmcVO kmcVO ) throws Exception { - - String errMessage = ""; //에러메세지 + - String rec_cert = ""; // 결과값(암호화) - String certNum = ""; // certNum - - rec_cert = request.getParameter("rec_cert").trim(); - certNum = request.getParameter("certNum").trim(); - - kmcVO.setRecCert(rec_cert); - kmcVO.setCertNum(certNum); - // 파라미터 유효성 검증 - if( rec_cert.length() == 0 || certNum.length() == 0 ){ - errMessage = "비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - - // 변수선언 -------------------------------------------------------------------------------------------------------- - String k_certNum = ""; // 파라미터로 수신한 요청번호 - k_certNum = certNum; - String date = ""; // 요청일시 - String CI = ""; // 연계정보(CI) - String DI = ""; // 중복가입확인정보(DI) - String phoneNo = ""; // 휴대폰번호 - String phoneCorp = ""; // 이동통신사 - String birthDay = ""; // 생년월일 - String gender = ""; // 성별 - String nation = ""; // 내국인 - String name = ""; // 성명 - String M_name = ""; // 미성년자 성명 - String M_birthDay = ""; // 미성년자 생년월일 - String M_Gender = ""; // 미성년자 성별 - String M_nation = ""; // 미성년자 내외국인 - String result = ""; // 결과값 - - String certMet = ""; // 인증방법 - String ip = ""; // ip주소 - String plusInfo = ""; - - String encPara = ""; - String encMsg1 = ""; - String encMsg2 = ""; - String msgChk = ""; - - IcertSecuManager seed = new IcertSecuManager(); - - //02. 1차 복호화 - //수신된 certNum를 이용하여 복호화 - rec_cert = seed.getDec(rec_cert, k_certNum); - - //03. 1차 파싱 - int inf1 = rec_cert.indexOf("/",0); - int inf2 = rec_cert.indexOf("/",inf1+1); - - encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 - encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 - - //04. 위변조 검증 - encMsg2 = seed.getMsg(encPara); - kmcVO.setEncMsg2(encMsg2); - if(encMsg2.equals(encMsg1)){ - msgChk="Y"; - } - - if(!"Y".equals(msgChk)) { - errMessage = "비정상접근입니다."; - return returnPage(model , errMessage , kmcVO) ; - } - - //05. 2차 복호화 - rec_cert = seed.getDec(encPara, k_certNum); - kmcVO.setRecCert(rec_cert); - //06. 2차 파싱 - int info1 = rec_cert.indexOf("/",0); - int info2 = rec_cert.indexOf("/",info1+1); - int info3 = rec_cert.indexOf("/",info2+1); - int info4 = rec_cert.indexOf("/",info3+1); - int info5 = rec_cert.indexOf("/",info4+1); - int info6 = rec_cert.indexOf("/",info5+1); - int info7 = rec_cert.indexOf("/",info6+1); - int info8 = rec_cert.indexOf("/",info7+1); - int info9 = rec_cert.indexOf("/",info8+1); - int info10 = rec_cert.indexOf("/",info9+1); - int info11 = rec_cert.indexOf("/",info10+1); - int info12 = rec_cert.indexOf("/",info11+1); - int info13 = rec_cert.indexOf("/",info12+1); - int info14 = rec_cert.indexOf("/",info13+1); - int info15 = rec_cert.indexOf("/",info14+1); - int info16 = rec_cert.indexOf("/",info15+1); - int info17 = rec_cert.indexOf("/",info16+1); - int info18 = rec_cert.indexOf("/",info17+1); - - certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); - date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); - CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); - phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); - phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); - birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); - gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); - nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); - name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); - result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); - certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); - ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); - M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); - M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); - M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); - M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); - plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); - DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); - - //07. CI, DI 복호화 - CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); - DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); - - if("Y".equals(result)) { - - } - - //-------------------------------------------------------------- - String regex = ""; - if( certNum.length() == 0 || certNum.length() > 40){ - errMessage = "요청번호 비정상."; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( date.length() != 14 || !paramChk(regex, date) ){ - errMessage = "요청일시"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( certMet.length() != 1 || !paramChk(regex, certMet) ){ - errMessage = "본인인증방법 비정상" + certMet; - return returnPage(model , errMessage , kmcVO) ; - } - - - regex = "[0-9]*"; - if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){ - errMessage = "휴대폰번호 비정상" ; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){ - errMessage = "이동통신사 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){ - errMessage = "생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( gender.length() != 1 || !paramChk(regex, gender) ){ - errMessage = "성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( nation.length() != 1 || !paramChk(regex, nation) ){ - errMessage = "내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-�R.,-]*"; - if( name.length() > 60 || !paramChk(regex, name) ){ - errMessage = "성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( result.length() != 1 || !paramChk(regex, result) ){ - errMessage = "결과값 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-?.,-]*"; - if( M_name.length() != 0 ){ - if( M_name.length() > 60 || !paramChk(regex, M_name) ){ - errMessage = "미성년자 성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_birthDay.length() != 0 ){ - if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){ - errMessage = "미성년자 생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_Gender.length() != 0 ){ - if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){ - errMessage = "미성년자 성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_nation.length() != 0 ){ - if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){ - errMessage = "미성년자 내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } + //kmc 본인인증 결과처리 + kmcVO = kmcCertChecker.authCertResult(request, response, model); + //kmc 본인인증 로그 처리 + AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "휴대폰 인증 발신번호 등록"); MjPhoneMemberVO mjPhoneMemberVO = new MjPhoneMemberVO(); - mjPhoneMemberVO.setUserId(plusInfo); + mjPhoneMemberVO.setUserId(kmcVO.getPlusInfo()); mjPhoneMemberVO.setPhmType("01"); mjPhoneMemberVO.setPhmAuthType("01"); - mjPhoneMemberVO.setFrstRegisterId(plusInfo); - mjPhoneMemberVO.setLastUpdusrId(plusInfo); - mjPhoneMemberVO.setPhoneNumber(phoneNo); - mjPhoneMemberVO.setUserName(name); + mjPhoneMemberVO.setFrstRegisterId(kmcVO.getPlusInfo()); + mjPhoneMemberVO.setLastUpdusrId(kmcVO.getPlusInfo()); + mjPhoneMemberVO.setPhoneNumber(kmcVO.getPhoneNo()); + mjPhoneMemberVO.setUserName(kmcVO.getName()); mjPhoneMemberVO.setAuthYn("Y"); mjonMsgService.insertSendNumber(mjPhoneMemberVO); @@ -2953,7 +2287,7 @@ public class EgovMypageController { mberCertPhoneVO.setTrUrl("/web/user/selectMberSecessionAjax.do"); mberCertPhoneVO.setName(name); - AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); + AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); model.addAttribute("certVO", certVO); return "web/user/mberSecession"; @@ -3054,7 +2388,7 @@ public class EgovMypageController { mberCertPhoneVO.setTrUrl("/web/user/selectSecurityAuthn.do"); mberCertPhoneVO.setPlusInfo(loginVO.getId()); - AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); + AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); model.addAttribute("certVO", certVO); } @@ -3132,232 +2466,24 @@ public class EgovMypageController { */ @RequestMapping("/web/user/selectMberSecessionAjax.do") public String selectMberSecessionAjax( - HttpServletRequest request, ModelMap model + HttpServletRequest request, HttpServletResponse response, ModelMap model , @RequestParam Map commandMap , @ModelAttribute("searchVO") KmcVO kmcVO ) throws Exception { - String errMessage = ""; //에러메세지 - - String rec_cert = ""; // 결과값(암호화) - String certNum = ""; // certNum - - rec_cert = request.getParameter("rec_cert").trim(); - certNum = request.getParameter("certNum").trim(); - - kmcVO.setRecCert(rec_cert); - kmcVO.setCertNum(certNum); - // 파라미터 유효성 검증 - if( rec_cert.length() == 0 || certNum.length() == 0 ){ - errMessage = "비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - - // 변수선언 -------------------------------------------------------------------------------------------------------- - String k_certNum = ""; // 파라미터로 수신한 요청번호 - k_certNum = certNum; - String date = ""; // 요청일시 - String CI = ""; // 연계정보(CI) - String DI = ""; // 중복가입확인정보(DI) - String phoneNo = ""; // 휴대폰번호 - String phoneCorp = ""; // 이동통신사 - String birthDay = ""; // 생년월일 - String gender = ""; // 성별 - String nation = ""; // 내국인 - String name = ""; // 성명 - String M_name = ""; // 미성년자 성명 - String M_birthDay = ""; // 미성년자 생년월일 - String M_Gender = ""; // 미성년자 성별 - String M_nation = ""; // 미성년자 내외국인 - String result = ""; // 결과값 - - String certMet = ""; // 인증방법 - String ip = ""; // ip주소 - String plusInfo = ""; - - String encPara = ""; - String encMsg1 = ""; - String encMsg2 = ""; - String msgChk = ""; - - com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); - - //02. 1차 복호화 - //수신된 certNum를 이용하여 복호화 - rec_cert = seed.getDec(rec_cert, k_certNum); - - //03. 1차 파싱 - int inf1 = rec_cert.indexOf("/",0); - int inf2 = rec_cert.indexOf("/",inf1+1); - - encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 - encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 - - //04. 위변조 검증 - encMsg2 = seed.getMsg(encPara); - kmcVO.setEncMsg2(encMsg2); - if(encMsg2.equals(encMsg1)){ - msgChk="Y"; - } - - if(!"Y".equals(msgChk)) { - errMessage = "비정상접근입니다."; - return returnPage(model , errMessage , kmcVO) ; - } - - //05. 2차 복호화 - rec_cert = seed.getDec(encPara, k_certNum); - kmcVO.setRecCert(rec_cert); - //06. 2차 파싱 - int info1 = rec_cert.indexOf("/",0); - int info2 = rec_cert.indexOf("/",info1+1); - int info3 = rec_cert.indexOf("/",info2+1); - int info4 = rec_cert.indexOf("/",info3+1); - int info5 = rec_cert.indexOf("/",info4+1); - int info6 = rec_cert.indexOf("/",info5+1); - int info7 = rec_cert.indexOf("/",info6+1); - int info8 = rec_cert.indexOf("/",info7+1); - int info9 = rec_cert.indexOf("/",info8+1); - int info10 = rec_cert.indexOf("/",info9+1); - int info11 = rec_cert.indexOf("/",info10+1); - int info12 = rec_cert.indexOf("/",info11+1); - int info13 = rec_cert.indexOf("/",info12+1); - int info14 = rec_cert.indexOf("/",info13+1); - int info15 = rec_cert.indexOf("/",info14+1); - int info16 = rec_cert.indexOf("/",info15+1); - int info17 = rec_cert.indexOf("/",info16+1); - int info18 = rec_cert.indexOf("/",info17+1); - - certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); - date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); - CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); - phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); - phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); - birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); - gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); - nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); - name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); - result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); - certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); - ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); - M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); - M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); - M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); - M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); - plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); - DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); - - //07. CI, DI 복호화 - CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); - DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); - - if("Y".equals(result)) { - - } - - //-------------------------------------------------------------- - String regex = ""; - if( certNum.length() == 0 || certNum.length() > 40){ - errMessage = "요청번호 비정상."; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( date.length() != 14 || !paramChk(regex, date) ){ - errMessage = "요청일시"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( certMet.length() != 1 || !paramChk(regex, certMet) ){ - errMessage = "본인인증방법 비정상" + certMet; - return returnPage(model , errMessage , kmcVO) ; - } - - - regex = "[0-9]*"; - if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){ - errMessage = "휴대폰번호 비정상" ; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){ - errMessage = "이동통신사 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){ - errMessage = "생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( gender.length() != 1 || !paramChk(regex, gender) ){ - errMessage = "성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( nation.length() != 1 || !paramChk(regex, nation) ){ - errMessage = "내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-�R.,-]*"; - if( name.length() > 60 || !paramChk(regex, name) ){ - errMessage = "성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( result.length() != 1 || !paramChk(regex, result) ){ - errMessage = "결과값 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-?.,-]*"; - if( M_name.length() != 0 ){ - if( M_name.length() > 60 || !paramChk(regex, M_name) ){ - errMessage = "미성년자 성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_birthDay.length() != 0 ){ - if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){ - errMessage = "미성년자 생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_Gender.length() != 0 ){ - if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){ - errMessage = "미성년자 성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_nation.length() != 0 ){ - if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){ - errMessage = "미성년자 내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } + //kmc 본인인증 결과처리 + kmcVO = kmcCertChecker.authCertResult(request, response, model); + //kmc 본인인증 로그 처리 + AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "회원탈퇴 본인인증"); MjPhoneMemberVO mjPhoneMemberVO = new MjPhoneMemberVO(); - mjPhoneMemberVO.setUserId(plusInfo); + mjPhoneMemberVO.setUserId(kmcVO.getPlusInfo()); mjPhoneMemberVO.setPhmType("01"); mjPhoneMemberVO.setPhmAuthType("01"); - mjPhoneMemberVO.setFrstRegisterId(plusInfo); - mjPhoneMemberVO.setLastUpdusrId(plusInfo); - mjPhoneMemberVO.setPhoneNumber(phoneNo); - mjPhoneMemberVO.setUserName(name); + mjPhoneMemberVO.setFrstRegisterId(kmcVO.getPlusInfo()); + mjPhoneMemberVO.setLastUpdusrId(kmcVO.getPlusInfo()); + mjPhoneMemberVO.setPhoneNumber(kmcVO.getPhoneNo()); + mjPhoneMemberVO.setUserName(kmcVO.getName()); mjPhoneMemberVO.setAuthYn("Y"); mjonMsgService.insertSendNumber(mjPhoneMemberVO); @@ -3662,7 +2788,7 @@ public class EgovMypageController { */ @RequestMapping("/web/user/selectSecurityAuthn.do") public String selectSecurityAuthn( - HttpServletRequest request, ModelMap model + HttpServletRequest request, HttpServletResponse response, ModelMap model , @RequestParam Map commandMap , @ModelAttribute("searchVO") KmcVO kmcVO ) throws Exception { @@ -3671,243 +2797,13 @@ public class EgovMypageController { String mblDn = userManageService.selectUserMblDnById(loginVO.getId()); model.addAttribute("loginVO", loginVO); - String errMessage = ""; //에러메세지 - - String rec_cert = ""; // 결과값(암호화) - String certNum = ""; // certNum - - rec_cert = request.getParameter("rec_cert").trim(); - certNum = request.getParameter("certNum").trim(); - - kmcVO.setRecCert(rec_cert); - kmcVO.setCertNum(certNum); - // 파라미터 유효성 검증 - if( rec_cert.length() == 0 || certNum.length() == 0 ){ - errMessage = "비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - - // 변수선언 -------------------------------------------------------------------------------------------------------- - String k_certNum = ""; // 파라미터로 수신한 요청번호 - k_certNum = certNum; - String date = ""; // 요청일시 - String CI = ""; // 연계정보(CI) - String DI = ""; // 중복가입확인정보(DI) - String phoneNo = ""; // 휴대폰번호 - String phoneCorp = ""; // 이동통신사 - String birthDay = ""; // 생년월일 - String gender = ""; // 성별 - String nation = ""; // 내국인 - String name = ""; // 성명 - String M_name = ""; // 미성년자 성명 - String M_birthDay = ""; // 미성년자 생년월일 - String M_Gender = ""; // 미성년자 성별 - String M_nation = ""; // 미성년자 내외국인 - String result = ""; // 결과값 - - String certMet = ""; // 인증방법 - String ip = ""; // ip주소 - String plusInfo = ""; - - String encPara = ""; - String encMsg1 = ""; - String encMsg2 = ""; - String msgChk = ""; - - com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); - - //02. 1차 복호화 - //수신된 certNum를 이용하여 복호화 - rec_cert = seed.getDec(rec_cert, k_certNum); - - //03. 1차 파싱 - int inf1 = rec_cert.indexOf("/",0); - int inf2 = rec_cert.indexOf("/",inf1+1); - - encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 - encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 - - //04. 위변조 검증 - encMsg2 = seed.getMsg(encPara); - kmcVO.setEncMsg2(encMsg2); - if(encMsg2.equals(encMsg1)){ - msgChk="Y"; - } - - if(!"Y".equals(msgChk)) { - errMessage = "비정상접근입니다."; - return returnPage(model , errMessage , kmcVO) ; - } - - //05. 2차 복호화 - rec_cert = seed.getDec(encPara, k_certNum); - kmcVO.setRecCert(rec_cert); - //06. 2차 파싱 - int info1 = rec_cert.indexOf("/",0); - int info2 = rec_cert.indexOf("/",info1+1); - int info3 = rec_cert.indexOf("/",info2+1); - int info4 = rec_cert.indexOf("/",info3+1); - int info5 = rec_cert.indexOf("/",info4+1); - int info6 = rec_cert.indexOf("/",info5+1); - int info7 = rec_cert.indexOf("/",info6+1); - int info8 = rec_cert.indexOf("/",info7+1); - int info9 = rec_cert.indexOf("/",info8+1); - int info10 = rec_cert.indexOf("/",info9+1); - int info11 = rec_cert.indexOf("/",info10+1); - int info12 = rec_cert.indexOf("/",info11+1); - int info13 = rec_cert.indexOf("/",info12+1); - int info14 = rec_cert.indexOf("/",info13+1); - int info15 = rec_cert.indexOf("/",info14+1); - int info16 = rec_cert.indexOf("/",info15+1); - int info17 = rec_cert.indexOf("/",info16+1); - int info18 = rec_cert.indexOf("/",info17+1); - - certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); - date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); - CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); - phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); - phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); - birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); - gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); - nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); - name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); - result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); - certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); - ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); - M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); - M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); - M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); - M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); - plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); - DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); - - //07. CI, DI 복호화 - CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); - DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); - - if("Y".equals(result)) { - - } - - //-------------------------------------------------------------- - String regex = ""; - if( certNum.length() == 0 || certNum.length() > 40){ - errMessage = "요청번호 비정상."; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( date.length() != 14 || !paramChk(regex, date) ){ - errMessage = "요청일시"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( certMet.length() != 1 || !paramChk(regex, certMet) ){ - errMessage = "본인인증방법 비정상" + certMet; - return returnPage(model , errMessage , kmcVO) ; - } - - - regex = "[0-9]*"; - if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){ - errMessage = "휴대폰번호 비정상" ; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){ - errMessage = "이동통신사 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){ - errMessage = "생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( gender.length() != 1 || !paramChk(regex, gender) ){ - errMessage = "성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[0-9]*"; - if( nation.length() != 1 || !paramChk(regex, nation) ){ - errMessage = "내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-�R.,-]*"; - if( name.length() > 60 || !paramChk(regex, name) ){ - errMessage = "성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[A-Z]*"; - if( result.length() != 1 || !paramChk(regex, result) ){ - errMessage = "결과값 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - - regex = "[\\sA-Za-z가-?.,-]*"; - if( M_name.length() != 0 ){ - if( M_name.length() > 60 || !paramChk(regex, M_name) ){ - errMessage = "미성년자 성명 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_birthDay.length() != 0 ){ - if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){ - errMessage = "미성년자 생년월일 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_Gender.length() != 0 ){ - if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){ - errMessage = "미성년자 성별 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - regex = "[0-9]*"; - if( M_nation.length() != 0 ){ - if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){ - errMessage = "미성년자 내/외국인 비정상"; - return returnPage(model , errMessage , kmcVO) ; - } - } - - - //KMC 본인인증 로그 - AuthCertVO certVO = new AuthCertVO(); - certVO.setMberId(kmcVO.getPlusInfo()); - certVO.setCertNum(kmcVO.getCertNum()); - certVO.setCertDate(kmcVO.getDate()); - certVO.setCertDi(kmcVO.getDI()); - certVO.setCertPhone(kmcVO.getPhoneNo()); - certVO.setCertNation(kmcVO.getNation()); - certVO.setCertName(kmcVO.getName()); - certVO.setCertResult(kmcVO.getResult()); - certVO.setCertType("secureLoginOFF"); - certVO.setCertIpaddr(kmcVO.getIp()); - certVO.setBirthDay(kmcVO.getBirthDay()); - certVO.setSexdstnCode(kmcVO.getGender()); - - - //디비 테이블에 저장하기 - mberManageService.insertCertInfoLog(certVO); - - + //kmc 본인인증 결과처리 + kmcVO = kmcCertChecker.authCertResult(request, response, model); + //kmc 본인인증 로그 처리 + AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "secureLoginOFF"); //본인 명의만 번호 변경 가능하게 - if(mblDn.equals(DI)) { + if(mblDn.equals(kmcVO.getDI())) { String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); MberManageVO mberManageVO = new MberManageVO(); mberManageVO.setSecuLoginFlag("N"); diff --git a/src/main/java/itn/let/uat/uia/web/KmcCertChecker.java b/src/main/java/itn/let/uat/uia/web/KmcCertChecker.java index b2c56693..b627f605 100644 --- a/src/main/java/itn/let/uat/uia/web/KmcCertChecker.java +++ b/src/main/java/itn/let/uat/uia/web/KmcCertChecker.java @@ -29,12 +29,16 @@ import itn.let.cert.phone.service.CertPhoneService; import itn.let.cert.phone.service.MberCertPhoneVO; import itn.let.mjo.pay.service.KmcVO; import itn.let.uat.uia.service.AuthCertVO; +import itn.let.uss.umt.service.EgovMberManageService; @Component("KmcCertChecker") public class KmcCertChecker { @Resource(name = "CertPhoneService") private CertPhoneService certPhoneService; + + @Resource(name = "mberManageService") + private EgovMberManageService mberManageService; //회원가입 시 인증수단을 휴대폰 본인인증만 했을 경우 사용 public AuthCertVO authCertCheck( @@ -80,8 +84,8 @@ public class KmcCertChecker { //02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화) String enc_tr_cert = ""; -// tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar; - tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"///////"+ plusInfo +"/"+ extendVar; + tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar; +// tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"///////"+ plusInfo +"/"+ extendVar; enc_tr_cert = seed.getEnc(tr_cert, ""); //03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC) @@ -299,7 +303,7 @@ public class KmcCertChecker { } //02. 1차 복호화 - rec_cert = seed.getDec(rec_cert, k_certNum); + rec_cert = seed.getDec(rec_cert, ""); //03. 1차 파싱 int inf1 = rec_cert.indexOf("/",0); @@ -343,28 +347,30 @@ public class KmcCertChecker { int info17 = rec_cert.indexOf("/",info16+1); int info18 = rec_cert.indexOf("/",info17+1); - certNum = rec_cert.substring(0,info1); - date = rec_cert.substring(info1+1,info2); - CI = rec_cert.substring(info2+1,info3); - phoneNo = rec_cert.substring(info3+1,info4); - phoneCorp = rec_cert.substring(info4+1,info5); - birth = rec_cert.substring(info5+1,info6); - gender = rec_cert.substring(info6+1,info7); - nation = rec_cert.substring(info7+1,info8); - name = rec_cert.substring(info8+1,info9); - result = rec_cert.substring(info9+1,info10); - certMet = rec_cert.substring(info10+1,info11); - ip = rec_cert.substring(info11+1,info12); - reserve1 = rec_cert.substring(info12+1,info13); - reserve2 = rec_cert.substring(info13+1,info14); - reserve3 = rec_cert.substring(info14+1,info15); - reserve4 = rec_cert.substring(info15+1,info16); - plusInfo = rec_cert.substring(info16+1,info17); - DI = rec_cert.substring(info17+1,info18); + kmcVO.setCertNum (rec_cert.substring(0,info1)); + kmcVO.setDate (rec_cert.substring(info1+1,info2)); + //CI 복호화 + kmcVO.setCI (seed.getDec(rec_cert.substring(info2+1,info3), "")); + kmcVO.setPhoneNo (rec_cert.substring(info3+1,info4)); + kmcVO.setPhoneCorp (rec_cert.substring(info4+1,info5)); + kmcVO.setBirthDay (rec_cert.substring(info5+1,info6)); + kmcVO.setGender (rec_cert.substring(info6+1,info7)); + kmcVO.setNation (rec_cert.substring(info7+1,info8)); + kmcVO.setName (rec_cert.substring(info8+1,info9)); + kmcVO.setResult (rec_cert.substring(info9+1,info10)); + kmcVO.setCertMet (rec_cert.substring(info10+1,info11)); + kmcVO.setIp (rec_cert.substring(info11+1,info12)); + kmcVO.setReserve1 (rec_cert.substring(info12+1,info13)); + kmcVO.setReserve2 (rec_cert.substring(info13+1,info14)); + kmcVO.setReserve3 (rec_cert.substring(info14+1,info15)); + kmcVO.setReserve4 (rec_cert.substring(info15+1,info16)); + kmcVO.setPlusInfo (rec_cert.substring(info16+1,info17)); + //DI 복호화 + kmcVO.setDI (seed.getDec(rec_cert.substring(info17+1,info18), "")); //07. CI, DI 복호화 - CI = seed.getDec(CI, ""); - DI = seed.getDec(DI, ""); +// CI = seed.getDec(CI, ""); +// DI = seed.getDec(DI, ""); // ---------------------------------------------------------------------------------- @@ -386,7 +392,27 @@ public class KmcCertChecker { return kmcVO; } - + public AuthCertVO insertCertLog(KmcVO kmcVO, String msg) throws Exception { + //KMC 본인인증 로그 insert + AuthCertVO certVO = new AuthCertVO(); + certVO.setMberId(kmcVO.getPlusInfo()); + certVO.setCertNum(kmcVO.getCertNum()); + certVO.setCertDate(kmcVO.getDate()); + certVO.setCertDi(kmcVO.getDI()); + certVO.setCertPhone(kmcVO.getPhoneNo()); + certVO.setCertNation(kmcVO.getNation()); + certVO.setCertName(kmcVO.getName()); + certVO.setCertResult(kmcVO.getResult()); + certVO.setCertType(msg); + certVO.setCertIpaddr(kmcVO.getIp()); + certVO.setBirthDay(kmcVO.getBirthDay()); + certVO.setSexdstnCode(kmcVO.getGender()); + + //디비 테이블에 저장하기 + mberManageService.insertCertInfoLog(certVO); + + return certVO; + } private String getDomain(HttpServletRequest request) { String serverNm = request.getScheme() + "://" + request.getServerName(); diff --git a/src/main/webapp/WEB-INF/jsp/sample/kmc/kmcis_web_sample_step02.jsp b/src/main/webapp/WEB-INF/jsp/sample/kmc/kmcis_web_sample_step02.jsp index bfb40e06..fe0ea7a2 100644 --- a/src/main/webapp/WEB-INF/jsp/sample/kmc/kmcis_web_sample_step02.jsp +++ b/src/main/webapp/WEB-INF/jsp/sample/kmc/kmcis_web_sample_step02.jsp @@ -344,6 +344,7 @@ +
diff --git a/src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp b/src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp index 90887669..99981aa2 100644 --- a/src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp @@ -904,5 +904,6 @@ function listAddrTransHistAjax(pageNo) { + diff --git a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp index 9cf41d7a..b250df27 100644 --- a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp @@ -1883,6 +1883,7 @@ function actionLogin_end(){ +
diff --git a/src/main/webapp/WEB-INF/jsp/web/cop/bbs/include/mberSecession.jsp b/src/main/webapp/WEB-INF/jsp/web/cop/bbs/include/mberSecession.jsp index 9072a7b0..09125047 100644 --- a/src/main/webapp/WEB-INF/jsp/web/cop/bbs/include/mberSecession.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/cop/bbs/include/mberSecession.jsp @@ -90,6 +90,7 @@ function openMberSecessionInfo(key){ +
diff --git a/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrGroupListAjax.jsp b/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrGroupListAjax.jsp index d0de8555..117cfb1e 100644 --- a/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrGroupListAjax.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrGroupListAjax.jsp @@ -821,5 +821,6 @@ function listAddrTransHistAjax(pageNo) { + diff --git a/src/main/webapp/WEB-INF/jsp/web/login/findUserId.jsp b/src/main/webapp/WEB-INF/jsp/web/login/findUserId.jsp index f4e2265e..e52bbd18 100644 --- a/src/main/webapp/WEB-INF/jsp/web/login/findUserId.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/login/findUserId.jsp @@ -860,6 +860,7 @@ function fnAddUserView() { + diff --git a/src/main/webapp/WEB-INF/jsp/web/login/humanPageAuthenticatedPage.jsp b/src/main/webapp/WEB-INF/jsp/web/login/humanPageAuthenticatedPage.jsp index 020d8983..2f9bbee3 100644 --- a/src/main/webapp/WEB-INF/jsp/web/login/humanPageAuthenticatedPage.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/login/humanPageAuthenticatedPage.jsp @@ -129,6 +129,7 @@ function fnAddUserView() { + diff --git a/src/main/webapp/WEB-INF/jsp/web/login/test_usrCheckTerms.jsp b/src/main/webapp/WEB-INF/jsp/web/login/test_usrCheckTerms.jsp index 5e8c9229..b953cd01 100644 --- a/src/main/webapp/WEB-INF/jsp/web/login/test_usrCheckTerms.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/login/test_usrCheckTerms.jsp @@ -644,6 +644,7 @@ +
diff --git a/src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms_back2.jsp b/src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms_back2.jsp index 4fde2d3c..afcc2ad8 100644 --- a/src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms_back2.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms_back2.jsp @@ -707,6 +707,7 @@ +
diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mberCompanyInfoChange.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mberCompanyInfoChange.jsp index 87e70649..c0af9af3 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/mberCompanyInfoChange.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/mberCompanyInfoChange.jsp @@ -505,6 +505,7 @@ function changeValueWork(obj){ +
diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mberInfoChange.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mberInfoChange.jsp index eb6e25a3..d0471fd4 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/mberInfoChange.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/mberInfoChange.jsp @@ -218,6 +218,7 @@ function updateUserInfo(){ + diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp index b2e0e58b..563f5775 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp @@ -304,6 +304,7 @@ function callTo() { +
diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mberSecession.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mberSecession.jsp index 532579b6..75bde8cf 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/mberSecession.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/mberSecession.jsp @@ -97,6 +97,7 @@ function openMberSecessionInfo(key){ +
diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp index 86677aef..829833c2 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp @@ -704,6 +704,7 @@ function linkPage(pageNo){ +
diff --git a/src/main/webapp/WEB-INF/jsp/web/user/sendNumberKmcReqPage.jsp b/src/main/webapp/WEB-INF/jsp/web/user/sendNumberKmcReqPage.jsp index e8dc2e0a..cc40d7ff 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/sendNumberKmcReqPage.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/sendNumberKmcReqPage.jsp @@ -27,7 +27,7 @@ -

+ <%--

[복호화 후 수신값]

@@ -120,6 +120,6 @@ rec_cert : ${kmcVO.recCert}


- [다시 테스트] + [다시 테스트] --%> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/web/user/sendNumberManageRegister.jsp b/src/main/webapp/WEB-INF/jsp/web/user/sendNumberManageRegister.jsp index 6483f195..6c21fdfe 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/sendNumberManageRegister.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/sendNumberManageRegister.jsp @@ -863,6 +863,7 @@ function nameChk(target){ + diff --git a/src/main/webapp/WEB-INF/jsp/web/user/sendNumberManage_bak220502.jsp b/src/main/webapp/WEB-INF/jsp/web/user/sendNumberManage_bak220502.jsp index 95439b24..632a653a 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/sendNumberManage_bak220502.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/sendNumberManage_bak220502.jsp @@ -408,6 +408,7 @@ function guideTab(obj){ +