--- .gitignore
+++ .gitignore
... | ... | @@ -204,3 +204,10 @@ |
| 204 | 204 |
/.gemini |
| 205 | 205 |
/.gemini.zip |
| 206 | 206 |
/CLAUDE.md |
| 207 |
+ |
|
| 208 |
+<<<<<<< HEAD |
|
| 209 |
+# Mac OS |
|
| 210 |
+======= |
|
| 211 |
+### Mac OS ### |
|
| 212 |
+>>>>>>> refs/heads/5419_전화번호거짓표시50건이상 |
|
| 213 |
+.DS_Store(No newline at end of file) |
--- pom.xml
+++ pom.xml
... | ... | @@ -477,12 +477,19 @@ |
| 477 | 477 |
</dependency> |
| 478 | 478 |
|
| 479 | 479 |
<!-- kmc 본인인증 --> |
| 480 |
- <dependency> |
|
| 480 |
+ <!-- <dependency> |
|
| 481 | 481 |
<groupId>kmc</groupId> |
| 482 | 482 |
<artifactId>ICERTSecu_JDK18</artifactId> |
| 483 | 483 |
<version>1</version> |
| 484 | 484 |
<scope>system</scope> |
| 485 | 485 |
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ICERTSecu_JDK18.jar</systemPath>
|
| 486 |
+ </dependency> --> |
|
| 487 |
+ |
|
| 488 |
+ <!-- kmc 본인인증 ver 2 암호화 모듈 추가 버전 --> |
|
| 489 |
+ <dependency> |
|
| 490 |
+ <groupId>kmc</groupId> |
|
| 491 |
+ <artifactId>ICERTSecu</artifactId> |
|
| 492 |
+ <version>JDK18_v2</version> |
|
| 486 | 493 |
</dependency> |
| 487 | 494 |
|
| 488 | 495 |
|
--- src/main/java/itn/let/cert/phone/web/CertPhoneWebController.java
+++ src/main/java/itn/let/cert/phone/web/CertPhoneWebController.java
... | ... | @@ -34,12 +34,11 @@ |
| 34 | 34 |
|
| 35 | 35 |
@RequestMapping(value = {"/web/cert/log/insertCertLog.do"})
|
| 36 | 36 |
public ResponseEntity<StatusResponse> insertCertLog(HttpServletRequest request) throws Exception {
|
| 37 |
- |
|
| 38 |
- |
|
| 39 |
- |
|
| 40 |
- |
|
| 41 |
- |
|
| 42 |
- |
|
| 43 | 37 |
return ResponseEntity.ok().body(new StatusResponse(HttpStatus.OK, certPhoneService.insertCertLog(request), LocalDateTime.now())); |
| 44 |
- } |
|
| 38 |
+ } |
|
| 39 |
+ |
|
| 40 |
+ @RequestMapping(value = {"/web/cert/log/kmcErrorPage.do"})
|
|
| 41 |
+ public String kmcErrorPage() throws Exception {
|
|
| 42 |
+ return "web/cop/kmc/certResultError"; |
|
| 43 |
+ } |
|
| 45 | 44 |
}(No newline at end of file) |
--- src/main/java/itn/let/kakao/kakaoComm/kakaoApi/KakaoApiProfile.java
+++ src/main/java/itn/let/kakao/kakaoComm/kakaoApi/KakaoApiProfile.java
... | ... | @@ -148,24 +148,8 @@ |
| 148 | 148 |
kakaoReturnVO.setBizReturnMsg(msg); |
| 149 | 149 |
|
| 150 | 150 |
if(code.equals("200")) {
|
| 151 |
- JSONObject tempCate = (JSONObject) object.get("data");
|
|
| 152 |
- String senderKey = tempCate.get("senderKey").toString();
|
|
| 153 |
- kakaoVO.setSenderKey(senderKey); |
|
| 154 |
- int profileCnt = kakaoApiService.selectKakaoProfileCnt(kakaoVO); |
|
| 155 |
- |
|
| 156 |
- //중복된 발신프로필이 없으면 추가 입력 |
|
| 157 |
- if(profileCnt == 0) {
|
|
| 158 |
- kakaoApiService.insertKakaoProfileInfo(kakaoVO); |
|
| 159 |
- }else {//중복이 있는 경우 처리
|
|
| 160 |
- |
|
| 161 |
- kakaoReturnVO.setBizReturnCode("310");
|
|
| 162 |
- kakaoReturnVO.setBizReturnMsg("이미 등록되어 있는 발신프로필 입니다");
|
|
| 163 |
- |
|
| 164 |
- return kakaoReturnVO; |
|
| 165 |
- |
|
| 166 |
- } |
|
| 151 |
+ kakaoReturnVO.setSenderKey((String) ((JSONObject) object.get("data")).get("senderKey"));
|
|
| 167 | 152 |
} |
| 168 |
- |
|
| 169 | 153 |
}else {
|
| 170 | 154 |
|
| 171 | 155 |
kakaoReturnVO.setBizReturnCode(statusCode); |
--- src/main/java/itn/let/kakao/user/kakaoAt/service/KakaoAlimTalkService.java
+++ src/main/java/itn/let/kakao/user/kakaoAt/service/KakaoAlimTalkService.java
... | ... | @@ -4,7 +4,7 @@ |
| 4 | 4 |
|
| 5 | 5 |
import javax.servlet.http.HttpServletRequest; |
| 6 | 6 |
|
| 7 |
-import itn.let.kakao.kakaoComm.KakaoSendAdvcVO; |
|
| 7 |
+import itn.let.kakao.kakaoComm.KakaoReturnVO; |
|
| 8 | 8 |
import itn.let.kakao.kakaoComm.KakaoVO; |
| 9 | 9 |
import itn.let.mail.service.StatusResponse; |
| 10 | 10 |
import itn.let.mjo.msgdata.service.MjonMsgReturnVO; |
... | ... | @@ -29,4 +29,7 @@ |
| 29 | 29 |
public List<KakaoVO> selectKakaoSentRefundListForSingle() throws Exception; |
| 30 | 30 |
|
| 31 | 31 |
public void kakaoSingleRefund(KakaoVO kakaoVO) throws Exception; |
| 32 |
+ |
|
| 33 |
+ //발신 프로필 등록 처리 |
|
| 34 |
+ public KakaoReturnVO createKaKaoProfile(KakaoVO kakaoVO) throws Exception; |
|
| 32 | 35 |
} |
--- src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
+++ src/main/java/itn/let/kakao/user/kakaoAt/service/impl/KakaoAlimTalkServiceImpl.java
... | ... | @@ -20,8 +20,6 @@ |
| 20 | 20 |
import org.springframework.beans.factory.annotation.Autowired; |
| 21 | 21 |
import org.springframework.http.HttpStatus; |
| 22 | 22 |
import org.springframework.stereotype.Service; |
| 23 |
-import org.springframework.transaction.annotation.Propagation; |
|
| 24 |
-import org.springframework.transaction.annotation.Transactional; |
|
| 25 | 23 |
|
| 26 | 24 |
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; |
| 27 | 25 |
import egovframework.rte.fdl.idgnr.EgovIdGnrService; |
... | ... | @@ -29,9 +27,11 @@ |
| 29 | 27 |
import itn.com.cmm.LoginVO; |
| 30 | 28 |
import itn.com.utl.fcc.service.EgovStringUtil; |
| 31 | 29 |
import itn.let.kakao.kakaoComm.BizKakaoPriceVO; |
| 30 |
+import itn.let.kakao.kakaoComm.KakaoReturnVO; |
|
| 32 | 31 |
import itn.let.kakao.kakaoComm.KakaoSendAdvcVO; |
| 33 | 32 |
import itn.let.kakao.kakaoComm.KakaoSendUtil; |
| 34 | 33 |
import itn.let.kakao.kakaoComm.KakaoVO; |
| 34 |
+import itn.let.kakao.kakaoComm.kakaoApi.service.KakaoApiService; |
|
| 35 | 35 |
import itn.let.kakao.user.kakaoAt.service.KakaoAlimTalkService; |
| 36 | 36 |
import itn.let.mail.service.StatusResponse; |
| 37 | 37 |
import itn.let.mjo.mjocommon.MjonCommon; |
... | ... | @@ -86,6 +86,9 @@ |
| 86 | 86 |
/** userManageService */ |
| 87 | 87 |
@Resource(name = "userManageService") |
| 88 | 88 |
private EgovUserManageService userManageService; |
| 89 |
+ |
|
| 90 |
+ @Resource(name = "kakaoApiService") |
|
| 91 |
+ private KakaoApiService kakaoApiService; |
|
| 89 | 92 |
|
| 90 | 93 |
@Autowired |
| 91 | 94 |
private MjonPayDAO mjonPayDAO; |
... | ... | @@ -1253,5 +1256,31 @@ |
| 1253 | 1256 |
|
| 1254 | 1257 |
|
| 1255 | 1258 |
|
| 1259 |
+ @Override |
|
| 1260 |
+ public KakaoReturnVO createKaKaoProfile(KakaoVO kakaoVO) throws Exception {
|
|
| 1261 |
+ KakaoReturnVO returnVO = new KakaoReturnVO(); |
|
| 1262 |
+ |
|
| 1263 |
+ /* senderKey 사용 우무 */ |
|
| 1264 |
+ int profileCnt = kakaoApiService.selectKakaoProfileCnt(kakaoVO); |
|
| 1265 |
+ if(profileCnt > 0) {
|
|
| 1266 |
+ returnVO.setBizReturnMsg("이미 등록된 발신프로필입니다. 동일 채널ID는 중복 등록이 불가합니다.");
|
|
| 1267 |
+ }else {
|
|
| 1268 |
+ List<KakaoVO> delProfileList = new ArrayList<KakaoVO>(); |
|
| 1269 |
+ delProfileList = selectDeleteProfileInfo(kakaoVO); |
|
| 1270 |
+ |
|
| 1271 |
+ if(delProfileList.size() != 0) {
|
|
| 1272 |
+ kakaoVO.setProfileId(delProfileList.get(0).getProfileId()); |
|
| 1273 |
+ kakaoVO.setDeleteYn("N");
|
|
| 1274 |
+ updateKakaoProfileStatus(kakaoVO); |
|
| 1275 |
+ returnVO.setBizReturnMsg("삭제 발신프로필의 복구가 완료 되었습니다.");
|
|
| 1276 |
+ }else {
|
|
| 1277 |
+ kakaoApiService.insertKakaoProfileInfo(kakaoVO); |
|
| 1278 |
+ returnVO.setBizReturnMsg("발신프로필의 등록이 완료 되었습니다.");
|
|
| 1279 |
+ } |
|
| 1280 |
+ |
|
| 1281 |
+ } |
|
| 1282 |
+ return returnVO; |
|
| 1283 |
+ } |
|
| 1284 |
+ |
|
| 1256 | 1285 |
|
| 1257 | 1286 |
} |
--- src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkController.java
+++ src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkController.java
... | ... | @@ -96,7 +96,10 @@ |
| 96 | 96 |
|
| 97 | 97 |
KakaoReturnVO tmpProfileVO = kakaoApiProfile.kakaoApiProfileList(kakaoProfileVO); |
| 98 | 98 |
|
| 99 |
- resultApiProfileList.add(tmpProfileVO); |
|
| 99 |
+ /* API를 통하여 정상적으로 조회된 프로필만 add 처리 */ |
|
| 100 |
+ if("200".equals(tmpProfileVO.getBizReturnCode())) {
|
|
| 101 |
+ resultApiProfileList.add(tmpProfileVO); |
|
| 102 |
+ } |
|
| 100 | 103 |
|
| 101 | 104 |
} |
| 102 | 105 |
|
... | ... | @@ -137,21 +140,8 @@ |
| 137 | 140 |
|
| 138 | 141 |
KakaoReturnVO kakaoInfo = kakaoApiProfile.kakaoApiProfileToken(kakaoVO); //발신프로필 인증 토큰 요청하기 |
| 139 | 142 |
|
| 140 |
- String bizReturnCd = kakaoInfo.getBizReturnCode(); |
|
| 141 |
- String bizReturnMsg = kakaoInfo.getBizReturnMsg(); |
|
| 142 |
- |
|
| 143 |
- List<KakaoVO> delProfileList = new ArrayList<KakaoVO>(); |
|
| 144 |
- if(bizReturnCd.equals("310") && bizReturnMsg.equals("이미 등록되어 있는 발신프로필 입니다")) {
|
|
| 145 |
- |
|
| 146 |
- kakaoVO.setUserId(userId); |
|
| 147 |
- delProfileList = kakaoAlimTalkService.selectDeleteProfileInfo(kakaoVO); |
|
| 148 |
- |
|
| 149 |
- } |
|
| 150 |
- |
|
| 151 |
- int listSize = delProfileList.size(); |
|
| 152 | 143 |
modelAndView.addObject("kakaoInfo", kakaoInfo);
|
| 153 | 144 |
modelAndView.addObject("result", "success");
|
| 154 |
- modelAndView.addObject("delInfoCnt", listSize);
|
|
| 155 | 145 |
|
| 156 | 146 |
}catch(Exception ex){
|
| 157 | 147 |
ex.printStackTrace(); |
... | ... | @@ -269,68 +259,14 @@ |
| 269 | 259 |
kakaoVO.setLastUpdusrId(userId); |
| 270 | 260 |
KakaoReturnVO kakaoInfo = kakaoApiProfile.kakaoApiProfileCreate(kakaoVO); |
| 271 | 261 |
|
| 272 |
- String bizReturnCd = kakaoInfo.getBizReturnCode(); |
|
| 273 |
- String bizReturnMsg = kakaoInfo.getBizReturnMsg(); |
|
| 274 |
- |
|
| 275 |
- System.out.println(bizReturnCd); |
|
| 276 |
- System.out.println(bizReturnMsg); |
|
| 277 |
- |
|
| 278 |
- /* |
|
| 279 |
- * 기존에 등록된 발신프로필이라고 결과가 오는 경우 데이터베이스에서 삭제 기록을 조회해 본다. |
|
| 280 |
- * 삭제 기록이 있는 경우 복구를 해주고(deleteYn 값을 'N'으로 변경) |
|
| 281 |
- * 기록이 없는 경우 타 사이트에 등록되었을 수 있음. |
|
| 282 |
- * |
|
| 283 |
- * */ |
|
| 284 |
- |
|
| 285 |
- List<KakaoVO> delProfileList = new ArrayList<KakaoVO>(); |
|
| 286 |
- if((bizReturnCd.equals("509") && bizReturnMsg.equals("이미 사용중인 카카오톡 채널입니다.")) || (bizReturnCd.equals("310") && bizReturnMsg.equals("이미 등록되어 있는 발신프로필 입니다"))) {
|
|
| 287 |
- |
|
| 288 |
- delProfileList = kakaoAlimTalkService.selectDeleteProfileInfo(kakaoVO); |
|
| 289 |
- |
|
| 262 |
+ if("200".equals(kakaoInfo.getBizReturnCode())) {
|
|
| 263 |
+ kakaoVO.setSenderKey(kakaoInfo.getSenderKey()); |
|
| 264 |
+ KakaoReturnVO internalReuslt = kakaoAlimTalkService.createKaKaoProfile(kakaoVO); |
|
| 265 |
+ kakaoInfo.setBizReturnMsg(internalReuslt.getBizReturnMsg()); |
|
| 290 | 266 |
} |
| 291 | 267 |
|
| 292 |
- //삭제처리된 발신프로필이 있는 경우 |
|
| 293 |
- if(delProfileList != null && delProfileList.size() > 0) {
|
|
| 294 |
- |
|
| 295 |
- int resultCnt = 0; |
|
| 296 |
- for(int i=0; i< delProfileList.size(); i++) {
|
|
| 297 |
- |
|
| 298 |
- KakaoVO tmpKakaoVO = new KakaoVO(); |
|
| 299 |
- tmpKakaoVO.setUserId(userId); |
|
| 300 |
- tmpKakaoVO.setProfileId(delProfileList.get(i).getProfileId()); |
|
| 301 |
- tmpKakaoVO.setDeleteYn("N");
|
|
| 302 |
- |
|
| 303 |
- int count = kakaoAlimTalkService.updateKakaoProfileStatus(tmpKakaoVO); |
|
| 304 |
- |
|
| 305 |
- resultCnt = resultCnt + count; |
|
| 306 |
- |
|
| 307 |
- } |
|
| 308 |
- |
|
| 309 |
- KakaoReturnVO kakaoReturnVO = new KakaoReturnVO(); |
|
| 310 |
- if(resultCnt > 0) {
|
|
| 311 |
- |
|
| 312 |
- kakaoReturnVO.setBizReturnCode("200");
|
|
| 313 |
- kakaoReturnVO.setBizReturnMsg("삭제 발신프로필의 복구가 완료 되었습니다.");
|
|
| 314 |
- modelAndView.addObject("kakaoInfo", kakaoReturnVO);
|
|
| 315 |
- modelAndView.addObject("result", "success");
|
|
| 316 |
- |
|
| 317 |
- }else {
|
|
| 318 |
- |
|
| 319 |
- kakaoReturnVO.setBizReturnCode("200");
|
|
| 320 |
- kakaoReturnVO.setBizReturnMsg("삭제 발신프로필의 복구에 오류가 발생하였습니다.");
|
|
| 321 |
- modelAndView.addObject("kakaoInfo", kakaoReturnVO);
|
|
| 322 |
- modelAndView.addObject("result", "zeroUpdate");
|
|
| 323 |
- |
|
| 324 |
- } |
|
| 325 |
- |
|
| 326 |
- |
|
| 327 |
- }else {//삭제된 내역이 없는 경우 타 사이트에 발신프로필이 등록되어 있을 수 있다.
|
|
| 328 |
- |
|
| 329 |
- modelAndView.addObject("kakaoInfo", kakaoInfo);
|
|
| 330 |
- modelAndView.addObject("result", "success");
|
|
| 331 |
- |
|
| 332 |
- } |
|
| 333 |
- |
|
| 268 |
+ modelAndView.addObject("kakaoInfo", kakaoInfo);
|
|
| 269 |
+ modelAndView.addObject("result", "success");
|
|
| 334 | 270 |
|
| 335 | 271 |
} |
| 336 | 272 |
}catch(Exception ex){
|
--- src/main/java/itn/let/mjo/addr/web/AddrGroupController.java
+++ src/main/java/itn/let/mjo/addr/web/AddrGroupController.java
... | ... | @@ -74,7 +74,7 @@ |
| 74 | 74 |
private EgovMberManageService mberManageService; |
| 75 | 75 |
|
| 76 | 76 |
@Resource(name = "KmcCertChecker") |
| 77 |
- private KmcCertChecker kmcCertCheck; |
|
| 77 |
+ private KmcCertChecker kmcCertChecker; |
|
| 78 | 78 |
|
| 79 | 79 |
/** |
| 80 | 80 |
* 주소록 그룹 리스트 |
... | ... | @@ -954,7 +954,7 @@ |
| 954 | 954 |
mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAddrSubmitAjax.do");
|
| 955 | 955 |
mberCertPhoneVO.setPlusInfo(mberManageVO.getMberId()); |
| 956 | 956 |
|
| 957 |
- AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); |
|
| 957 |
+ AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); |
|
| 958 | 958 |
|
| 959 | 959 |
modelAndView.addObject("tr_cert", certVO.getTr_cert());
|
| 960 | 960 |
modelAndView.addObject("tr_url", certVO.getTr_url());
|
... | ... | @@ -979,241 +979,16 @@ |
| 979 | 979 |
*/ |
| 980 | 980 |
|
| 981 | 981 |
@RequestMapping("/web/cop/kmc/authRequestAddrSubmitAjax.do")
|
| 982 |
- public String authRequestFindIdPwAjax(HttpServletRequest request, ModelMap model, |
|
| 983 |
- @RequestParam Map<String, Object> commandMap, @ModelAttribute("searchVO") KmcVO kmcVO,
|
|
| 984 |
- RedirectAttributes redirectAttributes) throws Exception {
|
|
| 982 |
+ public String authRequestFindIdPwAjax( |
|
| 983 |
+ HttpServletRequest request |
|
| 984 |
+ , HttpServletResponse response |
|
| 985 |
+ , ModelMap model |
|
| 986 |
+ , @RequestParam Map<String, Object> commandMap |
|
| 987 |
+ , @ModelAttribute("searchVO") KmcVO kmcVO
|
|
| 988 |
+ , RedirectAttributes redirectAttributes |
|
| 989 |
+ ) throws Exception {
|
|
| 985 | 990 |
|
| 986 |
- String errMessage = ""; // 에러메세지 |
|
| 987 |
- |
|
| 988 |
- String rec_cert = ""; // 결과값(암호화) |
|
| 989 |
- String certNum = ""; // certNum |
|
| 990 |
- |
|
| 991 |
- rec_cert = request.getParameter("rec_cert").trim();
|
|
| 992 |
- certNum = request.getParameter("certNum").trim();
|
|
| 993 |
- |
|
| 994 |
- kmcVO.setRecCert(rec_cert); |
|
| 995 |
- kmcVO.setCertNum(certNum); |
|
| 996 |
- // 파라미터 유효성 검증 |
|
| 997 |
- if (rec_cert.length() == 0 || certNum.length() == 0) {
|
|
| 998 |
- errMessage = "비정상"; |
|
| 999 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1000 |
- } |
|
| 1001 |
- |
|
| 1002 |
- // 변수선언 |
|
| 1003 |
- // -------------------------------------------------------------------------------------------------------- |
|
| 1004 |
- String k_certNum = ""; // 파라미터로 수신한 요청번호 |
|
| 1005 |
- k_certNum = certNum; |
|
| 1006 |
- String date = ""; // 요청일시 |
|
| 1007 |
- String CI = ""; // 연계정보(CI) |
|
| 1008 |
- String DI = ""; // 중복가입확인정보(DI) |
|
| 1009 |
- String phoneNo = ""; // 휴대폰번호 |
|
| 1010 |
- String phoneCorp = ""; // 이동통신사 |
|
| 1011 |
- String birthDay = ""; // 생년월일 |
|
| 1012 |
- String gender = ""; // 성별 |
|
| 1013 |
- String nation = ""; // 내국인 |
|
| 1014 |
- String name = ""; // 성명 |
|
| 1015 |
- String M_name = ""; // 미성년자 성명 |
|
| 1016 |
- String M_birthDay = ""; // 미성년자 생년월일 |
|
| 1017 |
- String M_Gender = ""; // 미성년자 성별 |
|
| 1018 |
- String M_nation = ""; // 미성년자 내외국인 |
|
| 1019 |
- String result = ""; // 결과값 |
|
| 1020 |
- |
|
| 1021 |
- String certMet = ""; // 인증방법 |
|
| 1022 |
- String ip = ""; // ip주소 |
|
| 1023 |
- String plusInfo = ""; |
|
| 1024 |
- |
|
| 1025 |
- String encPara = ""; |
|
| 1026 |
- String encMsg1 = ""; |
|
| 1027 |
- String encMsg2 = ""; |
|
| 1028 |
- String msgChk = ""; |
|
| 1029 |
- |
|
| 1030 |
- com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); |
|
| 1031 |
- |
|
| 1032 |
- // 02. 1차 복호화 |
|
| 1033 |
- // 수신된 certNum를 이용하여 복호화 |
|
| 1034 |
- rec_cert = seed.getDec(rec_cert, k_certNum); |
|
| 1035 |
- |
|
| 1036 |
- // 03. 1차 파싱 |
|
| 1037 |
- int inf1 = rec_cert.indexOf("/", 0);
|
|
| 1038 |
- int inf2 = rec_cert.indexOf("/", inf1 + 1);
|
|
| 1039 |
- |
|
| 1040 |
- encPara = rec_cert.substring(0, inf1); // 암호화된 통합 파라미터 |
|
| 1041 |
- encMsg1 = rec_cert.substring(inf1 + 1, inf2); // 암호화된 통합 파라미터의 Hash값 |
|
| 1042 |
- |
|
| 1043 |
- // 04. 위변조 검증 |
|
| 1044 |
- encMsg2 = seed.getMsg(encPara); |
|
| 1045 |
- kmcVO.setEncMsg2(encMsg2); |
|
| 1046 |
- if (encMsg2.equals(encMsg1)) {
|
|
| 1047 |
- msgChk = "Y"; |
|
| 1048 |
- } |
|
| 1049 |
- |
|
| 1050 |
- if (!"Y".equals(msgChk)) {
|
|
| 1051 |
- errMessage = "비정상접근입니다."; |
|
| 1052 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1053 |
- } |
|
| 1054 |
- |
|
| 1055 |
- // 05. 2차 복호화 |
|
| 1056 |
- rec_cert = seed.getDec(encPara, k_certNum); |
|
| 1057 |
- kmcVO.setRecCert(rec_cert); |
|
| 1058 |
- // 06. 2차 파싱 |
|
| 1059 |
- int info1 = rec_cert.indexOf("/", 0);
|
|
| 1060 |
- int info2 = rec_cert.indexOf("/", info1 + 1);
|
|
| 1061 |
- int info3 = rec_cert.indexOf("/", info2 + 1);
|
|
| 1062 |
- int info4 = rec_cert.indexOf("/", info3 + 1);
|
|
| 1063 |
- int info5 = rec_cert.indexOf("/", info4 + 1);
|
|
| 1064 |
- int info6 = rec_cert.indexOf("/", info5 + 1);
|
|
| 1065 |
- int info7 = rec_cert.indexOf("/", info6 + 1);
|
|
| 1066 |
- int info8 = rec_cert.indexOf("/", info7 + 1);
|
|
| 1067 |
- int info9 = rec_cert.indexOf("/", info8 + 1);
|
|
| 1068 |
- int info10 = rec_cert.indexOf("/", info9 + 1);
|
|
| 1069 |
- int info11 = rec_cert.indexOf("/", info10 + 1);
|
|
| 1070 |
- int info12 = rec_cert.indexOf("/", info11 + 1);
|
|
| 1071 |
- int info13 = rec_cert.indexOf("/", info12 + 1);
|
|
| 1072 |
- int info14 = rec_cert.indexOf("/", info13 + 1);
|
|
| 1073 |
- int info15 = rec_cert.indexOf("/", info14 + 1);
|
|
| 1074 |
- int info16 = rec_cert.indexOf("/", info15 + 1);
|
|
| 1075 |
- int info17 = rec_cert.indexOf("/", info16 + 1);
|
|
| 1076 |
- int info18 = rec_cert.indexOf("/", info17 + 1);
|
|
| 1077 |
- |
|
| 1078 |
- certNum = rec_cert.substring(0, info1); |
|
| 1079 |
- kmcVO.setCertNum(certNum); |
|
| 1080 |
- date = rec_cert.substring(info1 + 1, info2); |
|
| 1081 |
- kmcVO.setDate(date); |
|
| 1082 |
- CI = rec_cert.substring(info2 + 1, info3); |
|
| 1083 |
- kmcVO.setCI(CI); |
|
| 1084 |
- phoneNo = rec_cert.substring(info3 + 1, info4); |
|
| 1085 |
- kmcVO.setPhoneNo(phoneNo); |
|
| 1086 |
- phoneCorp = rec_cert.substring(info4 + 1, info5); |
|
| 1087 |
- kmcVO.setPhoneCorp(phoneCorp); |
|
| 1088 |
- birthDay = rec_cert.substring(info5 + 1, info6); |
|
| 1089 |
- kmcVO.setBirthDay(birthDay); |
|
| 1090 |
- gender = rec_cert.substring(info6 + 1, info7); |
|
| 1091 |
- kmcVO.setGender(gender); |
|
| 1092 |
- nation = rec_cert.substring(info7 + 1, info8); |
|
| 1093 |
- kmcVO.setNation(nation); |
|
| 1094 |
- name = rec_cert.substring(info8 + 1, info9); |
|
| 1095 |
- kmcVO.setName(name); |
|
| 1096 |
- result = rec_cert.substring(info9 + 1, info10); |
|
| 1097 |
- kmcVO.setResult(result); |
|
| 1098 |
- certMet = rec_cert.substring(info10 + 1, info11); |
|
| 1099 |
- kmcVO.setCertMet(certMet); |
|
| 1100 |
- ip = rec_cert.substring(info11 + 1, info12); |
|
| 1101 |
- kmcVO.setIp(ip); |
|
| 1102 |
- M_name = rec_cert.substring(info12 + 1, info13); |
|
| 1103 |
- kmcVO.setMName(M_name); |
|
| 1104 |
- M_birthDay = rec_cert.substring(info13 + 1, info14); |
|
| 1105 |
- kmcVO.setMBirthDay(M_birthDay); |
|
| 1106 |
- M_Gender = rec_cert.substring(info14 + 1, info15); |
|
| 1107 |
- kmcVO.setMGender(M_Gender); |
|
| 1108 |
- M_nation = rec_cert.substring(info15 + 1, info16); |
|
| 1109 |
- kmcVO.setMNation(M_nation); |
|
| 1110 |
- plusInfo = rec_cert.substring(info16 + 1, info17); |
|
| 1111 |
- kmcVO.setPlusInfo(plusInfo); |
|
| 1112 |
- DI = rec_cert.substring(info17 + 1, info18); |
|
| 1113 |
- kmcVO.setDI(DI); |
|
| 1114 |
- |
|
| 1115 |
- // 07. CI, DI 복호화 |
|
| 1116 |
- CI = seed.getDec(CI, k_certNum); |
|
| 1117 |
- kmcVO.setCI(CI); |
|
| 1118 |
- DI = seed.getDec(DI, k_certNum); |
|
| 1119 |
- kmcVO.setDI(DI); |
|
| 1120 |
- |
|
| 1121 |
- if ("Y".equals(result)) {
|
|
| 1122 |
- |
|
| 1123 |
- } |
|
| 1124 |
- |
|
| 1125 |
- // -------------------------------------------------------------- |
|
| 1126 |
- String regex = ""; |
|
| 1127 |
- if (certNum.length() == 0 || certNum.length() > 40) {
|
|
| 1128 |
- errMessage = "요청번호 비정상."; |
|
| 1129 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1130 |
- } |
|
| 1131 |
- |
|
| 1132 |
- regex = "[0-9]*"; |
|
| 1133 |
- if (date.length() != 14 || !paramChk(regex, date)) {
|
|
| 1134 |
- errMessage = "요청일시"; |
|
| 1135 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1136 |
- } |
|
| 1137 |
- |
|
| 1138 |
- regex = "[A-Z]*"; |
|
| 1139 |
- if (certMet.length() != 1 || !paramChk(regex, certMet)) {
|
|
| 1140 |
- errMessage = "본인인증방법 비정상" + certMet; |
|
| 1141 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1142 |
- } |
|
| 1143 |
- |
|
| 1144 |
- regex = "[0-9]*"; |
|
| 1145 |
- if ((phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo)) {
|
|
| 1146 |
- errMessage = "휴대폰번호 비정상"; |
|
| 1147 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1148 |
- } |
|
| 1149 |
- |
|
| 1150 |
- regex = "[A-Z]*"; |
|
| 1151 |
- if (phoneCorp.length() != 3 || !paramChk(regex, phoneCorp)) {
|
|
| 1152 |
- errMessage = "이동통신사 비정상"; |
|
| 1153 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1154 |
- } |
|
| 1155 |
- |
|
| 1156 |
- regex = "[0-9]*"; |
|
| 1157 |
- if (birthDay.length() != 8 || !paramChk(regex, birthDay)) {
|
|
| 1158 |
- errMessage = "생년월일 비정상"; |
|
| 1159 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1160 |
- } |
|
| 1161 |
- |
|
| 1162 |
- regex = "[0-9]*"; |
|
| 1163 |
- if (gender.length() != 1 || !paramChk(regex, gender)) {
|
|
| 1164 |
- errMessage = "성별 비정상"; |
|
| 1165 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1166 |
- } |
|
| 1167 |
- |
|
| 1168 |
- regex = "[0-9]*"; |
|
| 1169 |
- if (nation.length() != 1 || !paramChk(regex, nation)) {
|
|
| 1170 |
- errMessage = "내/외국인 비정상"; |
|
| 1171 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1172 |
- } |
|
| 1173 |
- |
|
| 1174 |
- regex = "[\\sA-Za-z가-�R.,-]*"; |
|
| 1175 |
- if (name.length() > 60 || !paramChk(regex, name)) {
|
|
| 1176 |
- errMessage = "성명 비정상"; |
|
| 1177 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1178 |
- } |
|
| 1179 |
- |
|
| 1180 |
- regex = "[A-Z]*"; |
|
| 1181 |
- if (result.length() != 1 || !paramChk(regex, result)) {
|
|
| 1182 |
- errMessage = "결과값 비정상"; |
|
| 1183 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1184 |
- } |
|
| 1185 |
- |
|
| 1186 |
- regex = "[\\sA-Za-z가-?.,-]*"; |
|
| 1187 |
- if (M_name.length() != 0) {
|
|
| 1188 |
- if (M_name.length() > 60 || !paramChk(regex, M_name)) {
|
|
| 1189 |
- errMessage = "미성년자 성명 비정상"; |
|
| 1190 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1191 |
- } |
|
| 1192 |
- } |
|
| 1193 |
- |
|
| 1194 |
- regex = "[0-9]*"; |
|
| 1195 |
- if (M_birthDay.length() != 0) {
|
|
| 1196 |
- if (M_birthDay.length() != 8 || !paramChk(regex, M_birthDay)) {
|
|
| 1197 |
- errMessage = "미성년자 생년월일 비정상"; |
|
| 1198 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1199 |
- } |
|
| 1200 |
- } |
|
| 1201 |
- |
|
| 1202 |
- regex = "[0-9]*"; |
|
| 1203 |
- if (M_Gender.length() != 0) {
|
|
| 1204 |
- if (M_Gender.length() != 1 || !paramChk(regex, M_Gender)) {
|
|
| 1205 |
- errMessage = "미성년자 성별 비정상"; |
|
| 1206 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1207 |
- } |
|
| 1208 |
- } |
|
| 1209 |
- |
|
| 1210 |
- regex = "[0-9]*"; |
|
| 1211 |
- if (M_nation.length() != 0) {
|
|
| 1212 |
- if (M_nation.length() != 1 || !paramChk(regex, M_nation)) {
|
|
| 1213 |
- errMessage = "미성년자 내/외국인 비정상"; |
|
| 1214 |
- return returnPage(model, errMessage, kmcVO); |
|
| 1215 |
- } |
|
| 1216 |
- } |
|
| 991 |
+ kmcVO = kmcCertChecker.authCertResult(request, response, model); |
|
| 1217 | 992 |
|
| 1218 | 993 |
// KMC 본인인증 로그 |
| 1219 | 994 |
AuthCertVO certVO = new AuthCertVO(); |
--- src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
+++ src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
... | ... | @@ -3,6 +3,8 @@ |
| 3 | 3 |
import java.io.IOException; |
| 4 | 4 |
import java.io.UnsupportedEncodingException; |
| 5 | 5 |
import java.text.SimpleDateFormat; |
| 6 |
+import java.time.LocalDate; |
|
| 7 |
+import java.time.format.DateTimeFormatter; |
|
| 6 | 8 |
import java.util.Calendar; |
| 7 | 9 |
import java.util.Date; |
| 8 | 10 |
import java.util.List; |
... | ... | @@ -16,10 +18,8 @@ |
| 16 | 18 |
import org.apache.commons.httpclient.methods.PostMethod; |
| 17 | 19 |
import org.json.simple.JSONObject; |
| 18 | 20 |
import org.springframework.beans.factory.annotation.Value; |
| 19 |
-import org.springframework.stereotype.Component; |
|
| 20 | 21 |
import org.springframework.stereotype.Service; |
| 21 |
- |
|
| 22 |
-import com.mysql.jdbc.StringUtils; |
|
| 22 |
+import org.springframework.transaction.annotation.Transactional; |
|
| 23 | 23 |
|
| 24 | 24 |
import egovframework.com.idgen.CustomIdGnrService; |
| 25 | 25 |
import egovframework.rte.fdl.cmmn.exception.FdlException; |
... | ... | @@ -27,17 +27,22 @@ |
| 27 | 27 |
import itn.com.cmm.OptimalMsgResultDTO; |
| 28 | 28 |
import itn.com.cmm.util.MsgSendUtils; |
| 29 | 29 |
import itn.com.cmm.util.SlackMessageFormatUtil; |
| 30 |
+import itn.com.cmm.util.StringUtil; |
|
| 30 | 31 |
import itn.let.kakao.kakaoComm.KakaoSendAdvcVO; |
| 31 | 32 |
import itn.let.kakao.kakaoComm.KakaoVO; |
| 32 | 33 |
import itn.let.mail.service.StatusResponse; |
| 33 | 34 |
import itn.let.mjo.event.service.MjonEventService; |
| 34 | 35 |
import itn.let.mjo.event.service.MjonEventVO; |
| 35 | 36 |
import itn.let.mjo.msg.service.MjonMsgVO; |
| 37 |
+import itn.let.mjo.msg.service.impl.MjonMsgDAO; |
|
| 38 |
+import itn.let.mjo.msgdata.service.MjonMsgDataService; |
|
| 39 |
+import itn.let.mjo.msgdata.service.MjonMsgReturnVO; |
|
| 36 | 40 |
import itn.let.mjo.msgholiday.service.MsgAlarmSetVO; |
| 37 | 41 |
import itn.let.mjo.msgholiday.service.MsgHolidayService; |
| 38 | 42 |
import itn.let.mjo.msgholiday.service.MsgHolidayVO; |
| 39 | 43 |
import itn.let.sym.site.service.EgovSiteManagerService; |
| 40 | 44 |
import itn.let.sym.site.service.JoinSettingVO; |
| 45 |
+import itn.let.uat.uia.web.SendLogVO; |
|
| 41 | 46 |
import itn.let.uss.umt.service.EgovUserManageService; |
| 42 | 47 |
import itn.let.uss.umt.service.UserManageVO; |
| 43 | 48 |
import lombok.extern.slf4j.Slf4j; |
... | ... | @@ -70,6 +75,12 @@ |
| 70 | 75 |
|
| 71 | 76 |
@Resource(name = "egovMjonMsgIdCGnrService") |
| 72 | 77 |
private CustomIdGnrService idgenMsgCId; |
| 78 |
+ |
|
| 79 |
+ @Resource(name = "mjonMsgDAO") |
|
| 80 |
+ private MjonMsgDAO mjonMsgDAO; |
|
| 81 |
+ |
|
| 82 |
+ @Resource(name = "MjonMsgDataService") |
|
| 83 |
+ private MjonMsgDataService mjonMsgDataService; |
|
| 73 | 84 |
|
| 74 | 85 |
|
| 75 | 86 |
|
... | ... | @@ -784,8 +795,120 @@ |
| 784 | 795 |
return result; |
| 785 | 796 |
} |
| 786 | 797 |
|
| 798 |
+ public void sendMessagesIfOverFifty(int cnt, String callTo) throws Exception {
|
|
| 799 |
+ if( |
|
| 800 |
+ cnt >= 50 //50건 이상일 경우만 발송 |
|
| 801 |
+ && StringUtil.isNotEmpty(callTo) // null, "" 체크 |
|
| 802 |
+ && callTo.startsWith("010") // 010으로 시작하는 휴대폰번호일 경우
|
|
| 803 |
+ && "Y".equals(selectSmsNotiIfOverFiftySetting()) // 안내문자 발송 on 인경우만 |
|
| 804 |
+ && !sysMsgTodaySendYn(callTo) // 금일 1회 이상 보낸 이력없을 경우만 발송 |
|
| 805 |
+ ) {
|
|
| 806 |
+ |
|
| 807 |
+ //50건이상 발송 안내문자 구분값 = 01 |
|
| 808 |
+ String sendMsgType = "01"; |
|
| 809 |
+ String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
| 810 |
+ String contents = "[인터넷 대량문자발송안내] 문자온에서 "+ callTo + " 번호로 " + today + "에 인터넷 대량 문자(50통 이상)가 발송되었습니다." |
|
| 811 |
+ + "\n※ 번호도용이 의심되는 경우, 이용 중인 이동통신사의 휴대전화 번호도용 문자차단 부가서비스(무료)에 가입하여 피해를 예방할 수 있습니다."; |
|
| 812 |
+ this.sendSysMsg( |
|
| 813 |
+ "15518011" |
|
| 814 |
+ , callTo |
|
| 815 |
+ , contents |
|
| 816 |
+ , sendMsgType |
|
| 817 |
+ ); |
|
| 818 |
+ } |
|
| 819 |
+ } |
|
| 787 | 820 |
|
| 821 |
+ /** |
|
| 822 |
+ * Method Name : sendSysMsg |
|
| 823 |
+ * Description : 관리자 안내 문자 공통 |
|
| 824 |
+ * |
|
| 825 |
+ * @param callFrom : 발신번호 |
|
| 826 |
+ * @param callTo : 수신번호 |
|
| 827 |
+ * @param contents : 내용 |
|
| 828 |
+ * @param sendMsgType : 발신내용 타입 - 01: 대량문자발송안내 |
|
| 829 |
+ * @return |
|
| 830 |
+ * @throws Exception |
|
| 831 |
+ * @return MjonMsgReturnVO 설명 |
|
| 832 |
+ */ |
|
| 833 |
+ @Transactional(rollbackFor = Exception.class) |
|
| 834 |
+ public MjonMsgReturnVO sendSysMsg( |
|
| 835 |
+ String callFrom |
|
| 836 |
+ , String callTo |
|
| 837 |
+ , String contents |
|
| 838 |
+ , String sendMsgType |
|
| 839 |
+ ) throws Exception {
|
|
| 840 |
+ |
|
| 841 |
+ //결과 vo |
|
| 842 |
+ MjonMsgReturnVO returnVO = new MjonMsgReturnVO(); |
|
| 843 |
+ |
|
| 844 |
+ MjonMsgVO mjonMsgVO = new MjonMsgVO(); |
|
| 845 |
+ mjonMsgVO.setSmsTxt(contents); |
|
| 846 |
+ mjonMsgVO.setReserveYn("N");
|
|
| 847 |
+ // 시스템 문자발송 번호 |
|
| 848 |
+// mjonMsgVO.setCallFrom("15518011");
|
|
| 849 |
+ mjonMsgVO.setCallFrom(callFrom); |
|
| 850 |
+ mjonMsgVO.setCallTo(callTo); |
|
| 851 |
+ |
|
| 852 |
+ mjonMsgVO.setUserId("system");
|
|
| 853 |
+ |
|
| 854 |
+ /* |
|
| 855 |
+ * 본문길이에 따른 단문/장문 구분 |
|
| 856 |
+ * 단문 4 |
|
| 857 |
+ * 장문 6 |
|
| 858 |
+ * 2000자 이상 invalid |
|
| 859 |
+ */ |
|
| 860 |
+ String msgType = MsgSendUtils.getMsgTypeWithByteValidation(new MjonMsgSendVO(), contents);// |
|
| 861 |
+ mjonMsgVO.setMsgType(msgType); |
|
| 862 |
+ |
|
| 863 |
+ // MsgDiv - S: 단문, L: 장문, P: 그림 |
|
| 864 |
+ if("4".equalsIgnoreCase(msgType)) {
|
|
| 865 |
+ mjonMsgVO.setMsgDiv("S");
|
|
| 866 |
+ }else if("6".equalsIgnoreCase(msgType)) {
|
|
| 867 |
+ mjonMsgVO.setMsgDiv("L");
|
|
| 868 |
+ } |
|
| 869 |
+ else { // invalid
|
|
| 870 |
+ returnVO.setMsgGroupId("");
|
|
| 871 |
+ returnVO.setSendMsgCnt("0"); // 발송 건수 저장
|
|
| 872 |
+ returnVO.setSendMsgBlockCnt("0"); // 수신차단 건수 저장
|
|
| 873 |
+ return returnVO; |
|
| 874 |
+ } |
|
| 875 |
+ |
|
| 876 |
+ // 문자타입별 대표전송사 정보 |
|
| 877 |
+ MjonMsgVO mjonMsgVO2 = new MjonMsgVO(); |
|
| 878 |
+ mjonMsgVO2 = mjonMsgDAO.selectRepMsgAgetnInfo(mjonMsgVO); |
|
| 879 |
+ // 전송사 구분 코드 - 01 : 아이하트, 02 : 현대 퓨쳐넷, 03 : 아이엠오, 04 : 다우기술 |
|
| 880 |
+ mjonMsgVO.setAgentCode(mjonMsgVO2.getAgentCode()); //전송사 선택 |
|
| 881 |
+ // 전송금액 |
|
| 882 |
+ mjonMsgVO.setTotPrice(mjonMsgVO2.getAgentPrice().toString()); //총금액 |
|
| 883 |
+ mjonMsgVO.setEachPrice(mjonMsgVO2.getAgentPrice().toString()); //한건 금액 |
|
| 884 |
+ |
|
| 885 |
+ returnVO = mjonMsgDataService.insertSysMsgDataInfo(mjonMsgVO); |
|
| 886 |
+ |
|
| 887 |
+ // 시스템 발송 로그 |
|
| 888 |
+ SendLogVO sendLogVO = new SendLogVO(); |
|
| 889 |
+ // SendType 1:문자로 발송 2:이메일로 발송 |
|
| 890 |
+ sendLogVO.setSendId(returnVO.getMsgGroupId()); |
|
| 891 |
+ sendLogVO.setSendType("1");
|
|
| 892 |
+ sendLogVO.setFrstSendInfo(mjonMsgVO.getCallFrom()); |
|
| 893 |
+ sendLogVO.setReceive(mjonMsgVO.getCallTo()); |
|
| 894 |
+ sendLogVO.setContents(contents); |
|
| 895 |
+ sendLogVO.setSendMsgType(sendMsgType); |
|
| 896 |
+ |
|
| 897 |
+ mjonMsgDataService.insertSysMsgLog(sendLogVO); |
|
| 898 |
+ |
|
| 899 |
+ return returnVO; |
|
| 900 |
+ } |
|
| 788 | 901 |
|
| 902 |
+ private Boolean sysMsgTodaySendYn(String callTo) throws Exception {
|
|
| 903 |
+ SendLogVO sendLogVO = new SendLogVO(); |
|
| 904 |
+ sendLogVO.setReceive(callTo); |
|
| 905 |
+ |
|
| 906 |
+ return mjonMsgDataService.selectSysMsgTodaySendYn(sendLogVO); |
|
| 907 |
+ } |
|
| 789 | 908 |
|
| 909 |
+ private String selectSmsNotiIfOverFiftySetting() throws Exception {
|
|
| 910 |
+ JoinSettingVO joinSettingVO = egovSiteManagerService.selectAdminNotiDetail(); |
|
| 911 |
+ return joinSettingVO.getSmsNotiIfOverFifty(); |
|
| 912 |
+ } |
|
| 790 | 913 |
|
| 791 | 914 |
} |
--- src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
+++ src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
... | ... | @@ -190,7 +190,7 @@ |
| 190 | 190 |
|
| 191 | 191 |
public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception; |
| 192 | 192 |
|
| 193 |
- |
|
| 193 |
+ public Boolean selectSysMsgTodaySendYn(SendLogVO sendLogVO) throws Exception; |
|
| 194 | 194 |
|
| 195 | 195 |
|
| 196 | 196 |
} |
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java
... | ... | @@ -403,6 +403,10 @@ |
| 403 | 403 |
return result; |
| 404 | 404 |
} |
| 405 | 405 |
|
| 406 |
+ public Boolean selectSysMsgTodaySendYn(SendLogVO sendLogVO) throws Exception{
|
|
| 407 |
+ return (Boolean) select("mjonMsgDataDAO.selectSysMsgTodaySendYn",sendLogVO);
|
|
| 408 |
+ } |
|
| 409 |
+ |
|
| 406 | 410 |
|
| 407 | 411 |
/** |
| 408 | 412 |
* 다량 데이터를 Batch 처리로 MJ_MSG_DATA 테이블에 INSERT |
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
... | ... | @@ -4224,6 +4224,17 @@ |
| 4224 | 4224 |
// int instCnt = mjonMsgDataDAO.insertMsgDataInfo_jdbc_advc(mjonMsgSendVOList); |
| 4225 | 4225 |
|
| 4226 | 4226 |
|
| 4227 |
+ //50건이상 문자발송 시 안내메시지 전송 |
|
| 4228 |
+ try {
|
|
| 4229 |
+ if( |
|
| 4230 |
+ "p".equals(userInfo.getDept()) // 개인회원일 경우에만 발송 |
|
| 4231 |
+ ) {
|
|
| 4232 |
+ mjonCommon.sendMessagesIfOverFifty(instTotalCnt, mjonMsgVO.getCallFrom()); |
|
| 4233 |
+ } |
|
| 4234 |
+ } catch (Exception e) {
|
|
| 4235 |
+ System.out.println("sendMessagesIfOverFifty method exception.");
|
|
| 4236 |
+ } |
|
| 4237 |
+ |
|
| 4227 | 4238 |
// TEST발송 시 발송 후 캐시가 있어야함. |
| 4228 | 4239 |
returnMap.put("afterCash", priceAndPoint.getBefCash(userId));
|
| 4229 | 4240 |
// |
... | ... | @@ -5191,4 +5202,9 @@ |
| 5191 | 5202 |
return returnVO; |
| 5192 | 5203 |
} |
| 5193 | 5204 |
|
| 5205 |
+ @Override |
|
| 5206 |
+ public Boolean selectSysMsgTodaySendYn(SendLogVO sendLogVO) throws Exception{
|
|
| 5207 |
+ return mjonMsgDataDAO.selectSysMsgTodaySendYn(sendLogVO); |
|
| 5208 |
+ } |
|
| 5209 |
+ |
|
| 5194 | 5210 |
} |
--- src/main/java/itn/let/mjo/pay/service/KmcVO.java
+++ src/main/java/itn/let/mjo/pay/service/KmcVO.java
... | ... | @@ -18,10 +18,10 @@ |
| 18 | 18 |
private String gender = ""; // 성별 |
| 19 | 19 |
private String nation = ""; // 내국인 |
| 20 | 20 |
private String name = ""; // 성명 |
| 21 |
- private String MName = ""; // 미성년자 성명 |
|
| 22 |
- private String MBirthDay = ""; // 미성년자 생년월일 |
|
| 23 |
- private String MGender = ""; // 미성년자 성별 |
|
| 24 |
- private String MNation = ""; // 미성년자 내외국인 |
|
| 21 |
+// private String MName = ""; // 미성년자 성명 |
|
| 22 |
+// private String MBirthDay = ""; // 미성년자 생년월일 |
|
| 23 |
+// private String MGender = ""; // 미성년자 성별 |
|
| 24 |
+// private String MNation = ""; // 미성년자 내외국인 |
|
| 25 | 25 |
private String result = ""; // 결과값 |
| 26 | 26 |
|
| 27 | 27 |
private String certMet = ""; // 인증방법 |
... | ... | @@ -40,6 +40,11 @@ |
| 40 | 40 |
|
| 41 | 41 |
private String idx = ""; //본인인증 로그 idx |
| 42 | 42 |
private String dnChk = ""; //본인명의 DN 체크 |
| 43 |
+ |
|
| 44 |
+ private String reserve1 = ""; |
|
| 45 |
+ private String reserve2 = ""; |
|
| 46 |
+ private String reserve3 = ""; |
|
| 47 |
+ private String reserve4 = ""; |
|
| 43 | 48 |
|
| 44 | 49 |
public String getUserId() {
|
| 45 | 50 |
return userId; |
... | ... | @@ -177,30 +182,6 @@ |
| 177 | 182 |
public void setCertNum(String certNum) {
|
| 178 | 183 |
this.certNum = certNum; |
| 179 | 184 |
} |
| 180 |
- public String getMName() {
|
|
| 181 |
- return MName; |
|
| 182 |
- } |
|
| 183 |
- public void setMName(String mName) {
|
|
| 184 |
- MName = mName; |
|
| 185 |
- } |
|
| 186 |
- public String getMBirthDay() {
|
|
| 187 |
- return MBirthDay; |
|
| 188 |
- } |
|
| 189 |
- public void setMBirthDay(String mBirthDay) {
|
|
| 190 |
- MBirthDay = mBirthDay; |
|
| 191 |
- } |
|
| 192 |
- public String getMGender() {
|
|
| 193 |
- return MGender; |
|
| 194 |
- } |
|
| 195 |
- public void setMGender(String mGender) {
|
|
| 196 |
- MGender = mGender; |
|
| 197 |
- } |
|
| 198 |
- public String getMNation() {
|
|
| 199 |
- return MNation; |
|
| 200 |
- } |
|
| 201 |
- public void setMNation(String mNation) {
|
|
| 202 |
- MNation = mNation; |
|
| 203 |
- } |
|
| 204 | 185 |
public String getRecCert() {
|
| 205 | 186 |
return recCert; |
| 206 | 187 |
} |
... | ... | @@ -225,7 +206,30 @@ |
| 225 | 206 |
public void setCertType(String certType) {
|
| 226 | 207 |
this.certType = certType; |
| 227 | 208 |
} |
| 228 |
- |
|
| 209 |
+ public String getReserve1() {
|
|
| 210 |
+ return reserve1; |
|
| 211 |
+ } |
|
| 212 |
+ public void setReserve1(String reserve1) {
|
|
| 213 |
+ this.reserve1 = reserve1; |
|
| 214 |
+ } |
|
| 215 |
+ public String getReserve2() {
|
|
| 216 |
+ return reserve2; |
|
| 217 |
+ } |
|
| 218 |
+ public void setReserve2(String reserve2) {
|
|
| 219 |
+ this.reserve2 = reserve2; |
|
| 220 |
+ } |
|
| 221 |
+ public String getReserve3() {
|
|
| 222 |
+ return reserve3; |
|
| 223 |
+ } |
|
| 224 |
+ public void setReserve3(String reserve3) {
|
|
| 225 |
+ this.reserve3 = reserve3; |
|
| 226 |
+ } |
|
| 227 |
+ public String getReserve4() {
|
|
| 228 |
+ return reserve4; |
|
| 229 |
+ } |
|
| 230 |
+ public void setReserve4(String reserve4) {
|
|
| 231 |
+ this.reserve4 = reserve4; |
|
| 232 |
+ } |
|
| 229 | 233 |
|
| 230 | 234 |
|
| 231 | 235 |
} |
--- src/main/java/itn/let/mjo/pay/web/MjonPayController.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayController.java
... | ... | @@ -91,6 +91,7 @@ |
| 91 | 91 |
import itn.let.sym.site.service.EgovSiteManagerService; |
| 92 | 92 |
import itn.let.sym.site.service.JoinSettingVO; |
| 93 | 93 |
import itn.let.uat.uia.service.AuthCertVO; |
| 94 |
+import itn.let.uat.uia.web.KmcCertChecker; |
|
| 94 | 95 |
import itn.let.uss.umt.service.EgovMberManageService; |
| 95 | 96 |
import itn.let.uss.umt.service.EgovUserManageService; |
| 96 | 97 |
import itn.let.uss.umt.service.MberManageVO; |
... | ... | @@ -165,7 +166,10 @@ |
| 165 | 166 |
EgovSiteManagerService egovSiteManagerService; |
| 166 | 167 |
|
| 167 | 168 |
@Resource(name = "mberGrdService") |
| 168 |
- MberGrdService mberGrdService; |
|
| 169 |
+ MberGrdService mberGrdService; |
|
| 170 |
+ |
|
| 171 |
+ @Resource(name = "KmcCertChecker") |
|
| 172 |
+ KmcCertChecker kmcCertChecker; |
|
| 169 | 173 |
|
| 170 | 174 |
//배열 정의{"컬럼순차번호, 컬럼이름, 컬럼내용, 컬럼이름에 붙여야할 내용(엑셀코드양식다운로드시 필요)"}
|
| 171 | 175 |
private String[][] sendPayExcelValue ={
|
... | ... | @@ -930,7 +934,7 @@ |
| 930 | 934 |
} |
| 931 | 935 |
|
| 932 | 936 |
/** |
| 933 |
- * 나이스페이(PG사 전송화면) |
|
| 937 |
+ * 회원가입 본인인증 |
|
| 934 | 938 |
* |
| 935 | 939 |
* @param |
| 936 | 940 |
* @return |
... | ... | @@ -941,270 +945,10 @@ |
| 941 | 945 |
ModelMap model , @RequestParam Map<String, Object> commandMap, |
| 942 | 946 |
@ModelAttribute("searchVO") KmcVO kmcVO) throws Exception {
|
| 943 | 947 |
|
| 944 |
- //크롬 SameSite정책 방지 - 도메인이 다른 타사로 이동 시 크롬 정책에 의해 세션 유실이 일어나는 경우가 있는데, 이를 방지하기 위해 samesite 보안을 none처리 |
|
| 945 |
- response.setHeader("Set-Cookie", "mberSession=mberSession; Secure; SameSite=None");
|
|
| 946 |
- |
|
| 947 |
- System.out.println("++++++++++++ 세션체크 ::: "+ session.getAttribute("mberSession"));
|
|
| 948 |
- |
|
| 949 |
- String errMessage = ""; //에러메세지 |
|
| 950 |
- |
|
| 951 |
- String rec_cert = ""; // 결과값(암호화) |
|
| 952 |
- String certNum = ""; // certNum |
|
| 953 |
- |
|
| 954 |
- rec_cert = request.getParameter("rec_cert").trim();
|
|
| 955 |
- certNum = request.getParameter("certNum").trim();
|
|
| 956 |
- |
|
| 957 |
- kmcVO.setRecCert(rec_cert); |
|
| 958 |
- kmcVO.setCertNum(certNum); |
|
| 959 |
- // 파라미터 유효성 검증 |
|
| 960 |
- if( rec_cert.length() == 0 || certNum.length() == 0 ){
|
|
| 961 |
- errMessage = "비정상"; |
|
| 962 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 963 |
- } |
|
| 964 |
- |
|
| 965 |
- |
|
| 966 |
- // 변수선언 -------------------------------------------------------------------------------------------------------- |
|
| 967 |
- String k_certNum = ""; // 파라미터로 수신한 요청번호 |
|
| 968 |
- k_certNum = certNum; |
|
| 969 |
- String date = ""; // 요청일시 |
|
| 970 |
- String CI = ""; // 연계정보(CI) |
|
| 971 |
- String DI = ""; // 중복가입확인정보(DI) |
|
| 972 |
- String phoneNo = ""; // 휴대폰번호 |
|
| 973 |
- String phoneCorp = ""; // 이동통신사 |
|
| 974 |
- String birthDay = ""; // 생년월일 |
|
| 975 |
- String gender = ""; // 성별 |
|
| 976 |
- String nation = ""; // 내국인 |
|
| 977 |
- String name = ""; // 성명 |
|
| 978 |
- String M_name = ""; // 미성년자 성명 |
|
| 979 |
- String M_birthDay = ""; // 미성년자 생년월일 |
|
| 980 |
- String M_Gender = ""; // 미성년자 성별 |
|
| 981 |
- String M_nation = ""; // 미성년자 내외국인 |
|
| 982 |
- String result = ""; // 결과값 |
|
| 983 |
- |
|
| 984 |
- String certMet = ""; // 인증방법 |
|
| 985 |
- String ip = ""; // ip주소 |
|
| 986 |
- String plusInfo = ""; |
|
| 987 |
- |
|
| 988 |
- String encPara = ""; |
|
| 989 |
- String encMsg1 = ""; |
|
| 990 |
- String encMsg2 = ""; |
|
| 991 |
- String msgChk = ""; |
|
| 992 |
- |
|
| 993 |
- com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); |
|
| 994 |
- |
|
| 995 |
- //02. 1차 복호화 |
|
| 996 |
- //수신된 certNum를 이용하여 복호화 |
|
| 997 |
- rec_cert = seed.getDec(rec_cert, k_certNum); |
|
| 998 |
- |
|
| 999 |
- //03. 1차 파싱 |
|
| 1000 |
- int inf1 = rec_cert.indexOf("/",0);
|
|
| 1001 |
- int inf2 = rec_cert.indexOf("/",inf1+1);
|
|
| 1002 |
- |
|
| 1003 |
- encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 |
|
| 1004 |
- encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 |
|
| 1005 |
- |
|
| 1006 |
- //04. 위변조 검증 |
|
| 1007 |
- encMsg2 = seed.getMsg(encPara); |
|
| 1008 |
- kmcVO.setEncMsg2(encMsg2); |
|
| 1009 |
- if(encMsg2.equals(encMsg1)){
|
|
| 1010 |
- msgChk="Y"; |
|
| 1011 |
- } |
|
| 1012 |
- |
|
| 1013 |
- if(!"Y".equals(msgChk)) {
|
|
| 1014 |
- errMessage = "비정상접근입니다."; |
|
| 1015 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1016 |
- } |
|
| 1017 |
- |
|
| 1018 |
- //05. 2차 복호화 |
|
| 1019 |
- rec_cert = seed.getDec(encPara, k_certNum); |
|
| 1020 |
- kmcVO.setRecCert(rec_cert); |
|
| 1021 |
- //06. 2차 파싱 |
|
| 1022 |
- int info1 = rec_cert.indexOf("/",0);
|
|
| 1023 |
- int info2 = rec_cert.indexOf("/",info1+1);
|
|
| 1024 |
- int info3 = rec_cert.indexOf("/",info2+1);
|
|
| 1025 |
- int info4 = rec_cert.indexOf("/",info3+1);
|
|
| 1026 |
- int info5 = rec_cert.indexOf("/",info4+1);
|
|
| 1027 |
- int info6 = rec_cert.indexOf("/",info5+1);
|
|
| 1028 |
- int info7 = rec_cert.indexOf("/",info6+1);
|
|
| 1029 |
- int info8 = rec_cert.indexOf("/",info7+1);
|
|
| 1030 |
- int info9 = rec_cert.indexOf("/",info8+1);
|
|
| 1031 |
- int info10 = rec_cert.indexOf("/",info9+1);
|
|
| 1032 |
- int info11 = rec_cert.indexOf("/",info10+1);
|
|
| 1033 |
- int info12 = rec_cert.indexOf("/",info11+1);
|
|
| 1034 |
- int info13 = rec_cert.indexOf("/",info12+1);
|
|
| 1035 |
- int info14 = rec_cert.indexOf("/",info13+1);
|
|
| 1036 |
- int info15 = rec_cert.indexOf("/",info14+1);
|
|
| 1037 |
- int info16 = rec_cert.indexOf("/",info15+1);
|
|
| 1038 |
- int info17 = rec_cert.indexOf("/",info16+1);
|
|
| 1039 |
- int info18 = rec_cert.indexOf("/",info17+1);
|
|
| 1040 |
- |
|
| 1041 |
- certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); |
|
| 1042 |
- date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); |
|
| 1043 |
- CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); |
|
| 1044 |
- phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); |
|
| 1045 |
- phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); |
|
| 1046 |
- birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); |
|
| 1047 |
- gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); |
|
| 1048 |
- nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); |
|
| 1049 |
- name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); |
|
| 1050 |
- result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); |
|
| 1051 |
- certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); |
|
| 1052 |
- ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); |
|
| 1053 |
- M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); |
|
| 1054 |
- M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); |
|
| 1055 |
- M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); |
|
| 1056 |
- M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); |
|
| 1057 |
- plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); |
|
| 1058 |
- DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); |
|
| 1059 |
- |
|
| 1060 |
- //07. CI, DI 복호화 |
|
| 1061 |
- CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); |
|
| 1062 |
- DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); |
|
| 1063 |
- |
|
| 1064 |
- if("Y".equals(result)) {
|
|
| 1065 |
- |
|
| 1066 |
- } |
|
| 1067 |
- |
|
| 1068 |
- //-------------------------------------------------------------- |
|
| 1069 |
- String regex = ""; |
|
| 1070 |
- if( certNum.length() == 0 || certNum.length() > 40){
|
|
| 1071 |
- errMessage = "요청번호 비정상."; |
|
| 1072 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1073 |
- } |
|
| 1074 |
- |
|
| 1075 |
- regex = "[0-9]*"; |
|
| 1076 |
- if( date.length() != 14 || !paramChk(regex, date) ){
|
|
| 1077 |
- errMessage = "요청일시"; |
|
| 1078 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1079 |
- } |
|
| 1080 |
- |
|
| 1081 |
- regex = "[A-Z]*"; |
|
| 1082 |
- if( certMet.length() != 1 || !paramChk(regex, certMet) ){
|
|
| 1083 |
- errMessage = "본인인증방법 비정상" + certMet; |
|
| 1084 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1085 |
- } |
|
| 1086 |
- |
|
| 1087 |
- |
|
| 1088 |
- regex = "[0-9]*"; |
|
| 1089 |
- if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){
|
|
| 1090 |
- errMessage = "휴대폰번호 비정상" ; |
|
| 1091 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1092 |
- } |
|
| 1093 |
- |
|
| 1094 |
- regex = "[A-Z]*"; |
|
| 1095 |
- if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){
|
|
| 1096 |
- errMessage = "이동통신사 비정상"; |
|
| 1097 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1098 |
- } |
|
| 1099 |
- |
|
| 1100 |
- regex = "[0-9]*"; |
|
| 1101 |
- if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){
|
|
| 1102 |
- errMessage = "생년월일 비정상"; |
|
| 1103 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1104 |
- } |
|
| 1105 |
- |
|
| 1106 |
- regex = "[0-9]*"; |
|
| 1107 |
- if( gender.length() != 1 || !paramChk(regex, gender) ){
|
|
| 1108 |
- errMessage = "성별 비정상"; |
|
| 1109 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1110 |
- } |
|
| 1111 |
- |
|
| 1112 |
- regex = "[0-9]*"; |
|
| 1113 |
- if( nation.length() != 1 || !paramChk(regex, nation) ){
|
|
| 1114 |
- errMessage = "내/외국인 비정상"; |
|
| 1115 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1116 |
- } |
|
| 1117 |
- |
|
| 1118 |
- regex = "[\\sA-Za-z가-�R.,-]*"; |
|
| 1119 |
- if( name.length() > 60 || !paramChk(regex, name) ){
|
|
| 1120 |
- errMessage = "성명 비정상"; |
|
| 1121 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1122 |
- } |
|
| 1123 |
- |
|
| 1124 |
- regex = "[A-Z]*"; |
|
| 1125 |
- if( result.length() != 1 || !paramChk(regex, result) ){
|
|
| 1126 |
- errMessage = "결과값 비정상"; |
|
| 1127 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1128 |
- } |
|
| 1129 |
- |
|
| 1130 |
- regex = "[\\sA-Za-z가-?.,-]*"; |
|
| 1131 |
- if( M_name.length() != 0 ){
|
|
| 1132 |
- if( M_name.length() > 60 || !paramChk(regex, M_name) ){
|
|
| 1133 |
- errMessage = "미성년자 성명 비정상"; |
|
| 1134 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1135 |
- } |
|
| 1136 |
- } |
|
| 1137 |
- |
|
| 1138 |
- regex = "[0-9]*"; |
|
| 1139 |
- if( M_birthDay.length() != 0 ){
|
|
| 1140 |
- if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){
|
|
| 1141 |
- errMessage = "미성년자 생년월일 비정상"; |
|
| 1142 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1143 |
- } |
|
| 1144 |
- } |
|
| 1145 |
- |
|
| 1146 |
- regex = "[0-9]*"; |
|
| 1147 |
- if( M_Gender.length() != 0 ){
|
|
| 1148 |
- if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){
|
|
| 1149 |
- errMessage = "미성년자 성별 비정상"; |
|
| 1150 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1151 |
- } |
|
| 1152 |
- } |
|
| 1153 |
- |
|
| 1154 |
- regex = "[0-9]*"; |
|
| 1155 |
- if( M_nation.length() != 0 ){
|
|
| 1156 |
- if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){
|
|
| 1157 |
- errMessage = "미성년자 내/외국인 비정상"; |
|
| 1158 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1159 |
- } |
|
| 1160 |
- } |
|
| 1161 |
- |
|
| 1162 |
- //본인인증 결과 내용 저장하기. |
|
| 1163 |
- /*System.out.println("+++++++++++++ getCertNum ::: "+kmcVO.getCertNum());
|
|
| 1164 |
- System.out.println("+++++++++++++ getDate ::: "+kmcVO.getDate());
|
|
| 1165 |
- System.out.println("+++++++++++++ getDI ::: "+kmcVO.getDI());
|
|
| 1166 |
- System.out.println("+++++++++++++ getPhoneNo ::: "+kmcVO.getPhoneNo());
|
|
| 1167 |
- System.out.println("+++++++++++++ getNation ::: "+kmcVO.getNation());
|
|
| 1168 |
- System.out.println("+++++++++++++ getName ::: "+kmcVO.getName());
|
|
| 1169 |
- System.out.println("+++++++++++++ getResult ::: "+kmcVO.getResult());
|
|
| 1170 |
- System.out.println("+++++++++++++ getCertMet ::: "+kmcVO.getCertMet());
|
|
| 1171 |
- System.out.println("+++++++++++++ getIp ::: "+kmcVO.getIp());*/
|
|
| 1172 |
- |
|
| 1173 |
- //KMC 본인인증 정보를 세션에 담아준다. |
|
| 1174 |
- /*AuthCertVO certVO = new AuthCertVO(); |
|
| 1175 |
- certVO.setCertNum(kmcVO.getCertNum()); |
|
| 1176 |
- certVO.setCertDate(kmcVO.getDate()); |
|
| 1177 |
- certVO.setCertDi(kmcVO.getDI()); |
|
| 1178 |
- certVO.setCertPhone(kmcVO.getPhoneNo()); |
|
| 1179 |
- certVO.setCertNation(kmcVO.getNation()); |
|
| 1180 |
- certVO.setCertName(kmcVO.getName()); |
|
| 1181 |
- certVO.setCertResult(kmcVO.getResult()); |
|
| 1182 |
- certVO.setCertType("KMC문자인증");
|
|
| 1183 |
- certVO.setCertIpaddr(kmcVO.getIp()); |
|
| 1184 |
- certVO.setBirthDay(kmcVO.getBirthDay()); |
|
| 1185 |
- certVO.setSexdstnCode(kmcVO.getGender());*/ |
|
| 1186 |
- |
|
| 1187 |
- /*request.getSession().setAttribute("AuthKmcCertVO", certVO);*/
|
|
| 1188 |
- |
|
| 1189 |
- /*System.out.println("++++++++++++ 세션체크22 ::: "+(MberManageVO) session.getAttribute("mberSession"));*/
|
|
| 1190 |
- |
|
| 1191 |
- //KMC 본인인증 로그 insert |
|
| 1192 |
- AuthCertVO certVO = new AuthCertVO(); |
|
| 1193 |
- certVO.setMberId(kmcVO.getPlusInfo()); |
|
| 1194 |
- certVO.setCertNum(kmcVO.getCertNum()); |
|
| 1195 |
- certVO.setCertDate(kmcVO.getDate()); |
|
| 1196 |
- certVO.setCertDi(kmcVO.getDI()); |
|
| 1197 |
- certVO.setCertPhone(kmcVO.getPhoneNo()); |
|
| 1198 |
- certVO.setCertNation(kmcVO.getNation()); |
|
| 1199 |
- certVO.setCertName(kmcVO.getName()); |
|
| 1200 |
- certVO.setCertResult(kmcVO.getResult()); |
|
| 1201 |
- certVO.setCertType("KMC_회원가입 인증");
|
|
| 1202 |
- certVO.setCertIpaddr(kmcVO.getIp()); |
|
| 1203 |
- certVO.setBirthDay(kmcVO.getBirthDay()); |
|
| 1204 |
- certVO.setSexdstnCode(kmcVO.getGender()); |
|
| 1205 |
- |
|
| 1206 |
- //디비 테이블에 저장하기 |
|
| 1207 |
- mberManageService.insertCertInfoLog(certVO); |
|
| 948 |
+ //kmc 본인인증 결과처리 |
|
| 949 |
+ kmcVO = kmcCertChecker.authCertResult(request, response, model); |
|
| 950 |
+ //kmc 본인인증 로그 처리 |
|
| 951 |
+ AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_회원가입 인증"); |
|
| 1208 | 952 |
|
| 1209 | 953 |
kmcVO.setIdx(certVO.getIdx()); //본인인증 로그 Idx - 로그 insert 후 idx selectKey |
| 1210 | 954 |
model.addAttribute("kmcVO", kmcVO);
|
... | ... | @@ -6179,5 +5923,6 @@ |
| 6179 | 5923 |
|
| 6180 | 5924 |
return p_response; |
| 6181 | 5925 |
} |
| 5926 |
+ |
|
| 6182 | 5927 |
} |
| 6183 | 5928 |
|
--- src/main/java/itn/let/schdlr/service/SchedulerUtil.java
+++ src/main/java/itn/let/schdlr/service/SchedulerUtil.java
... | ... | @@ -480,7 +480,8 @@ |
| 480 | 480 |
public LockProvider lockProvider(DataSource dataSource) {
|
| 481 | 481 |
return new JdbcTemplateLockProvider(dataSource); |
| 482 | 482 |
} |
| 483 |
- |
|
| 483 |
+ |
|
| 484 |
+// @Scheduled(cron = "0 0 0/2 * * ?") // 매시간 짝수 정각마다 실행 |
|
| 484 | 485 |
@Scheduled(cron = "0 0/3 * * * ?") // 3분마다 실행 |
| 485 | 486 |
@SchedulerLock(name = "runKakaoOneTime", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN) |
| 486 | 487 |
public void runKakaoOneTime() throws Exception {
|
--- src/main/java/itn/let/sym/site/service/JoinSettingVO.java
+++ src/main/java/itn/let/sym/site/service/JoinSettingVO.java
... | ... | @@ -65,6 +65,7 @@ |
| 65 | 65 |
private String slackNoti; //관리자 SLACK 알림 여부 |
| 66 | 66 |
private String smishingNoti; //첫결제(카드제외) 스미싱의심 알림 여부 |
| 67 | 67 |
private String holiSmishingNoti; //야간 스미싱알림 여부 |
| 68 |
+ private String smsNotiIfOverFifty; //50건이상 문자발송 시 안내문자 발송 |
|
| 68 | 69 |
|
| 69 | 70 |
|
| 70 | 71 |
} |
--- src/main/java/itn/let/uat/uia/service/EgovLoginService.java
+++ src/main/java/itn/let/uat/uia/service/EgovLoginService.java
... | ... | @@ -121,5 +121,4 @@ |
| 121 | 121 |
//비밀번호 실패 횟수 조회 |
| 122 | 122 |
public LoginVO selectPassMiss(LoginVO vo) throws Exception; |
| 123 | 123 |
|
| 124 |
- public KmcVO kmcDecryption(HttpServletRequest request, KmcVO kmcVO); |
|
| 125 | 124 |
} |
--- src/main/java/itn/let/uat/uia/service/impl/EgovLoginServiceImpl.java
+++ src/main/java/itn/let/uat/uia/service/impl/EgovLoginServiceImpl.java
... | ... | @@ -17,6 +17,7 @@ |
| 17 | 17 |
import egovframework.rte.psl.dataaccess.util.EgovMap; |
| 18 | 18 |
import itn.com.cmm.LoginVO; |
| 19 | 19 |
import itn.let.mjo.pay.service.KmcVO; |
| 20 |
+import itn.let.uat.uia.service.AuthCertVO; |
|
| 20 | 21 |
import itn.let.uat.uia.service.EgovLoginService; |
| 21 | 22 |
import itn.let.uss.umt.service.UserManageVO; |
| 22 | 23 |
import itn.let.utl.fcc.service.EgovNumberUtil; |
... | ... | @@ -318,240 +319,6 @@ |
| 318 | 319 |
return loginDAO.selectPassMiss(vo); |
| 319 | 320 |
} |
| 320 | 321 |
|
| 321 |
- |
|
| 322 |
- @Override |
|
| 323 |
- public KmcVO kmcDecryption(HttpServletRequest request, KmcVO kmcVO) {
|
|
| 324 |
- |
|
| 325 |
- |
|
| 326 |
- |
|
| 327 |
- String rec_cert = request.getParameter("rec_cert").trim();
|
|
| 328 |
- String certNum = request.getParameter("certNum").trim();
|
|
| 329 |
- |
|
| 330 |
- kmcVO.setRecCert(rec_cert); |
|
| 331 |
- kmcVO.setCertNum(certNum); |
|
| 332 |
- // 파라미터 유효성 검증 |
|
| 333 |
- if (rec_cert.length() == 0 || certNum.length() == 0) {
|
|
| 334 |
- kmcVO.setErrMessage("비정상");
|
|
| 335 |
- return kmcVO; |
|
| 336 |
- } |
|
| 337 |
- // 변수선언 |
|
| 338 |
- // -------------------------------------------------------------------------------------------------------- |
|
| 339 |
- String k_certNum = ""; // 파라미터로 수신한 요청번호 |
|
| 340 |
- k_certNum = certNum; |
|
| 341 |
- String date = ""; // 요청일시 |
|
| 342 |
- String CI = ""; // 연계정보(CI) |
|
| 343 |
- String DI = ""; // 중복가입확인정보(DI) |
|
| 344 |
- String phoneNo = ""; // 휴대폰번호 |
|
| 345 |
- String phoneCorp = ""; // 이동통신사 |
|
| 346 |
- String birthDay = ""; // 생년월일 |
|
| 347 |
- String gender = ""; // 성별 |
|
| 348 |
- String nation = ""; // 내국인 |
|
| 349 |
- String name = ""; // 성명 |
|
| 350 |
- String M_name = ""; // 미성년자 성명 |
|
| 351 |
- String M_birthDay = ""; // 미성년자 생년월일 |
|
| 352 |
- String M_Gender = ""; // 미성년자 성별 |
|
| 353 |
- String M_nation = ""; // 미성년자 내외국인 |
|
| 354 |
- String result = ""; // 결과값 |
|
| 355 |
- |
|
| 356 |
- String certMet = ""; // 인증방법 |
|
| 357 |
- String ip = ""; // ip주소 |
|
| 358 |
- String plusInfo = ""; |
|
| 359 |
- |
|
| 360 |
- String encPara = ""; |
|
| 361 |
- String encMsg1 = ""; |
|
| 362 |
- String encMsg2 = ""; |
|
| 363 |
- String msgChk = ""; |
|
| 364 |
- |
|
| 365 |
- IcertSecuManager seed = new IcertSecuManager(); |
|
| 366 |
- |
|
| 367 |
- // 02. 1차 복호화 |
|
| 368 |
- // 수신된 certNum를 이용하여 복호화 |
|
| 369 |
- rec_cert = seed.getDec(rec_cert, k_certNum); |
|
| 370 |
- |
|
| 371 |
- // 03. 1차 파싱 |
|
| 372 |
- int inf1 = rec_cert.indexOf("/", 0);
|
|
| 373 |
- int inf2 = rec_cert.indexOf("/", inf1 + 1);
|
|
| 374 |
- |
|
| 375 |
- encPara = rec_cert.substring(0, inf1); // 암호화된 통합 파라미터 |
|
| 376 |
- encMsg1 = rec_cert.substring(inf1 + 1, inf2); // 암호화된 통합 파라미터의 Hash값 |
|
| 377 |
- |
|
| 378 |
- // 04. 위변조 검증 |
|
| 379 |
- encMsg2 = seed.getMsg(encPara); |
|
| 380 |
- kmcVO.setEncMsg2(encMsg2); |
|
| 381 |
- if (encMsg2.equals(encMsg1)) {
|
|
| 382 |
- msgChk = "Y"; |
|
| 383 |
- } |
|
| 384 |
- |
|
| 385 |
- if (!"Y".equals(msgChk)) {
|
|
| 386 |
- kmcVO.setErrMessage("비정상접근입니다.");
|
|
| 387 |
- return kmcVO; |
|
| 388 |
- } |
|
| 389 |
- |
|
| 390 |
- // 05. 2차 복호화 |
|
| 391 |
- rec_cert = seed.getDec(encPara, k_certNum); |
|
| 392 |
- kmcVO.setRecCert(rec_cert); |
|
| 393 |
- // 06. 2차 파싱 |
|
| 394 |
- int info1 = rec_cert.indexOf("/", 0);
|
|
| 395 |
- int info2 = rec_cert.indexOf("/", info1 + 1);
|
|
| 396 |
- int info3 = rec_cert.indexOf("/", info2 + 1);
|
|
| 397 |
- int info4 = rec_cert.indexOf("/", info3 + 1);
|
|
| 398 |
- int info5 = rec_cert.indexOf("/", info4 + 1);
|
|
| 399 |
- int info6 = rec_cert.indexOf("/", info5 + 1);
|
|
| 400 |
- int info7 = rec_cert.indexOf("/", info6 + 1);
|
|
| 401 |
- int info8 = rec_cert.indexOf("/", info7 + 1);
|
|
| 402 |
- int info9 = rec_cert.indexOf("/", info8 + 1);
|
|
| 403 |
- int info10 = rec_cert.indexOf("/", info9 + 1);
|
|
| 404 |
- int info11 = rec_cert.indexOf("/", info10 + 1);
|
|
| 405 |
- int info12 = rec_cert.indexOf("/", info11 + 1);
|
|
| 406 |
- int info13 = rec_cert.indexOf("/", info12 + 1);
|
|
| 407 |
- int info14 = rec_cert.indexOf("/", info13 + 1);
|
|
| 408 |
- int info15 = rec_cert.indexOf("/", info14 + 1);
|
|
| 409 |
- int info16 = rec_cert.indexOf("/", info15 + 1);
|
|
| 410 |
- int info17 = rec_cert.indexOf("/", info16 + 1);
|
|
| 411 |
- int info18 = rec_cert.indexOf("/", info17 + 1);
|
|
| 412 |
- |
|
| 413 |
- certNum = rec_cert.substring(0, info1); |
|
| 414 |
- kmcVO.setCertNum(certNum); |
|
| 415 |
- date = rec_cert.substring(info1 + 1, info2); |
|
| 416 |
- kmcVO.setDate(date); |
|
| 417 |
- CI = rec_cert.substring(info2 + 1, info3); |
|
| 418 |
- kmcVO.setCI(CI); |
|
| 419 |
- phoneNo = rec_cert.substring(info3 + 1, info4); |
|
| 420 |
- kmcVO.setPhoneNo(phoneNo); |
|
| 421 |
- phoneCorp = rec_cert.substring(info4 + 1, info5); |
|
| 422 |
- kmcVO.setPhoneCorp(phoneCorp); |
|
| 423 |
- birthDay = rec_cert.substring(info5 + 1, info6); |
|
| 424 |
- kmcVO.setBirthDay(birthDay); |
|
| 425 |
- gender = rec_cert.substring(info6 + 1, info7); |
|
| 426 |
- kmcVO.setGender(gender); |
|
| 427 |
- nation = rec_cert.substring(info7 + 1, info8); |
|
| 428 |
- kmcVO.setNation(nation); |
|
| 429 |
- name = rec_cert.substring(info8 + 1, info9); |
|
| 430 |
- kmcVO.setName(name); |
|
| 431 |
- result = rec_cert.substring(info9 + 1, info10); |
|
| 432 |
- kmcVO.setResult(result); |
|
| 433 |
- certMet = rec_cert.substring(info10 + 1, info11); |
|
| 434 |
- kmcVO.setCertMet(certMet); |
|
| 435 |
- ip = rec_cert.substring(info11 + 1, info12); |
|
| 436 |
- kmcVO.setIp(ip); |
|
| 437 |
- M_name = rec_cert.substring(info12 + 1, info13); |
|
| 438 |
- kmcVO.setMName(M_name); |
|
| 439 |
- M_birthDay = rec_cert.substring(info13 + 1, info14); |
|
| 440 |
- kmcVO.setMBirthDay(M_birthDay); |
|
| 441 |
- M_Gender = rec_cert.substring(info14 + 1, info15); |
|
| 442 |
- kmcVO.setMGender(M_Gender); |
|
| 443 |
- M_nation = rec_cert.substring(info15 + 1, info16); |
|
| 444 |
- kmcVO.setMNation(M_nation); |
|
| 445 |
- plusInfo = rec_cert.substring(info16 + 1, info17); |
|
| 446 |
- kmcVO.setPlusInfo(plusInfo); |
|
| 447 |
- DI = rec_cert.substring(info17 + 1, info18); |
|
| 448 |
- kmcVO.setDI(DI); |
|
| 449 |
- |
|
| 450 |
- // 07. CI, DI 복호화 |
|
| 451 |
- CI = seed.getDec(CI, k_certNum); |
|
| 452 |
- kmcVO.setCI(CI); |
|
| 453 |
- DI = seed.getDec(DI, k_certNum); |
|
| 454 |
- kmcVO.setDI(DI); |
|
| 455 |
- |
|
| 456 |
- if ("Y".equals(result)) {
|
|
| 457 |
- |
|
| 458 |
- } |
|
| 459 |
- |
|
| 460 |
- // -------------------------------------------------------------- |
|
| 461 |
- String regex = ""; |
|
| 462 |
- if (certNum.length() == 0 || certNum.length() > 40) {
|
|
| 463 |
- kmcVO.setErrMessage("요청번호 비정상.");
|
|
| 464 |
- return kmcVO; |
|
| 465 |
- } |
|
| 466 |
- |
|
| 467 |
- regex = "[0-9]*"; |
|
| 468 |
- if (date.length() != 14 || !this.paramChk(regex, date)) {
|
|
| 469 |
- kmcVO.setErrMessage("요청일시");
|
|
| 470 |
- return kmcVO; |
|
| 471 |
- } |
|
| 472 |
- |
|
| 473 |
- regex = "[A-Z]*"; |
|
| 474 |
- if (certMet.length() != 1 || !this.paramChk(regex, certMet)) {
|
|
| 475 |
- kmcVO.setErrMessage("본인인증방법 비정상" + certMet);
|
|
| 476 |
- return kmcVO; |
|
| 477 |
- } |
|
| 478 |
- |
|
| 479 |
- regex = "[0-9]*"; |
|
| 480 |
- if ((phoneNo.length() != 10 && phoneNo.length() != 11) || !this.paramChk(regex, phoneNo)) {
|
|
| 481 |
- kmcVO.setErrMessage("휴대폰번호 비정상");
|
|
| 482 |
- return kmcVO; |
|
| 483 |
- } |
|
| 484 |
- |
|
| 485 |
- regex = "[A-Z]*"; |
|
| 486 |
- if (phoneCorp.length() != 3 || !this.paramChk(regex, phoneCorp)) {
|
|
| 487 |
- kmcVO.setErrMessage("이동통신사 비정상");
|
|
| 488 |
- return kmcVO; |
|
| 489 |
- } |
|
| 490 |
- |
|
| 491 |
- regex = "[0-9]*"; |
|
| 492 |
- if (birthDay.length() != 8 || !this.paramChk(regex, birthDay)) {
|
|
| 493 |
- kmcVO.setErrMessage("생년월일 비정상");
|
|
| 494 |
- return kmcVO; |
|
| 495 |
- } |
|
| 496 |
- |
|
| 497 |
- regex = "[0-9]*"; |
|
| 498 |
- if (gender.length() != 1 || !this.paramChk(regex, gender)) {
|
|
| 499 |
- kmcVO.setErrMessage("성별 비정상");
|
|
| 500 |
- return kmcVO; |
|
| 501 |
- } |
|
| 502 |
- |
|
| 503 |
- regex = "[0-9]*"; |
|
| 504 |
- if (nation.length() != 1 || !this.paramChk(regex, nation)) {
|
|
| 505 |
- kmcVO.setErrMessage("내/외국인 비정상");
|
|
| 506 |
- return kmcVO; |
|
| 507 |
- } |
|
| 508 |
- |
|
| 509 |
- regex = "[\\sA-Za-z가-�R.,-]*"; |
|
| 510 |
- if (name.length() > 60 || !this.paramChk(regex, name)) {
|
|
| 511 |
- kmcVO.setErrMessage("성명 비정상");
|
|
| 512 |
- return kmcVO; |
|
| 513 |
- } |
|
| 514 |
- |
|
| 515 |
- regex = "[A-Z]*"; |
|
| 516 |
- if (result.length() != 1 || !this.paramChk(regex, result)) {
|
|
| 517 |
- kmcVO.setErrMessage("결과값 비정상");
|
|
| 518 |
- return kmcVO; |
|
| 519 |
- } |
|
| 520 |
- |
|
| 521 |
- regex = "[\\sA-Za-z가-?.,-]*"; |
|
| 522 |
- if (M_name.length() != 0) {
|
|
| 523 |
- if (M_name.length() > 60 || !this.paramChk(regex, M_name)) {
|
|
| 524 |
- kmcVO.setErrMessage("미성년자 성명 비정상");
|
|
| 525 |
- return kmcVO; |
|
| 526 |
- } |
|
| 527 |
- } |
|
| 528 |
- |
|
| 529 |
- regex = "[0-9]*"; |
|
| 530 |
- if (M_birthDay.length() != 0) {
|
|
| 531 |
- if (M_birthDay.length() != 8 || !this.paramChk(regex, M_birthDay)) {
|
|
| 532 |
- kmcVO.setErrMessage("미성년자 생년월일 비정상");
|
|
| 533 |
- } |
|
| 534 |
- } |
|
| 535 |
- |
|
| 536 |
- regex = "[0-9]*"; |
|
| 537 |
- if (M_Gender.length() != 0) {
|
|
| 538 |
- if (M_Gender.length() != 1 || !paramChk(regex, M_Gender)) {
|
|
| 539 |
- kmcVO.setErrMessage("미성년자 성별 비정상");
|
|
| 540 |
- } |
|
| 541 |
- } |
|
| 542 |
- |
|
| 543 |
- regex = "[0-9]*"; |
|
| 544 |
- if (M_nation.length() != 0) {
|
|
| 545 |
- if (M_nation.length() != 1 || !this.paramChk(regex, M_nation)) {
|
|
| 546 |
- kmcVO.setErrMessage("미성년자 내/외국인 비정상");
|
|
| 547 |
- } |
|
| 548 |
- } |
|
| 549 |
- |
|
| 550 |
- |
|
| 551 |
- return kmcVO; |
|
| 552 |
- } |
|
| 553 |
- |
|
| 554 |
- |
|
| 555 | 322 |
public Boolean paramChk(String patn, String param) {
|
| 556 | 323 |
Pattern pattern = Pattern.compile(patn); |
| 557 | 324 |
Matcher matcher = pattern.matcher(param); |
--- src/main/java/itn/let/uat/uia/web/EgovLoginController.java
+++ src/main/java/itn/let/uat/uia/web/EgovLoginController.java
... | ... | @@ -253,7 +253,7 @@ |
| 253 | 253 |
private CertIpService certIpService; |
| 254 | 254 |
|
| 255 | 255 |
@Resource(name = "KmcCertChecker") |
| 256 |
- private KmcCertChecker kmcCertCheck; |
|
| 256 |
+ private KmcCertChecker kmcCertChecker; |
|
| 257 | 257 |
|
| 258 | 258 |
|
| 259 | 259 |
private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class); |
... | ... | @@ -336,7 +336,7 @@ |
| 336 | 336 |
|
| 337 | 337 |
MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO(); |
| 338 | 338 |
mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAjax.do");
|
| 339 |
- AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); |
|
| 339 |
+ AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); |
|
| 340 | 340 |
|
| 341 | 341 |
model.addAttribute("tr_cert", certVO.getTr_cert());
|
| 342 | 342 |
model.addAttribute("tr_url", certVO.getTr_url());
|
... | ... | @@ -385,7 +385,7 @@ |
| 385 | 385 |
mberCertPhoneVO.setNation(mberManageVO.getNationality()); |
| 386 | 386 |
mberCertPhoneVO.setBirthDay(mberManageVO.getBirth()); |
| 387 | 387 |
|
| 388 |
- AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); |
|
| 388 |
+ AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); |
|
| 389 | 389 |
|
| 390 | 390 |
// AuthCertVO certVO = kmcCertCheck.authCertCheckTwo(serverNm + "/web/cop/kmc/authRequestAjax.do", |
| 391 | 391 |
// mberManageVO.getMberNm(), mberManageVO.getMoblphonNo(), mberManageVO.getSexdstnCode(), |
... | ... | @@ -4035,7 +4035,7 @@ |
| 4035 | 4035 |
} |
| 4036 | 4036 |
mberCertPhoneVO.setPlusInfo(plusInfo); |
| 4037 | 4037 |
|
| 4038 |
- AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); |
|
| 4038 |
+ AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); |
|
| 4039 | 4039 |
|
| 4040 | 4040 |
modelAndView.addObject("tr_cert", certVO.getTr_cert());
|
| 4041 | 4041 |
modelAndView.addObject("tr_url", certVO.getTr_url());
|
... | ... | @@ -4060,22 +4060,26 @@ |
| 4060 | 4060 |
*/ |
| 4061 | 4061 |
|
| 4062 | 4062 |
@RequestMapping("/web/cop/kmc/authRequestFindIdPwAjax.do")
|
| 4063 |
- public String authRequestFindIdPwAjax(HttpServletRequest request, ModelMap model, |
|
| 4063 |
+ public String authRequestFindIdPwAjax(HttpServletRequest request, HttpServletResponse response, ModelMap model, |
|
| 4064 | 4064 |
@RequestParam Map<String, Object> commandMap, @ModelAttribute("searchVO") KmcVO kmcVO,
|
| 4065 | 4065 |
RedirectAttributes redirectAttributes) throws Exception {
|
| 4066 | 4066 |
|
| 4067 |
- KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO); |
|
| 4067 |
+// KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO); |
|
| 4068 |
+ //kmc 본인인증 결과처리 |
|
| 4069 |
+ kmcVO = kmcCertChecker.authCertResult(request, response, model); |
|
| 4070 |
+ //kmc 본인인증 로그 처리 |
|
| 4071 |
+ AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_아이디패스워드찾기"); |
|
| 4068 | 4072 |
|
| 4069 | 4073 |
String msg = ""; |
| 4070 |
- if (!findIdKmcCheck(kmcRVO.getDI(), kmcRVO.getName(), kmcRVO.getPhoneNo())) {
|
|
| 4074 |
+ if (!findIdKmcCheck(kmcVO.getDI(), kmcVO.getName(), kmcVO.getPhoneNo())) {
|
|
| 4071 | 4075 |
msg = "일치하는 정보가 없습니다."; |
| 4072 | 4076 |
redirectAttributes.addFlashAttribute("message", msg);
|
| 4073 | 4077 |
return "redirect:/web/user/findUserId.do"; |
| 4074 | 4078 |
} |
| 4075 | 4079 |
|
| 4076 |
- kmcRVO.setCertType("KMC_아이디패스워드찾기");
|
|
| 4077 |
- // 디비 테이블에 저장하기 |
|
| 4078 |
- mberManageService.insertCertInfoLogBn(kmcRVO); |
|
| 4080 |
+// kmcRVO.setCertType("KMC_아이디패스워드찾기");
|
|
| 4081 |
+// // 디비 테이블에 저장하기 |
|
| 4082 |
+// mberManageService.insertCertInfoLogBn(kmcRVO); |
|
| 4079 | 4083 |
|
| 4080 | 4084 |
model.addAttribute("kmcVO", kmcVO);
|
| 4081 | 4085 |
return "web/login/findUserIdKmcReqPage"; |
... | ... | @@ -4092,18 +4096,24 @@ |
| 4092 | 4096 |
* @discription 관리자 로그인 DN 값 최초 등록 |
| 4093 | 4097 |
*/ |
| 4094 | 4098 |
@RequestMapping("/web/cop/kmc/authRequestSelfLoginAjax.do")
|
| 4095 |
- public String authRequestSelfLoginAjax(HttpServletRequest request, ModelMap model, |
|
| 4099 |
+ public String authRequestSelfLoginAjax(HttpServletRequest request, HttpServletResponse response, ModelMap model, |
|
| 4096 | 4100 |
@RequestParam Map<String, Object> commandMap, @ModelAttribute("searchVO") KmcVO kmcVO,
|
| 4097 | 4101 |
RedirectAttributes redirectAttributes, HttpSession session) throws Exception {
|
| 4098 | 4102 |
|
| 4099 | 4103 |
UserManageVO userManageVO = new UserManageVO(); |
| 4100 | 4104 |
|
| 4101 |
- KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO); |
|
| 4105 |
+// KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO); |
|
| 4106 |
+ |
|
| 4107 |
+ //kmc 본인인증 결과처리 |
|
| 4108 |
+ kmcVO = kmcCertChecker.authCertResult(request, response, model); |
|
| 4109 |
+ //kmc 본인인증 로그 처리 |
|
| 4110 |
+ AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_아이디패스워드찾기"); |
|
| 4111 |
+ |
|
| 4102 | 4112 |
|
| 4103 |
- userManageVO.setCrtfcDnValue(kmcRVO.getDI()); |
|
| 4104 |
- userManageVO.setEmplyrNm(kmcRVO.getName()); |
|
| 4105 |
- userManageVO.setEmplyrId(kmcRVO.getPlusInfo().split(",,,")[0]);
|
|
| 4106 |
- userManageVO.setPassword(kmcRVO.getPlusInfo().split(",,,")[1]);
|
|
| 4113 |
+ userManageVO.setCrtfcDnValue(kmcVO.getDI()); |
|
| 4114 |
+ userManageVO.setEmplyrNm(kmcVO.getName()); |
|
| 4115 |
+ userManageVO.setEmplyrId(kmcVO.getPlusInfo().split(",,,")[0]);
|
|
| 4116 |
+ userManageVO.setPassword(kmcVO.getPlusInfo().split(",,,")[1]);
|
|
| 4107 | 4117 |
|
| 4108 | 4118 |
userManageService.updateCrtfcDnValue(userManageVO); |
| 4109 | 4119 |
|
... | ... | @@ -4121,20 +4131,20 @@ |
| 4121 | 4131 |
e.printStackTrace(); |
| 4122 | 4132 |
// TODO: handle exception |
| 4123 | 4133 |
} |
| 4124 |
- kmcRVO.setCertType("KMC_관리자미인증IP접속인증");
|
|
| 4125 |
- // 디비 테이블에 저장하기 |
|
| 4126 |
- |
|
| 4127 |
- try {
|
|
| 4128 |
- mberManageService.insertCertInfoLogBn(kmcRVO); |
|
| 4129 |
- |
|
| 4130 |
- } catch (Exception e) {
|
|
| 4131 |
- System.out.println("!!!!!!!!!!!!!!!!!");
|
|
| 4132 |
- e.printStackTrace(); |
|
| 4133 |
- // TODO: handle exception |
|
| 4134 |
- } |
|
| 4134 |
+// kmcRVO.setCertType("KMC_관리자미인증IP접속인증");
|
|
| 4135 |
+// // 디비 테이블에 저장하기 |
|
| 4136 |
+// |
|
| 4137 |
+// try {
|
|
| 4138 |
+// mberManageService.insertCertInfoLogBn(kmcRVO); |
|
| 4139 |
+// |
|
| 4140 |
+// } catch (Exception e) {
|
|
| 4141 |
+// System.out.println("!!!!!!!!!!!!!!!!!");
|
|
| 4142 |
+// e.printStackTrace(); |
|
| 4143 |
+// // TODO: handle exception |
|
| 4144 |
+// } |
|
| 4135 | 4145 |
|
| 4136 | 4146 |
|
| 4137 |
- model.addAttribute("kmcVO", kmcRVO);
|
|
| 4147 |
+ model.addAttribute("kmcVO", kmcVO);
|
|
| 4138 | 4148 |
|
| 4139 | 4149 |
System.out.println("======================================");
|
| 4140 | 4150 |
model.addAttribute("userManageVO", userManageVO);
|
... | ... | @@ -5425,7 +5435,7 @@ |
| 5425 | 5435 |
mberCertPhoneVO.setNation(KMCInfoVO.getNationality()); |
| 5426 | 5436 |
mberCertPhoneVO.setPlusInfo(loginVO.getId()); |
| 5427 | 5437 |
|
| 5428 |
- AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); |
|
| 5438 |
+ AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); |
|
| 5429 | 5439 |
|
| 5430 | 5440 |
modelAndView.addObject("tr_cert", certVO.getTr_cert());
|
| 5431 | 5441 |
modelAndView.addObject("tr_url", certVO.getTr_url());
|
... | ... | @@ -5446,245 +5456,19 @@ |
| 5446 | 5456 |
* |
| 5447 | 5457 |
*/ |
| 5448 | 5458 |
@RequestMapping("/web/cop/kmc/insertIPAjax.do")
|
| 5449 |
- public String insertIPAjax(HttpServletRequest request, ModelMap model, @RequestParam Map<String, Object> commandMap, |
|
| 5459 |
+ public String insertIPAjax(HttpServletRequest request, HttpServletResponse response, ModelMap model, @RequestParam Map<String, Object> commandMap, |
|
| 5450 | 5460 |
@ModelAttribute("searchVO") KmcVO kmcVO) throws Exception {
|
| 5451 | 5461 |
|
| 5452 |
- String errMessage = ""; // 에러메세지 |
|
| 5453 |
- |
|
| 5454 |
- String rec_cert = ""; // 결과값(암호화) |
|
| 5455 |
- String certNum = ""; // certNum |
|
| 5456 |
- |
|
| 5457 |
- rec_cert = request.getParameter("rec_cert").trim();
|
|
| 5458 |
- certNum = request.getParameter("certNum").trim();
|
|
| 5459 |
- |
|
| 5460 |
- kmcVO.setRecCert(rec_cert); |
|
| 5461 |
- kmcVO.setCertNum(certNum); |
|
| 5462 |
- // 파라미터 유효성 검증 |
|
| 5463 |
- if (rec_cert.length() == 0 || certNum.length() == 0) {
|
|
| 5464 |
- errMessage = "비정상"; |
|
| 5465 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5466 |
- } |
|
| 5467 |
- |
|
| 5468 |
- // 변수선언 |
|
| 5469 |
- // -------------------------------------------------------------------------------------------------------- |
|
| 5470 |
- String k_certNum = ""; // 파라미터로 수신한 요청번호 |
|
| 5471 |
- k_certNum = certNum; |
|
| 5472 |
- String date = ""; // 요청일시 |
|
| 5473 |
- String CI = ""; // 연계정보(CI) |
|
| 5474 |
- String DI = ""; // 중복가입확인정보(DI) |
|
| 5475 |
- String phoneNo = ""; // 휴대폰번호 |
|
| 5476 |
- String phoneCorp = ""; // 이동통신사 |
|
| 5477 |
- String birthDay = ""; // 생년월일 |
|
| 5478 |
- String gender = ""; // 성별 |
|
| 5479 |
- String nation = ""; // 내국인 |
|
| 5480 |
- String name = ""; // 성명 |
|
| 5481 |
- String M_name = ""; // 미성년자 성명 |
|
| 5482 |
- String M_birthDay = ""; // 미성년자 생년월일 |
|
| 5483 |
- String M_Gender = ""; // 미성년자 성별 |
|
| 5484 |
- String M_nation = ""; // 미성년자 내외국인 |
|
| 5485 |
- String result = ""; // 결과값 |
|
| 5486 |
- |
|
| 5487 |
- String certMet = ""; // 인증방법 |
|
| 5488 |
- String ip = ""; // ip주소 |
|
| 5489 |
- String plusInfo = ""; |
|
| 5490 |
- |
|
| 5491 |
- String encPara = ""; |
|
| 5492 |
- String encMsg1 = ""; |
|
| 5493 |
- String encMsg2 = ""; |
|
| 5494 |
- String msgChk = ""; |
|
| 5495 |
- |
|
| 5496 |
- com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); |
|
| 5497 |
- |
|
| 5498 |
- // 02. 1차 복호화 |
|
| 5499 |
- // 수신된 certNum를 이용하여 복호화 |
|
| 5500 |
- rec_cert = seed.getDec(rec_cert, k_certNum); |
|
| 5501 |
- |
|
| 5502 |
- // 03. 1차 파싱 |
|
| 5503 |
- int inf1 = rec_cert.indexOf("/", 0);
|
|
| 5504 |
- int inf2 = rec_cert.indexOf("/", inf1 + 1);
|
|
| 5505 |
- |
|
| 5506 |
- encPara = rec_cert.substring(0, inf1); // 암호화된 통합 파라미터 |
|
| 5507 |
- encMsg1 = rec_cert.substring(inf1 + 1, inf2); // 암호화된 통합 파라미터의 Hash값 |
|
| 5508 |
- |
|
| 5509 |
- // 04. 위변조 검증 |
|
| 5510 |
- encMsg2 = seed.getMsg(encPara); |
|
| 5511 |
- kmcVO.setEncMsg2(encMsg2); |
|
| 5512 |
- if (encMsg2.equals(encMsg1)) {
|
|
| 5513 |
- msgChk = "Y"; |
|
| 5514 |
- } |
|
| 5515 |
- |
|
| 5516 |
- if (!"Y".equals(msgChk)) {
|
|
| 5517 |
- errMessage = "비정상접근입니다."; |
|
| 5518 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5519 |
- } |
|
| 5520 |
- |
|
| 5521 |
- // 05. 2차 복호화 |
|
| 5522 |
- rec_cert = seed.getDec(encPara, k_certNum); |
|
| 5523 |
- kmcVO.setRecCert(rec_cert); |
|
| 5524 |
- // 06. 2차 파싱 |
|
| 5525 |
- int info1 = rec_cert.indexOf("/", 0);
|
|
| 5526 |
- int info2 = rec_cert.indexOf("/", info1 + 1);
|
|
| 5527 |
- int info3 = rec_cert.indexOf("/", info2 + 1);
|
|
| 5528 |
- int info4 = rec_cert.indexOf("/", info3 + 1);
|
|
| 5529 |
- int info5 = rec_cert.indexOf("/", info4 + 1);
|
|
| 5530 |
- int info6 = rec_cert.indexOf("/", info5 + 1);
|
|
| 5531 |
- int info7 = rec_cert.indexOf("/", info6 + 1);
|
|
| 5532 |
- int info8 = rec_cert.indexOf("/", info7 + 1);
|
|
| 5533 |
- int info9 = rec_cert.indexOf("/", info8 + 1);
|
|
| 5534 |
- int info10 = rec_cert.indexOf("/", info9 + 1);
|
|
| 5535 |
- int info11 = rec_cert.indexOf("/", info10 + 1);
|
|
| 5536 |
- int info12 = rec_cert.indexOf("/", info11 + 1);
|
|
| 5537 |
- int info13 = rec_cert.indexOf("/", info12 + 1);
|
|
| 5538 |
- int info14 = rec_cert.indexOf("/", info13 + 1);
|
|
| 5539 |
- int info15 = rec_cert.indexOf("/", info14 + 1);
|
|
| 5540 |
- int info16 = rec_cert.indexOf("/", info15 + 1);
|
|
| 5541 |
- int info17 = rec_cert.indexOf("/", info16 + 1);
|
|
| 5542 |
- int info18 = rec_cert.indexOf("/", info17 + 1);
|
|
| 5543 |
- |
|
| 5544 |
- certNum = rec_cert.substring(0, info1); |
|
| 5545 |
- kmcVO.setCertNum(certNum); |
|
| 5546 |
- date = rec_cert.substring(info1 + 1, info2); |
|
| 5547 |
- kmcVO.setDate(date); |
|
| 5548 |
- CI = rec_cert.substring(info2 + 1, info3); |
|
| 5549 |
- kmcVO.setCI(CI); |
|
| 5550 |
- phoneNo = rec_cert.substring(info3 + 1, info4); |
|
| 5551 |
- kmcVO.setPhoneNo(phoneNo); |
|
| 5552 |
- phoneCorp = rec_cert.substring(info4 + 1, info5); |
|
| 5553 |
- kmcVO.setPhoneCorp(phoneCorp); |
|
| 5554 |
- birthDay = rec_cert.substring(info5 + 1, info6); |
|
| 5555 |
- kmcVO.setBirthDay(birthDay); |
|
| 5556 |
- gender = rec_cert.substring(info6 + 1, info7); |
|
| 5557 |
- kmcVO.setGender(gender); |
|
| 5558 |
- nation = rec_cert.substring(info7 + 1, info8); |
|
| 5559 |
- kmcVO.setNation(nation); |
|
| 5560 |
- name = rec_cert.substring(info8 + 1, info9); |
|
| 5561 |
- kmcVO.setName(name); |
|
| 5562 |
- result = rec_cert.substring(info9 + 1, info10); |
|
| 5563 |
- kmcVO.setResult(result); |
|
| 5564 |
- certMet = rec_cert.substring(info10 + 1, info11); |
|
| 5565 |
- kmcVO.setCertMet(certMet); |
|
| 5566 |
- ip = rec_cert.substring(info11 + 1, info12); |
|
| 5567 |
- kmcVO.setIp(ip); |
|
| 5568 |
- M_name = rec_cert.substring(info12 + 1, info13); |
|
| 5569 |
- kmcVO.setMName(M_name); |
|
| 5570 |
- M_birthDay = rec_cert.substring(info13 + 1, info14); |
|
| 5571 |
- kmcVO.setMBirthDay(M_birthDay); |
|
| 5572 |
- M_Gender = rec_cert.substring(info14 + 1, info15); |
|
| 5573 |
- kmcVO.setMGender(M_Gender); |
|
| 5574 |
- M_nation = rec_cert.substring(info15 + 1, info16); |
|
| 5575 |
- kmcVO.setMNation(M_nation); |
|
| 5576 |
- plusInfo = rec_cert.substring(info16 + 1, info17); |
|
| 5577 |
- kmcVO.setPlusInfo(plusInfo); |
|
| 5578 |
- DI = rec_cert.substring(info17 + 1, info18); |
|
| 5579 |
- kmcVO.setDI(DI); |
|
| 5580 |
- |
|
| 5581 |
- // 07. CI, DI 복호화 |
|
| 5582 |
- CI = seed.getDec(CI, k_certNum); |
|
| 5583 |
- kmcVO.setCI(CI); |
|
| 5584 |
- DI = seed.getDec(DI, k_certNum); |
|
| 5585 |
- kmcVO.setDI(DI); |
|
| 5586 |
- |
|
| 5587 |
- if ("Y".equals(result)) {
|
|
| 5588 |
- |
|
| 5589 |
- } |
|
| 5590 |
- |
|
| 5591 |
- // -------------------------------------------------------------- |
|
| 5592 |
- String regex = ""; |
|
| 5593 |
- if (certNum.length() == 0 || certNum.length() > 40) {
|
|
| 5594 |
- errMessage = "요청번호 비정상."; |
|
| 5595 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5596 |
- } |
|
| 5597 |
- |
|
| 5598 |
- regex = "[0-9]*"; |
|
| 5599 |
- if (date.length() != 14 || !paramChk(regex, date)) {
|
|
| 5600 |
- errMessage = "요청일시"; |
|
| 5601 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5602 |
- } |
|
| 5603 |
- |
|
| 5604 |
- regex = "[A-Z]*"; |
|
| 5605 |
- if (certMet.length() != 1 || !paramChk(regex, certMet)) {
|
|
| 5606 |
- errMessage = "본인인증방법 비정상" + certMet; |
|
| 5607 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5608 |
- } |
|
| 5609 |
- |
|
| 5610 |
- regex = "[0-9]*"; |
|
| 5611 |
- if ((phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo)) {
|
|
| 5612 |
- errMessage = "휴대폰번호 비정상"; |
|
| 5613 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5614 |
- } |
|
| 5615 |
- |
|
| 5616 |
- regex = "[A-Z]*"; |
|
| 5617 |
- if (phoneCorp.length() != 3 || !paramChk(regex, phoneCorp)) {
|
|
| 5618 |
- errMessage = "이동통신사 비정상"; |
|
| 5619 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5620 |
- } |
|
| 5621 |
- |
|
| 5622 |
- regex = "[0-9]*"; |
|
| 5623 |
- if (birthDay.length() != 8 || !paramChk(regex, birthDay)) {
|
|
| 5624 |
- errMessage = "생년월일 비정상"; |
|
| 5625 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5626 |
- } |
|
| 5627 |
- |
|
| 5628 |
- regex = "[0-9]*"; |
|
| 5629 |
- if (gender.length() != 1 || !paramChk(regex, gender)) {
|
|
| 5630 |
- errMessage = "성별 비정상"; |
|
| 5631 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5632 |
- } |
|
| 5633 |
- |
|
| 5634 |
- regex = "[0-9]*"; |
|
| 5635 |
- if (nation.length() != 1 || !paramChk(regex, nation)) {
|
|
| 5636 |
- errMessage = "내/외국인 비정상"; |
|
| 5637 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5638 |
- } |
|
| 5639 |
- |
|
| 5640 |
- regex = "[\\sA-Za-z가-�R.,-]*"; |
|
| 5641 |
- if (name.length() > 60 || !paramChk(regex, name)) {
|
|
| 5642 |
- errMessage = "성명 비정상"; |
|
| 5643 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5644 |
- } |
|
| 5645 |
- |
|
| 5646 |
- regex = "[A-Z]*"; |
|
| 5647 |
- if (result.length() != 1 || !paramChk(regex, result)) {
|
|
| 5648 |
- errMessage = "결과값 비정상"; |
|
| 5649 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5650 |
- } |
|
| 5651 |
- |
|
| 5652 |
- regex = "[\\sA-Za-z가-?.,-]*"; |
|
| 5653 |
- if (M_name.length() != 0) {
|
|
| 5654 |
- if (M_name.length() > 60 || !paramChk(regex, M_name)) {
|
|
| 5655 |
- errMessage = "미성년자 성명 비정상"; |
|
| 5656 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5657 |
- } |
|
| 5658 |
- } |
|
| 5659 |
- |
|
| 5660 |
- regex = "[0-9]*"; |
|
| 5661 |
- if (M_birthDay.length() != 0) {
|
|
| 5662 |
- if (M_birthDay.length() != 8 || !paramChk(regex, M_birthDay)) {
|
|
| 5663 |
- errMessage = "미성년자 생년월일 비정상"; |
|
| 5664 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5665 |
- } |
|
| 5666 |
- } |
|
| 5667 |
- |
|
| 5668 |
- regex = "[0-9]*"; |
|
| 5669 |
- if (M_Gender.length() != 0) {
|
|
| 5670 |
- if (M_Gender.length() != 1 || !paramChk(regex, M_Gender)) {
|
|
| 5671 |
- errMessage = "미성년자 성별 비정상"; |
|
| 5672 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5673 |
- } |
|
| 5674 |
- } |
|
| 5675 |
- |
|
| 5676 |
- regex = "[0-9]*"; |
|
| 5677 |
- if (M_nation.length() != 0) {
|
|
| 5678 |
- if (M_nation.length() != 1 || !paramChk(regex, M_nation)) {
|
|
| 5679 |
- errMessage = "미성년자 내/외국인 비정상"; |
|
| 5680 |
- return returnPage(model, errMessage, kmcVO); |
|
| 5681 |
- } |
|
| 5682 |
- } |
|
| 5462 |
+ //kmc 본인인증 결과처리 |
|
| 5463 |
+ kmcVO = kmcCertChecker.authCertResult(request, response, model); |
|
| 5464 |
+ //kmc 본인인증 로그 처리 |
|
| 5465 |
+ AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "IP등록"); |
|
| 5466 |
+ |
|
| 5683 | 5467 |
LoginVO loginVO = new LoginVO(); |
| 5684 |
- loginVO.setId(plusInfo); |
|
| 5468 |
+ loginVO.setId(kmcVO.getPlusInfo()); |
|
| 5469 |
+ |
|
| 5685 | 5470 |
loginVO = loginService.selectKMCInfo(loginVO); |
| 5686 |
- String userIp = EgovClntInfo.getClntIP(request); |
|
| 5687 |
- loginVO.setIp(ip); |
|
| 5471 |
+ loginVO.setIp(kmcVO.getIp()); |
|
| 5688 | 5472 |
|
| 5689 | 5473 |
loginService.insertMberIp(loginVO); |
| 5690 | 5474 |
|
--- src/main/java/itn/let/uat/uia/web/EgovMypageController.java
+++ src/main/java/itn/let/uat/uia/web/EgovMypageController.java
... | ... | @@ -183,7 +183,7 @@ |
| 183 | 183 |
private CertIpService certIpService; |
| 184 | 184 |
|
| 185 | 185 |
@Resource(name = "KmcCertChecker") |
| 186 |
- private KmcCertChecker kmcCertCheck; |
|
| 186 |
+ private KmcCertChecker kmcCertChecker; |
|
| 187 | 187 |
|
| 188 | 188 |
/** |
| 189 | 189 |
* 마이페이지 비밀번호 변경 탭 |
... | ... | @@ -717,7 +717,7 @@ |
| 717 | 717 |
*/ |
| 718 | 718 |
@RequestMapping("/web/user/selectKmcMberInfoAjax.do")
|
| 719 | 719 |
public String selectKmcMberInfoAjax( |
| 720 |
- HttpServletRequest request, ModelMap model |
|
| 720 |
+ HttpServletRequest request, HttpServletResponse response, ModelMap model |
|
| 721 | 721 |
, @RequestParam Map<String, Object> commandMap |
| 722 | 722 |
, @ModelAttribute("searchVO") KmcVO kmcVO ) throws Exception {
|
| 723 | 723 |
|
... | ... | @@ -726,241 +726,14 @@ |
| 726 | 726 |
String mblDn = userManageService.selectUserMblDnById(loginVO.getId()); |
| 727 | 727 |
model.addAttribute("loginVO", loginVO);
|
| 728 | 728 |
|
| 729 |
- String errMessage = ""; //에러메세지 |
|
| 730 |
- |
|
| 731 |
- String rec_cert = ""; // 결과값(암호화) |
|
| 732 |
- String certNum = ""; // certNum |
|
| 733 |
- |
|
| 734 |
- rec_cert = request.getParameter("rec_cert").trim();
|
|
| 735 |
- certNum = request.getParameter("certNum").trim();
|
|
| 736 |
- |
|
| 737 |
- kmcVO.setRecCert(rec_cert); |
|
| 738 |
- kmcVO.setCertNum(certNum); |
|
| 739 |
- // 파라미터 유효성 검증 |
|
| 740 |
- if( rec_cert.length() == 0 || certNum.length() == 0 ){
|
|
| 741 |
- errMessage = "비정상"; |
|
| 742 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 743 |
- } |
|
| 744 |
- |
|
| 745 |
- |
|
| 746 |
- // 변수선언 -------------------------------------------------------------------------------------------------------- |
|
| 747 |
- String k_certNum = ""; // 파라미터로 수신한 요청번호 |
|
| 748 |
- k_certNum = certNum; |
|
| 749 |
- String date = ""; // 요청일시 |
|
| 750 |
- String CI = ""; // 연계정보(CI) |
|
| 751 |
- String DI = ""; // 중복가입확인정보(DI) |
|
| 752 |
- String phoneNo = ""; // 휴대폰번호 |
|
| 753 |
- String phoneCorp = ""; // 이동통신사 |
|
| 754 |
- String birthDay = ""; // 생년월일 |
|
| 755 |
- String gender = ""; // 성별 |
|
| 756 |
- String nation = ""; // 내국인 |
|
| 757 |
- String name = ""; // 성명 |
|
| 758 |
- String M_name = ""; // 미성년자 성명 |
|
| 759 |
- String M_birthDay = ""; // 미성년자 생년월일 |
|
| 760 |
- String M_Gender = ""; // 미성년자 성별 |
|
| 761 |
- String M_nation = ""; // 미성년자 내외국인 |
|
| 762 |
- String result = ""; // 결과값 |
|
| 763 |
- |
|
| 764 |
- String certMet = ""; // 인증방법 |
|
| 765 |
- String ip = ""; // ip주소 |
|
| 766 |
- String plusInfo = ""; |
|
| 767 |
- |
|
| 768 |
- String encPara = ""; |
|
| 769 |
- String encMsg1 = ""; |
|
| 770 |
- String encMsg2 = ""; |
|
| 771 |
- String msgChk = ""; |
|
| 772 |
- |
|
| 773 |
- com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); |
|
| 774 |
- |
|
| 775 |
- //02. 1차 복호화 |
|
| 776 |
- //수신된 certNum를 이용하여 복호화 |
|
| 777 |
- rec_cert = seed.getDec(rec_cert, k_certNum); |
|
| 778 |
- |
|
| 779 |
- //03. 1차 파싱 |
|
| 780 |
- int inf1 = rec_cert.indexOf("/",0);
|
|
| 781 |
- int inf2 = rec_cert.indexOf("/",inf1+1);
|
|
| 782 |
- |
|
| 783 |
- encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 |
|
| 784 |
- encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 |
|
| 785 |
- |
|
| 786 |
- //04. 위변조 검증 |
|
| 787 |
- encMsg2 = seed.getMsg(encPara); |
|
| 788 |
- kmcVO.setEncMsg2(encMsg2); |
|
| 789 |
- if(encMsg2.equals(encMsg1)){
|
|
| 790 |
- msgChk="Y"; |
|
| 791 |
- } |
|
| 792 |
- |
|
| 793 |
- if(!"Y".equals(msgChk)) {
|
|
| 794 |
- errMessage = "비정상접근입니다."; |
|
| 795 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 796 |
- } |
|
| 797 |
- |
|
| 798 |
- //05. 2차 복호화 |
|
| 799 |
- rec_cert = seed.getDec(encPara, k_certNum); |
|
| 800 |
- kmcVO.setRecCert(rec_cert); |
|
| 801 |
- //06. 2차 파싱 |
|
| 802 |
- int info1 = rec_cert.indexOf("/",0);
|
|
| 803 |
- int info2 = rec_cert.indexOf("/",info1+1);
|
|
| 804 |
- int info3 = rec_cert.indexOf("/",info2+1);
|
|
| 805 |
- int info4 = rec_cert.indexOf("/",info3+1);
|
|
| 806 |
- int info5 = rec_cert.indexOf("/",info4+1);
|
|
| 807 |
- int info6 = rec_cert.indexOf("/",info5+1);
|
|
| 808 |
- int info7 = rec_cert.indexOf("/",info6+1);
|
|
| 809 |
- int info8 = rec_cert.indexOf("/",info7+1);
|
|
| 810 |
- int info9 = rec_cert.indexOf("/",info8+1);
|
|
| 811 |
- int info10 = rec_cert.indexOf("/",info9+1);
|
|
| 812 |
- int info11 = rec_cert.indexOf("/",info10+1);
|
|
| 813 |
- int info12 = rec_cert.indexOf("/",info11+1);
|
|
| 814 |
- int info13 = rec_cert.indexOf("/",info12+1);
|
|
| 815 |
- int info14 = rec_cert.indexOf("/",info13+1);
|
|
| 816 |
- int info15 = rec_cert.indexOf("/",info14+1);
|
|
| 817 |
- int info16 = rec_cert.indexOf("/",info15+1);
|
|
| 818 |
- int info17 = rec_cert.indexOf("/",info16+1);
|
|
| 819 |
- int info18 = rec_cert.indexOf("/",info17+1);
|
|
| 820 |
- |
|
| 821 |
- certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); |
|
| 822 |
- date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); |
|
| 823 |
- CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); |
|
| 824 |
- phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); |
|
| 825 |
- phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); |
|
| 826 |
- birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); |
|
| 827 |
- gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); |
|
| 828 |
- nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); |
|
| 829 |
- name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); |
|
| 830 |
- result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); |
|
| 831 |
- certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); |
|
| 832 |
- ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); |
|
| 833 |
- M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); |
|
| 834 |
- M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); |
|
| 835 |
- M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); |
|
| 836 |
- M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); |
|
| 837 |
- plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); |
|
| 838 |
- DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); |
|
| 839 |
- |
|
| 840 |
- //07. CI, DI 복호화 |
|
| 841 |
- CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); |
|
| 842 |
- DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); |
|
| 843 |
- |
|
| 844 |
- if("Y".equals(result)) {
|
|
| 845 |
- |
|
| 846 |
- } |
|
| 847 |
- |
|
| 848 |
- //-------------------------------------------------------------- |
|
| 849 |
- String regex = ""; |
|
| 850 |
- if( certNum.length() == 0 || certNum.length() > 40){
|
|
| 851 |
- errMessage = "요청번호 비정상."; |
|
| 852 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 853 |
- } |
|
| 854 |
- |
|
| 855 |
- regex = "[0-9]*"; |
|
| 856 |
- if( date.length() != 14 || !paramChk(regex, date) ){
|
|
| 857 |
- errMessage = "요청일시"; |
|
| 858 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 859 |
- } |
|
| 860 |
- |
|
| 861 |
- regex = "[A-Z]*"; |
|
| 862 |
- if( certMet.length() != 1 || !paramChk(regex, certMet) ){
|
|
| 863 |
- errMessage = "본인인증방법 비정상" + certMet; |
|
| 864 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 865 |
- } |
|
| 866 |
- |
|
| 867 |
- |
|
| 868 |
- regex = "[0-9]*"; |
|
| 869 |
- if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){
|
|
| 870 |
- errMessage = "휴대폰번호 비정상" ; |
|
| 871 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 872 |
- } |
|
| 873 |
- |
|
| 874 |
- regex = "[A-Z]*"; |
|
| 875 |
- if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){
|
|
| 876 |
- errMessage = "이동통신사 비정상"; |
|
| 877 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 878 |
- } |
|
| 879 |
- |
|
| 880 |
- regex = "[0-9]*"; |
|
| 881 |
- if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){
|
|
| 882 |
- errMessage = "생년월일 비정상"; |
|
| 883 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 884 |
- } |
|
| 885 |
- |
|
| 886 |
- regex = "[0-9]*"; |
|
| 887 |
- if( gender.length() != 1 || !paramChk(regex, gender) ){
|
|
| 888 |
- errMessage = "성별 비정상"; |
|
| 889 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 890 |
- } |
|
| 891 |
- |
|
| 892 |
- regex = "[0-9]*"; |
|
| 893 |
- if( nation.length() != 1 || !paramChk(regex, nation) ){
|
|
| 894 |
- errMessage = "내/외국인 비정상"; |
|
| 895 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 896 |
- } |
|
| 897 |
- |
|
| 898 |
- regex = "[\\sA-Za-z가-�R.,-]*"; |
|
| 899 |
- if( name.length() > 60 || !paramChk(regex, name) ){
|
|
| 900 |
- errMessage = "성명 비정상"; |
|
| 901 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 902 |
- } |
|
| 903 |
- |
|
| 904 |
- regex = "[A-Z]*"; |
|
| 905 |
- if( result.length() != 1 || !paramChk(regex, result) ){
|
|
| 906 |
- errMessage = "결과값 비정상"; |
|
| 907 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 908 |
- } |
|
| 909 |
- |
|
| 910 |
- regex = "[\\sA-Za-z가-?.,-]*"; |
|
| 911 |
- if( M_name.length() != 0 ){
|
|
| 912 |
- if( M_name.length() > 60 || !paramChk(regex, M_name) ){
|
|
| 913 |
- errMessage = "미성년자 성명 비정상"; |
|
| 914 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 915 |
- } |
|
| 916 |
- } |
|
| 917 |
- |
|
| 918 |
- regex = "[0-9]*"; |
|
| 919 |
- if( M_birthDay.length() != 0 ){
|
|
| 920 |
- if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){
|
|
| 921 |
- errMessage = "미성년자 생년월일 비정상"; |
|
| 922 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 923 |
- } |
|
| 924 |
- } |
|
| 925 |
- |
|
| 926 |
- regex = "[0-9]*"; |
|
| 927 |
- if( M_Gender.length() != 0 ){
|
|
| 928 |
- if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){
|
|
| 929 |
- errMessage = "미성년자 성별 비정상"; |
|
| 930 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 931 |
- } |
|
| 932 |
- } |
|
| 933 |
- |
|
| 934 |
- regex = "[0-9]*"; |
|
| 935 |
- if( M_nation.length() != 0 ){
|
|
| 936 |
- if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){
|
|
| 937 |
- errMessage = "미성년자 내/외국인 비정상"; |
|
| 938 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 939 |
- } |
|
| 940 |
- } |
|
| 941 |
- |
|
| 942 |
- |
|
| 943 |
- //KMC 본인인증 로그 |
|
| 944 |
- AuthCertVO certVO = new AuthCertVO(); |
|
| 945 |
- certVO.setMberId(kmcVO.getPlusInfo()); |
|
| 946 |
- certVO.setCertNum(kmcVO.getCertNum()); |
|
| 947 |
- certVO.setCertDate(kmcVO.getDate()); |
|
| 948 |
- certVO.setCertDi(kmcVO.getDI()); |
|
| 949 |
- certVO.setCertPhone(kmcVO.getPhoneNo()); |
|
| 950 |
- certVO.setCertNation(kmcVO.getNation()); |
|
| 951 |
- certVO.setCertName(kmcVO.getName()); |
|
| 952 |
- certVO.setCertResult(kmcVO.getResult()); |
|
| 953 |
- certVO.setCertType("KMC_회원정보 변경");
|
|
| 954 |
- certVO.setCertIpaddr(kmcVO.getIp()); |
|
| 955 |
- certVO.setBirthDay(kmcVO.getBirthDay()); |
|
| 956 |
- certVO.setSexdstnCode(kmcVO.getGender()); |
|
| 957 |
- |
|
| 958 |
- //디비 테이블에 저장하기 |
|
| 959 |
- mberManageService.insertCertInfoLog(certVO); |
|
| 729 |
+ //kmc 본인인증 결과처리 |
|
| 730 |
+ kmcVO = kmcCertChecker.authCertResult(request, response, model); |
|
| 731 |
+ //kmc 본인인증 로그 처리 |
|
| 732 |
+ AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_회원정보 변경"); |
|
| 960 | 733 |
|
| 961 | 734 |
//개인회원일 시 기존 DN가 본인인증 DN비고하여 본인 명의만 번호 변경 가능하게 |
| 962 | 735 |
if("p".equals(loginVO.getDept())) {
|
| 963 |
- if(!mblDn.equals(DI)) {
|
|
| 736 |
+ if(!mblDn.equals(kmcVO.getDI())) {
|
|
| 964 | 737 |
kmcVO.setDnChk("N");
|
| 965 | 738 |
} |
| 966 | 739 |
} |
... | ... | @@ -1465,7 +1238,7 @@ |
| 1465 | 1238 |
mberCertPhoneVO.setTrUrl("/web/user/selectKmcMberInfoAjax.do");
|
| 1466 | 1239 |
mberCertPhoneVO.setPlusInfo(loginVO.getId()); |
| 1467 | 1240 |
|
| 1468 |
- AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); |
|
| 1241 |
+ AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); |
|
| 1469 | 1242 |
modelAndView.addObject("certVO", certVO);
|
| 1470 | 1243 |
} |
| 1471 | 1244 |
|
... | ... | @@ -1938,7 +1711,7 @@ |
| 1938 | 1711 |
mberCertPhoneVO.setPhoneNo(mjonMsgVO.getCallFrom()); |
| 1939 | 1712 |
mberCertPhoneVO.setPlusInfo(mjonMsgVO.getUserId()+ "§" + mjonMsgVO.getMyNameFlag()); |
| 1940 | 1713 |
|
| 1941 |
- AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); |
|
| 1714 |
+ AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); |
|
| 1942 | 1715 |
|
| 1943 | 1716 |
modelAndView.addObject("certVO", certVO);
|
| 1944 | 1717 |
|
... | ... | @@ -1962,223 +1735,12 @@ |
| 1962 | 1735 |
*/ |
| 1963 | 1736 |
@RequestMapping("/web/user/selectPhoneNumberCertChkAjax.do")
|
| 1964 | 1737 |
public String selectPhoneNumberCertChk( |
| 1965 |
- HttpServletRequest request, ModelMap model |
|
| 1738 |
+ HttpServletRequest request, HttpServletResponse response, ModelMap model |
|
| 1966 | 1739 |
, @RequestParam Map<String, Object> commandMap |
| 1967 | 1740 |
, @ModelAttribute("searchVO") KmcVO kmcVO ) throws Exception {
|
| 1968 |
- |
|
| 1969 |
- String errMessage = ""; //에러메세지 |
|
| 1970 |
- |
|
| 1971 |
- String rec_cert = ""; // 결과값(암호화) |
|
| 1972 |
- String certNum = ""; // certNum |
|
| 1973 |
- |
|
| 1974 |
- rec_cert = request.getParameter("rec_cert").trim();
|
|
| 1975 |
- certNum = request.getParameter("certNum").trim();
|
|
| 1976 |
- |
|
| 1977 |
- kmcVO.setRecCert(rec_cert); |
|
| 1978 |
- kmcVO.setCertNum(certNum); |
|
| 1979 |
- // 파라미터 유효성 검증 |
|
| 1980 |
- if( rec_cert.length() == 0 || certNum.length() == 0 ){
|
|
| 1981 |
- errMessage = "비정상"; |
|
| 1982 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 1983 |
- } |
|
| 1984 |
- |
|
| 1985 |
- |
|
| 1986 |
- // 변수선언 -------------------------------------------------------------------------------------------------------- |
|
| 1987 |
- String k_certNum = ""; // 파라미터로 수신한 요청번호 |
|
| 1988 |
- k_certNum = certNum; |
|
| 1989 |
- String date = ""; // 요청일시 |
|
| 1990 |
- String CI = ""; // 연계정보(CI) |
|
| 1991 |
- String DI = ""; // 중복가입확인정보(DI) |
|
| 1992 |
- String phoneNo = ""; // 휴대폰번호 |
|
| 1993 |
- String phoneCorp = ""; // 이동통신사 |
|
| 1994 |
- String birthDay = ""; // 생년월일 |
|
| 1995 |
- String gender = ""; // 성별 |
|
| 1996 |
- String nation = ""; // 내국인 |
|
| 1997 |
- String name = ""; // 성명 |
|
| 1998 |
- String M_name = ""; // 미성년자 성명 |
|
| 1999 |
- String M_birthDay = ""; // 미성년자 생년월일 |
|
| 2000 |
- String M_Gender = ""; // 미성년자 성별 |
|
| 2001 |
- String M_nation = ""; // 미성년자 내외국인 |
|
| 2002 |
- String result = ""; // 결과값 |
|
| 2003 | 1741 |
|
| 2004 |
- String certMet = ""; // 인증방법 |
|
| 2005 |
- String ip = ""; // ip주소 |
|
| 2006 |
- String plusInfo = ""; |
|
| 2007 |
- |
|
| 2008 |
- String encPara = ""; |
|
| 2009 |
- String encMsg1 = ""; |
|
| 2010 |
- String encMsg2 = ""; |
|
| 2011 |
- String msgChk = ""; |
|
| 2012 |
- |
|
| 2013 |
- IcertSecuManager seed = new IcertSecuManager(); |
|
| 2014 |
- |
|
| 2015 |
- //02. 1차 복호화 |
|
| 2016 |
- //수신된 certNum를 이용하여 복호화 |
|
| 2017 |
- rec_cert = seed.getDec(rec_cert, k_certNum); |
|
| 2018 |
- |
|
| 2019 |
- //03. 1차 파싱 |
|
| 2020 |
- int inf1 = rec_cert.indexOf("/",0);
|
|
| 2021 |
- int inf2 = rec_cert.indexOf("/",inf1+1);
|
|
| 2022 |
- |
|
| 2023 |
- encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 |
|
| 2024 |
- encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 |
|
| 2025 |
- |
|
| 2026 |
- //04. 위변조 검증 |
|
| 2027 |
- encMsg2 = seed.getMsg(encPara); |
|
| 2028 |
- kmcVO.setEncMsg2(encMsg2); |
|
| 2029 |
- if(encMsg2.equals(encMsg1)){
|
|
| 2030 |
- msgChk="Y"; |
|
| 2031 |
- } |
|
| 2032 |
- |
|
| 2033 |
- if(!"Y".equals(msgChk)) {
|
|
| 2034 |
- errMessage = "비정상접근입니다."; |
|
| 2035 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2036 |
- } |
|
| 2037 |
- |
|
| 2038 |
- //05. 2차 복호화 |
|
| 2039 |
- rec_cert = seed.getDec(encPara, k_certNum); |
|
| 2040 |
- kmcVO.setRecCert(rec_cert); |
|
| 2041 |
- //06. 2차 파싱 |
|
| 2042 |
- int info1 = rec_cert.indexOf("/",0);
|
|
| 2043 |
- int info2 = rec_cert.indexOf("/",info1+1);
|
|
| 2044 |
- int info3 = rec_cert.indexOf("/",info2+1);
|
|
| 2045 |
- int info4 = rec_cert.indexOf("/",info3+1);
|
|
| 2046 |
- int info5 = rec_cert.indexOf("/",info4+1);
|
|
| 2047 |
- int info6 = rec_cert.indexOf("/",info5+1);
|
|
| 2048 |
- int info7 = rec_cert.indexOf("/",info6+1);
|
|
| 2049 |
- int info8 = rec_cert.indexOf("/",info7+1);
|
|
| 2050 |
- int info9 = rec_cert.indexOf("/",info8+1);
|
|
| 2051 |
- int info10 = rec_cert.indexOf("/",info9+1);
|
|
| 2052 |
- int info11 = rec_cert.indexOf("/",info10+1);
|
|
| 2053 |
- int info12 = rec_cert.indexOf("/",info11+1);
|
|
| 2054 |
- int info13 = rec_cert.indexOf("/",info12+1);
|
|
| 2055 |
- int info14 = rec_cert.indexOf("/",info13+1);
|
|
| 2056 |
- int info15 = rec_cert.indexOf("/",info14+1);
|
|
| 2057 |
- int info16 = rec_cert.indexOf("/",info15+1);
|
|
| 2058 |
- int info17 = rec_cert.indexOf("/",info16+1);
|
|
| 2059 |
- int info18 = rec_cert.indexOf("/",info17+1);
|
|
| 2060 |
- |
|
| 2061 |
- certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); |
|
| 2062 |
- date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); |
|
| 2063 |
- CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); |
|
| 2064 |
- phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); |
|
| 2065 |
- phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); |
|
| 2066 |
- birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); |
|
| 2067 |
- gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); |
|
| 2068 |
- nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); |
|
| 2069 |
- name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); |
|
| 2070 |
- result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); |
|
| 2071 |
- certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); |
|
| 2072 |
- ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); |
|
| 2073 |
- M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); |
|
| 2074 |
- M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); |
|
| 2075 |
- M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); |
|
| 2076 |
- M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); |
|
| 2077 |
- plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); |
|
| 2078 |
- DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); |
|
| 2079 |
- |
|
| 2080 |
- //07. CI, DI 복호화 |
|
| 2081 |
- CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); |
|
| 2082 |
- DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); |
|
| 2083 |
- |
|
| 2084 |
- if("Y".equals(result)) {
|
|
| 2085 |
- |
|
| 2086 |
- } |
|
| 2087 |
- |
|
| 2088 |
- //-------------------------------------------------------------- |
|
| 2089 |
- String regex = ""; |
|
| 2090 |
- if( certNum.length() == 0 || certNum.length() > 40){
|
|
| 2091 |
- errMessage = "요청번호 비정상."; |
|
| 2092 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2093 |
- } |
|
| 2094 |
- |
|
| 2095 |
- regex = "[0-9]*"; |
|
| 2096 |
- if( date.length() != 14 || !paramChk(regex, date) ){
|
|
| 2097 |
- errMessage = "요청일시"; |
|
| 2098 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2099 |
- } |
|
| 2100 |
- |
|
| 2101 |
- regex = "[A-Z]*"; |
|
| 2102 |
- if( certMet.length() != 1 || !paramChk(regex, certMet) ){
|
|
| 2103 |
- errMessage = "본인인증방법 비정상" + certMet; |
|
| 2104 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2105 |
- } |
|
| 2106 |
- |
|
| 2107 |
- |
|
| 2108 |
- regex = "[0-9]*"; |
|
| 2109 |
- if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){
|
|
| 2110 |
- errMessage = "휴대폰번호 비정상" ; |
|
| 2111 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2112 |
- } |
|
| 2113 |
- |
|
| 2114 |
- regex = "[A-Z]*"; |
|
| 2115 |
- if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){
|
|
| 2116 |
- errMessage = "이동통신사 비정상"; |
|
| 2117 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2118 |
- } |
|
| 2119 |
- |
|
| 2120 |
- regex = "[0-9]*"; |
|
| 2121 |
- if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){
|
|
| 2122 |
- errMessage = "생년월일 비정상"; |
|
| 2123 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2124 |
- } |
|
| 2125 |
- |
|
| 2126 |
- regex = "[0-9]*"; |
|
| 2127 |
- if( gender.length() != 1 || !paramChk(regex, gender) ){
|
|
| 2128 |
- errMessage = "성별 비정상"; |
|
| 2129 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2130 |
- } |
|
| 2131 |
- |
|
| 2132 |
- regex = "[0-9]*"; |
|
| 2133 |
- if( nation.length() != 1 || !paramChk(regex, nation) ){
|
|
| 2134 |
- errMessage = "내/외국인 비정상"; |
|
| 2135 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2136 |
- } |
|
| 2137 |
- |
|
| 2138 |
- regex = "[\\sA-Za-z가-�R.,-]*"; |
|
| 2139 |
- if( name.length() > 60 || !paramChk(regex, name) ){
|
|
| 2140 |
- errMessage = "성명 비정상"; |
|
| 2141 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2142 |
- } |
|
| 2143 |
- |
|
| 2144 |
- regex = "[A-Z]*"; |
|
| 2145 |
- if( result.length() != 1 || !paramChk(regex, result) ){
|
|
| 2146 |
- errMessage = "결과값 비정상"; |
|
| 2147 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2148 |
- } |
|
| 2149 |
- |
|
| 2150 |
- regex = "[\\sA-Za-z가-?.,-]*"; |
|
| 2151 |
- if( M_name.length() != 0 ){
|
|
| 2152 |
- if( M_name.length() > 60 || !paramChk(regex, M_name) ){
|
|
| 2153 |
- errMessage = "미성년자 성명 비정상"; |
|
| 2154 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2155 |
- } |
|
| 2156 |
- } |
|
| 2157 |
- |
|
| 2158 |
- regex = "[0-9]*"; |
|
| 2159 |
- if( M_birthDay.length() != 0 ){
|
|
| 2160 |
- if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){
|
|
| 2161 |
- errMessage = "미성년자 생년월일 비정상"; |
|
| 2162 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2163 |
- } |
|
| 2164 |
- } |
|
| 2165 |
- |
|
| 2166 |
- regex = "[0-9]*"; |
|
| 2167 |
- if( M_Gender.length() != 0 ){
|
|
| 2168 |
- if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){
|
|
| 2169 |
- errMessage = "미성년자 성별 비정상"; |
|
| 2170 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2171 |
- } |
|
| 2172 |
- } |
|
| 2173 |
- |
|
| 2174 |
- regex = "[0-9]*"; |
|
| 2175 |
- if( M_nation.length() != 0 ){
|
|
| 2176 |
- if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){
|
|
| 2177 |
- errMessage = "미성년자 내/외국인 비정상"; |
|
| 2178 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2179 |
- } |
|
| 2180 |
- } |
|
| 2181 |
- |
|
| 1742 |
+ //kmc 본인인증 결과처리 |
|
| 1743 |
+ kmcVO = kmcCertChecker.authCertResult(request, response, model); |
|
| 2182 | 1744 |
/* |
| 2183 | 1745 |
* plusInfo(본인인증 추가파라미터) |
| 2184 | 1746 |
* 구분지 "§" |
... | ... | @@ -2188,32 +1750,17 @@ |
| 2188 | 1750 |
* */ |
| 2189 | 1751 |
String tmp = kmcVO.getPlusInfo(); |
| 2190 | 1752 |
String[] tmpResult = tmp.split("§");
|
| 1753 |
+ kmcVO.setPlusInfo(tmpResult[0]); |
|
| 1754 |
+ //kmc 본인인증 로그 처리 |
|
| 1755 |
+ AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_발신번호 등록 인증"); |
|
| 2191 | 1756 |
|
| 2192 |
- //KMC 본인인증 로그 |
|
| 2193 |
- AuthCertVO certVO = new AuthCertVO(); |
|
| 2194 |
- |
|
| 2195 |
- certVO.setMberId(tmpResult[0]); |
|
| 2196 |
- certVO.setCertNum(kmcVO.getCertNum()); |
|
| 2197 |
- certVO.setCertDate(kmcVO.getDate()); |
|
| 2198 |
- certVO.setCertDi(kmcVO.getDI()); |
|
| 2199 |
- certVO.setCertPhone(kmcVO.getPhoneNo()); |
|
| 2200 |
- certVO.setCertNation(kmcVO.getNation()); |
|
| 2201 |
- certVO.setCertName(kmcVO.getName()); |
|
| 2202 |
- certVO.setCertResult(kmcVO.getResult()); |
|
| 2203 |
- certVO.setCertType("KMC_발신번호 등록 인증");
|
|
| 2204 |
- certVO.setCertIpaddr(kmcVO.getIp()); |
|
| 2205 |
- certVO.setBirthDay(kmcVO.getBirthDay()); |
|
| 2206 |
- certVO.setSexdstnCode(kmcVO.getGender()); |
|
| 2207 |
- |
|
| 2208 |
- //디비 테이블에 저장하기 |
|
| 2209 |
- mberManageService.insertCertInfoLog(certVO); |
|
| 2210 | 1757 |
|
| 2211 | 1758 |
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; |
| 2212 | 1759 |
|
| 2213 | 1760 |
String mblDn = userManageService.selectUserMblDnById(loginVO.getId()); |
| 2214 | 1761 |
|
| 2215 | 1762 |
String resultDnFlag = "N"; |
| 2216 |
- if(DI.equals(mblDn)) {
|
|
| 1763 |
+ if((kmcVO.getDI()).equals(mblDn)) {
|
|
| 2217 | 1764 |
resultDnFlag = "Y"; |
| 2218 | 1765 |
} |
| 2219 | 1766 |
|
... | ... | @@ -2295,14 +1842,9 @@ |
| 2295 | 1842 |
model.addAttribute("resultNameChk", resultNameChk);
|
| 2296 | 1843 |
//=======================끝========================= |
| 2297 | 1844 |
|
| 2298 |
- String birthDay_tmp = ""; |
|
| 2299 |
- try {
|
|
| 2300 |
- birthDay_tmp = kmcVO.getMBirthDay().length() != 0 ? kmcVO.getMBirthDay() : kmcVO.getBirthDay(); |
|
| 2301 |
- } catch (Exception e) {
|
|
| 2302 |
- birthDay_tmp = birthDay; |
|
| 2303 |
- } |
|
| 2304 | 1845 |
model.addAttribute("CI", kmcVO.getCI());
|
| 2305 |
- model.addAttribute("birthDay", birthDay_tmp);
|
|
| 1846 |
+ model.addAttribute("birthDay", kmcVO.getBirthDay());
|
|
| 1847 |
+ model.addAttribute("name", kmcVO.getName());
|
|
| 2306 | 1848 |
|
| 2307 | 1849 |
return "web/user/selectPhoneNumberCertChkReq"; |
| 2308 | 1850 |
} |
... | ... | @@ -2326,232 +1868,25 @@ |
| 2326 | 1868 |
*/ |
| 2327 | 1869 |
@RequestMapping("/web/user/insertPhoneSendNumber.do")
|
| 2328 | 1870 |
public String insertPhoneSendNumber( |
| 2329 |
- HttpServletRequest request, ModelMap model |
|
| 1871 |
+ HttpServletRequest request, HttpServletResponse response, ModelMap model |
|
| 2330 | 1872 |
, @RequestParam Map<String, Object> commandMap |
| 2331 | 1873 |
, @ModelAttribute("searchVO") KmcVO kmcVO ) throws Exception {
|
| 2332 |
- |
|
| 2333 |
- String errMessage = ""; //에러메세지 |
|
| 1874 |
+ |
|
| 2334 | 1875 |
|
| 2335 |
- String rec_cert = ""; // 결과값(암호화) |
|
| 2336 |
- String certNum = ""; // certNum |
|
| 2337 |
- |
|
| 2338 |
- rec_cert = request.getParameter("rec_cert").trim();
|
|
| 2339 |
- certNum = request.getParameter("certNum").trim();
|
|
| 2340 |
- |
|
| 2341 |
- kmcVO.setRecCert(rec_cert); |
|
| 2342 |
- kmcVO.setCertNum(certNum); |
|
| 2343 |
- // 파라미터 유효성 검증 |
|
| 2344 |
- if( rec_cert.length() == 0 || certNum.length() == 0 ){
|
|
| 2345 |
- errMessage = "비정상"; |
|
| 2346 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2347 |
- } |
|
| 2348 |
- |
|
| 2349 |
- |
|
| 2350 |
- // 변수선언 -------------------------------------------------------------------------------------------------------- |
|
| 2351 |
- String k_certNum = ""; // 파라미터로 수신한 요청번호 |
|
| 2352 |
- k_certNum = certNum; |
|
| 2353 |
- String date = ""; // 요청일시 |
|
| 2354 |
- String CI = ""; // 연계정보(CI) |
|
| 2355 |
- String DI = ""; // 중복가입확인정보(DI) |
|
| 2356 |
- String phoneNo = ""; // 휴대폰번호 |
|
| 2357 |
- String phoneCorp = ""; // 이동통신사 |
|
| 2358 |
- String birthDay = ""; // 생년월일 |
|
| 2359 |
- String gender = ""; // 성별 |
|
| 2360 |
- String nation = ""; // 내국인 |
|
| 2361 |
- String name = ""; // 성명 |
|
| 2362 |
- String M_name = ""; // 미성년자 성명 |
|
| 2363 |
- String M_birthDay = ""; // 미성년자 생년월일 |
|
| 2364 |
- String M_Gender = ""; // 미성년자 성별 |
|
| 2365 |
- String M_nation = ""; // 미성년자 내외국인 |
|
| 2366 |
- String result = ""; // 결과값 |
|
| 2367 |
- |
|
| 2368 |
- String certMet = ""; // 인증방법 |
|
| 2369 |
- String ip = ""; // ip주소 |
|
| 2370 |
- String plusInfo = ""; |
|
| 2371 |
- |
|
| 2372 |
- String encPara = ""; |
|
| 2373 |
- String encMsg1 = ""; |
|
| 2374 |
- String encMsg2 = ""; |
|
| 2375 |
- String msgChk = ""; |
|
| 2376 |
- |
|
| 2377 |
- IcertSecuManager seed = new IcertSecuManager(); |
|
| 2378 |
- |
|
| 2379 |
- //02. 1차 복호화 |
|
| 2380 |
- //수신된 certNum를 이용하여 복호화 |
|
| 2381 |
- rec_cert = seed.getDec(rec_cert, k_certNum); |
|
| 2382 |
- |
|
| 2383 |
- //03. 1차 파싱 |
|
| 2384 |
- int inf1 = rec_cert.indexOf("/",0);
|
|
| 2385 |
- int inf2 = rec_cert.indexOf("/",inf1+1);
|
|
| 2386 |
- |
|
| 2387 |
- encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 |
|
| 2388 |
- encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 |
|
| 2389 |
- |
|
| 2390 |
- //04. 위변조 검증 |
|
| 2391 |
- encMsg2 = seed.getMsg(encPara); |
|
| 2392 |
- kmcVO.setEncMsg2(encMsg2); |
|
| 2393 |
- if(encMsg2.equals(encMsg1)){
|
|
| 2394 |
- msgChk="Y"; |
|
| 2395 |
- } |
|
| 2396 |
- |
|
| 2397 |
- if(!"Y".equals(msgChk)) {
|
|
| 2398 |
- errMessage = "비정상접근입니다."; |
|
| 2399 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2400 |
- } |
|
| 2401 |
- |
|
| 2402 |
- //05. 2차 복호화 |
|
| 2403 |
- rec_cert = seed.getDec(encPara, k_certNum); |
|
| 2404 |
- kmcVO.setRecCert(rec_cert); |
|
| 2405 |
- //06. 2차 파싱 |
|
| 2406 |
- int info1 = rec_cert.indexOf("/",0);
|
|
| 2407 |
- int info2 = rec_cert.indexOf("/",info1+1);
|
|
| 2408 |
- int info3 = rec_cert.indexOf("/",info2+1);
|
|
| 2409 |
- int info4 = rec_cert.indexOf("/",info3+1);
|
|
| 2410 |
- int info5 = rec_cert.indexOf("/",info4+1);
|
|
| 2411 |
- int info6 = rec_cert.indexOf("/",info5+1);
|
|
| 2412 |
- int info7 = rec_cert.indexOf("/",info6+1);
|
|
| 2413 |
- int info8 = rec_cert.indexOf("/",info7+1);
|
|
| 2414 |
- int info9 = rec_cert.indexOf("/",info8+1);
|
|
| 2415 |
- int info10 = rec_cert.indexOf("/",info9+1);
|
|
| 2416 |
- int info11 = rec_cert.indexOf("/",info10+1);
|
|
| 2417 |
- int info12 = rec_cert.indexOf("/",info11+1);
|
|
| 2418 |
- int info13 = rec_cert.indexOf("/",info12+1);
|
|
| 2419 |
- int info14 = rec_cert.indexOf("/",info13+1);
|
|
| 2420 |
- int info15 = rec_cert.indexOf("/",info14+1);
|
|
| 2421 |
- int info16 = rec_cert.indexOf("/",info15+1);
|
|
| 2422 |
- int info17 = rec_cert.indexOf("/",info16+1);
|
|
| 2423 |
- int info18 = rec_cert.indexOf("/",info17+1);
|
|
| 2424 |
- |
|
| 2425 |
- certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); |
|
| 2426 |
- date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); |
|
| 2427 |
- CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); |
|
| 2428 |
- phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); |
|
| 2429 |
- phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); |
|
| 2430 |
- birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); |
|
| 2431 |
- gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); |
|
| 2432 |
- nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); |
|
| 2433 |
- name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); |
|
| 2434 |
- result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); |
|
| 2435 |
- certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); |
|
| 2436 |
- ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); |
|
| 2437 |
- M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); |
|
| 2438 |
- M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); |
|
| 2439 |
- M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); |
|
| 2440 |
- M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); |
|
| 2441 |
- plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); |
|
| 2442 |
- DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); |
|
| 2443 |
- |
|
| 2444 |
- //07. CI, DI 복호화 |
|
| 2445 |
- CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); |
|
| 2446 |
- DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); |
|
| 2447 |
- |
|
| 2448 |
- if("Y".equals(result)) {
|
|
| 2449 |
- |
|
| 2450 |
- } |
|
| 2451 |
- |
|
| 2452 |
- //-------------------------------------------------------------- |
|
| 2453 |
- String regex = ""; |
|
| 2454 |
- if( certNum.length() == 0 || certNum.length() > 40){
|
|
| 2455 |
- errMessage = "요청번호 비정상."; |
|
| 2456 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2457 |
- } |
|
| 2458 |
- |
|
| 2459 |
- regex = "[0-9]*"; |
|
| 2460 |
- if( date.length() != 14 || !paramChk(regex, date) ){
|
|
| 2461 |
- errMessage = "요청일시"; |
|
| 2462 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2463 |
- } |
|
| 2464 |
- |
|
| 2465 |
- regex = "[A-Z]*"; |
|
| 2466 |
- if( certMet.length() != 1 || !paramChk(regex, certMet) ){
|
|
| 2467 |
- errMessage = "본인인증방법 비정상" + certMet; |
|
| 2468 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2469 |
- } |
|
| 2470 |
- |
|
| 2471 |
- |
|
| 2472 |
- regex = "[0-9]*"; |
|
| 2473 |
- if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){
|
|
| 2474 |
- errMessage = "휴대폰번호 비정상" ; |
|
| 2475 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2476 |
- } |
|
| 2477 |
- |
|
| 2478 |
- regex = "[A-Z]*"; |
|
| 2479 |
- if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){
|
|
| 2480 |
- errMessage = "이동통신사 비정상"; |
|
| 2481 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2482 |
- } |
|
| 2483 |
- |
|
| 2484 |
- regex = "[0-9]*"; |
|
| 2485 |
- if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){
|
|
| 2486 |
- errMessage = "생년월일 비정상"; |
|
| 2487 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2488 |
- } |
|
| 2489 |
- |
|
| 2490 |
- regex = "[0-9]*"; |
|
| 2491 |
- if( gender.length() != 1 || !paramChk(regex, gender) ){
|
|
| 2492 |
- errMessage = "성별 비정상"; |
|
| 2493 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2494 |
- } |
|
| 2495 |
- |
|
| 2496 |
- regex = "[0-9]*"; |
|
| 2497 |
- if( nation.length() != 1 || !paramChk(regex, nation) ){
|
|
| 2498 |
- errMessage = "내/외국인 비정상"; |
|
| 2499 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2500 |
- } |
|
| 2501 |
- |
|
| 2502 |
- regex = "[\\sA-Za-z가-�R.,-]*"; |
|
| 2503 |
- if( name.length() > 60 || !paramChk(regex, name) ){
|
|
| 2504 |
- errMessage = "성명 비정상"; |
|
| 2505 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2506 |
- } |
|
| 2507 |
- |
|
| 2508 |
- regex = "[A-Z]*"; |
|
| 2509 |
- if( result.length() != 1 || !paramChk(regex, result) ){
|
|
| 2510 |
- errMessage = "결과값 비정상"; |
|
| 2511 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2512 |
- } |
|
| 2513 |
- |
|
| 2514 |
- regex = "[\\sA-Za-z가-?.,-]*"; |
|
| 2515 |
- if( M_name.length() != 0 ){
|
|
| 2516 |
- if( M_name.length() > 60 || !paramChk(regex, M_name) ){
|
|
| 2517 |
- errMessage = "미성년자 성명 비정상"; |
|
| 2518 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2519 |
- } |
|
| 2520 |
- } |
|
| 2521 |
- |
|
| 2522 |
- regex = "[0-9]*"; |
|
| 2523 |
- if( M_birthDay.length() != 0 ){
|
|
| 2524 |
- if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){
|
|
| 2525 |
- errMessage = "미성년자 생년월일 비정상"; |
|
| 2526 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2527 |
- } |
|
| 2528 |
- } |
|
| 2529 |
- |
|
| 2530 |
- regex = "[0-9]*"; |
|
| 2531 |
- if( M_Gender.length() != 0 ){
|
|
| 2532 |
- if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){
|
|
| 2533 |
- errMessage = "미성년자 성별 비정상"; |
|
| 2534 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2535 |
- } |
|
| 2536 |
- } |
|
| 2537 |
- |
|
| 2538 |
- regex = "[0-9]*"; |
|
| 2539 |
- if( M_nation.length() != 0 ){
|
|
| 2540 |
- if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){
|
|
| 2541 |
- errMessage = "미성년자 내/외국인 비정상"; |
|
| 2542 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 2543 |
- } |
|
| 2544 |
- } |
|
| 1876 |
+ //kmc 본인인증 결과처리 |
|
| 1877 |
+ kmcVO = kmcCertChecker.authCertResult(request, response, model); |
|
| 1878 |
+ //kmc 본인인증 로그 처리 |
|
| 1879 |
+ AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "휴대폰 인증 발신번호 등록"); |
|
| 2545 | 1880 |
|
| 2546 | 1881 |
MjPhoneMemberVO mjPhoneMemberVO = new MjPhoneMemberVO(); |
| 2547 | 1882 |
|
| 2548 |
- mjPhoneMemberVO.setUserId(plusInfo); |
|
| 1883 |
+ mjPhoneMemberVO.setUserId(kmcVO.getPlusInfo()); |
|
| 2549 | 1884 |
mjPhoneMemberVO.setPhmType("01");
|
| 2550 | 1885 |
mjPhoneMemberVO.setPhmAuthType("01");
|
| 2551 |
- mjPhoneMemberVO.setFrstRegisterId(plusInfo); |
|
| 2552 |
- mjPhoneMemberVO.setLastUpdusrId(plusInfo); |
|
| 2553 |
- mjPhoneMemberVO.setPhoneNumber(phoneNo); |
|
| 2554 |
- mjPhoneMemberVO.setUserName(name); |
|
| 1886 |
+ mjPhoneMemberVO.setFrstRegisterId(kmcVO.getPlusInfo()); |
|
| 1887 |
+ mjPhoneMemberVO.setLastUpdusrId(kmcVO.getPlusInfo()); |
|
| 1888 |
+ mjPhoneMemberVO.setPhoneNumber(kmcVO.getPhoneNo()); |
|
| 1889 |
+ mjPhoneMemberVO.setUserName(kmcVO.getName()); |
|
| 2555 | 1890 |
mjPhoneMemberVO.setAuthYn("Y");
|
| 2556 | 1891 |
mjonMsgService.insertSendNumber(mjPhoneMemberVO); |
| 2557 | 1892 |
|
... | ... | @@ -2953,7 +2288,7 @@ |
| 2953 | 2288 |
mberCertPhoneVO.setTrUrl("/web/user/selectMberSecessionAjax.do");
|
| 2954 | 2289 |
mberCertPhoneVO.setName(name); |
| 2955 | 2290 |
|
| 2956 |
- AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); |
|
| 2291 |
+ AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); |
|
| 2957 | 2292 |
model.addAttribute("certVO", certVO);
|
| 2958 | 2293 |
|
| 2959 | 2294 |
return "web/user/mberSecession"; |
... | ... | @@ -3054,7 +2389,7 @@ |
| 3054 | 2389 |
mberCertPhoneVO.setTrUrl("/web/user/selectSecurityAuthn.do");
|
| 3055 | 2390 |
mberCertPhoneVO.setPlusInfo(loginVO.getId()); |
| 3056 | 2391 |
|
| 3057 |
- AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request); |
|
| 2392 |
+ AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request); |
|
| 3058 | 2393 |
|
| 3059 | 2394 |
model.addAttribute("certVO", certVO);
|
| 3060 | 2395 |
} |
... | ... | @@ -3132,232 +2467,24 @@ |
| 3132 | 2467 |
*/ |
| 3133 | 2468 |
@RequestMapping("/web/user/selectMberSecessionAjax.do")
|
| 3134 | 2469 |
public String selectMberSecessionAjax( |
| 3135 |
- HttpServletRequest request, ModelMap model |
|
| 2470 |
+ HttpServletRequest request, HttpServletResponse response, ModelMap model |
|
| 3136 | 2471 |
, @RequestParam Map<String, Object> commandMap |
| 3137 | 2472 |
, @ModelAttribute("searchVO") KmcVO kmcVO ) throws Exception {
|
| 3138 | 2473 |
|
| 3139 |
- String errMessage = ""; //에러메세지 |
|
| 3140 |
- |
|
| 3141 |
- String rec_cert = ""; // 결과값(암호화) |
|
| 3142 |
- String certNum = ""; // certNum |
|
| 3143 |
- |
|
| 3144 |
- rec_cert = request.getParameter("rec_cert").trim();
|
|
| 3145 |
- certNum = request.getParameter("certNum").trim();
|
|
| 3146 |
- |
|
| 3147 |
- kmcVO.setRecCert(rec_cert); |
|
| 3148 |
- kmcVO.setCertNum(certNum); |
|
| 3149 |
- // 파라미터 유효성 검증 |
|
| 3150 |
- if( rec_cert.length() == 0 || certNum.length() == 0 ){
|
|
| 3151 |
- errMessage = "비정상"; |
|
| 3152 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3153 |
- } |
|
| 3154 |
- |
|
| 3155 |
- |
|
| 3156 |
- // 변수선언 -------------------------------------------------------------------------------------------------------- |
|
| 3157 |
- String k_certNum = ""; // 파라미터로 수신한 요청번호 |
|
| 3158 |
- k_certNum = certNum; |
|
| 3159 |
- String date = ""; // 요청일시 |
|
| 3160 |
- String CI = ""; // 연계정보(CI) |
|
| 3161 |
- String DI = ""; // 중복가입확인정보(DI) |
|
| 3162 |
- String phoneNo = ""; // 휴대폰번호 |
|
| 3163 |
- String phoneCorp = ""; // 이동통신사 |
|
| 3164 |
- String birthDay = ""; // 생년월일 |
|
| 3165 |
- String gender = ""; // 성별 |
|
| 3166 |
- String nation = ""; // 내국인 |
|
| 3167 |
- String name = ""; // 성명 |
|
| 3168 |
- String M_name = ""; // 미성년자 성명 |
|
| 3169 |
- String M_birthDay = ""; // 미성년자 생년월일 |
|
| 3170 |
- String M_Gender = ""; // 미성년자 성별 |
|
| 3171 |
- String M_nation = ""; // 미성년자 내외국인 |
|
| 3172 |
- String result = ""; // 결과값 |
|
| 3173 |
- |
|
| 3174 |
- String certMet = ""; // 인증방법 |
|
| 3175 |
- String ip = ""; // ip주소 |
|
| 3176 |
- String plusInfo = ""; |
|
| 3177 |
- |
|
| 3178 |
- String encPara = ""; |
|
| 3179 |
- String encMsg1 = ""; |
|
| 3180 |
- String encMsg2 = ""; |
|
| 3181 |
- String msgChk = ""; |
|
| 3182 |
- |
|
| 3183 |
- com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); |
|
| 3184 |
- |
|
| 3185 |
- //02. 1차 복호화 |
|
| 3186 |
- //수신된 certNum를 이용하여 복호화 |
|
| 3187 |
- rec_cert = seed.getDec(rec_cert, k_certNum); |
|
| 3188 |
- |
|
| 3189 |
- //03. 1차 파싱 |
|
| 3190 |
- int inf1 = rec_cert.indexOf("/",0);
|
|
| 3191 |
- int inf2 = rec_cert.indexOf("/",inf1+1);
|
|
| 3192 |
- |
|
| 3193 |
- encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 |
|
| 3194 |
- encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 |
|
| 3195 |
- |
|
| 3196 |
- //04. 위변조 검증 |
|
| 3197 |
- encMsg2 = seed.getMsg(encPara); |
|
| 3198 |
- kmcVO.setEncMsg2(encMsg2); |
|
| 3199 |
- if(encMsg2.equals(encMsg1)){
|
|
| 3200 |
- msgChk="Y"; |
|
| 3201 |
- } |
|
| 3202 |
- |
|
| 3203 |
- if(!"Y".equals(msgChk)) {
|
|
| 3204 |
- errMessage = "비정상접근입니다."; |
|
| 3205 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3206 |
- } |
|
| 3207 |
- |
|
| 3208 |
- //05. 2차 복호화 |
|
| 3209 |
- rec_cert = seed.getDec(encPara, k_certNum); |
|
| 3210 |
- kmcVO.setRecCert(rec_cert); |
|
| 3211 |
- //06. 2차 파싱 |
|
| 3212 |
- int info1 = rec_cert.indexOf("/",0);
|
|
| 3213 |
- int info2 = rec_cert.indexOf("/",info1+1);
|
|
| 3214 |
- int info3 = rec_cert.indexOf("/",info2+1);
|
|
| 3215 |
- int info4 = rec_cert.indexOf("/",info3+1);
|
|
| 3216 |
- int info5 = rec_cert.indexOf("/",info4+1);
|
|
| 3217 |
- int info6 = rec_cert.indexOf("/",info5+1);
|
|
| 3218 |
- int info7 = rec_cert.indexOf("/",info6+1);
|
|
| 3219 |
- int info8 = rec_cert.indexOf("/",info7+1);
|
|
| 3220 |
- int info9 = rec_cert.indexOf("/",info8+1);
|
|
| 3221 |
- int info10 = rec_cert.indexOf("/",info9+1);
|
|
| 3222 |
- int info11 = rec_cert.indexOf("/",info10+1);
|
|
| 3223 |
- int info12 = rec_cert.indexOf("/",info11+1);
|
|
| 3224 |
- int info13 = rec_cert.indexOf("/",info12+1);
|
|
| 3225 |
- int info14 = rec_cert.indexOf("/",info13+1);
|
|
| 3226 |
- int info15 = rec_cert.indexOf("/",info14+1);
|
|
| 3227 |
- int info16 = rec_cert.indexOf("/",info15+1);
|
|
| 3228 |
- int info17 = rec_cert.indexOf("/",info16+1);
|
|
| 3229 |
- int info18 = rec_cert.indexOf("/",info17+1);
|
|
| 3230 |
- |
|
| 3231 |
- certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); |
|
| 3232 |
- date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); |
|
| 3233 |
- CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); |
|
| 3234 |
- phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); |
|
| 3235 |
- phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); |
|
| 3236 |
- birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); |
|
| 3237 |
- gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); |
|
| 3238 |
- nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); |
|
| 3239 |
- name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); |
|
| 3240 |
- result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); |
|
| 3241 |
- certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); |
|
| 3242 |
- ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); |
|
| 3243 |
- M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); |
|
| 3244 |
- M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); |
|
| 3245 |
- M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); |
|
| 3246 |
- M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); |
|
| 3247 |
- plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); |
|
| 3248 |
- DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); |
|
| 3249 |
- |
|
| 3250 |
- //07. CI, DI 복호화 |
|
| 3251 |
- CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); |
|
| 3252 |
- DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); |
|
| 3253 |
- |
|
| 3254 |
- if("Y".equals(result)) {
|
|
| 3255 |
- |
|
| 3256 |
- } |
|
| 3257 |
- |
|
| 3258 |
- //-------------------------------------------------------------- |
|
| 3259 |
- String regex = ""; |
|
| 3260 |
- if( certNum.length() == 0 || certNum.length() > 40){
|
|
| 3261 |
- errMessage = "요청번호 비정상."; |
|
| 3262 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3263 |
- } |
|
| 3264 |
- |
|
| 3265 |
- regex = "[0-9]*"; |
|
| 3266 |
- if( date.length() != 14 || !paramChk(regex, date) ){
|
|
| 3267 |
- errMessage = "요청일시"; |
|
| 3268 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3269 |
- } |
|
| 3270 |
- |
|
| 3271 |
- regex = "[A-Z]*"; |
|
| 3272 |
- if( certMet.length() != 1 || !paramChk(regex, certMet) ){
|
|
| 3273 |
- errMessage = "본인인증방법 비정상" + certMet; |
|
| 3274 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3275 |
- } |
|
| 3276 |
- |
|
| 3277 |
- |
|
| 3278 |
- regex = "[0-9]*"; |
|
| 3279 |
- if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){
|
|
| 3280 |
- errMessage = "휴대폰번호 비정상" ; |
|
| 3281 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3282 |
- } |
|
| 3283 |
- |
|
| 3284 |
- regex = "[A-Z]*"; |
|
| 3285 |
- if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){
|
|
| 3286 |
- errMessage = "이동통신사 비정상"; |
|
| 3287 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3288 |
- } |
|
| 3289 |
- |
|
| 3290 |
- regex = "[0-9]*"; |
|
| 3291 |
- if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){
|
|
| 3292 |
- errMessage = "생년월일 비정상"; |
|
| 3293 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3294 |
- } |
|
| 3295 |
- |
|
| 3296 |
- regex = "[0-9]*"; |
|
| 3297 |
- if( gender.length() != 1 || !paramChk(regex, gender) ){
|
|
| 3298 |
- errMessage = "성별 비정상"; |
|
| 3299 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3300 |
- } |
|
| 3301 |
- |
|
| 3302 |
- regex = "[0-9]*"; |
|
| 3303 |
- if( nation.length() != 1 || !paramChk(regex, nation) ){
|
|
| 3304 |
- errMessage = "내/외국인 비정상"; |
|
| 3305 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3306 |
- } |
|
| 3307 |
- |
|
| 3308 |
- regex = "[\\sA-Za-z가-�R.,-]*"; |
|
| 3309 |
- if( name.length() > 60 || !paramChk(regex, name) ){
|
|
| 3310 |
- errMessage = "성명 비정상"; |
|
| 3311 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3312 |
- } |
|
| 3313 |
- |
|
| 3314 |
- regex = "[A-Z]*"; |
|
| 3315 |
- if( result.length() != 1 || !paramChk(regex, result) ){
|
|
| 3316 |
- errMessage = "결과값 비정상"; |
|
| 3317 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3318 |
- } |
|
| 3319 |
- |
|
| 3320 |
- regex = "[\\sA-Za-z가-?.,-]*"; |
|
| 3321 |
- if( M_name.length() != 0 ){
|
|
| 3322 |
- if( M_name.length() > 60 || !paramChk(regex, M_name) ){
|
|
| 3323 |
- errMessage = "미성년자 성명 비정상"; |
|
| 3324 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3325 |
- } |
|
| 3326 |
- } |
|
| 3327 |
- |
|
| 3328 |
- regex = "[0-9]*"; |
|
| 3329 |
- if( M_birthDay.length() != 0 ){
|
|
| 3330 |
- if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){
|
|
| 3331 |
- errMessage = "미성년자 생년월일 비정상"; |
|
| 3332 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3333 |
- } |
|
| 3334 |
- } |
|
| 3335 |
- |
|
| 3336 |
- regex = "[0-9]*"; |
|
| 3337 |
- if( M_Gender.length() != 0 ){
|
|
| 3338 |
- if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){
|
|
| 3339 |
- errMessage = "미성년자 성별 비정상"; |
|
| 3340 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3341 |
- } |
|
| 3342 |
- } |
|
| 3343 |
- |
|
| 3344 |
- regex = "[0-9]*"; |
|
| 3345 |
- if( M_nation.length() != 0 ){
|
|
| 3346 |
- if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){
|
|
| 3347 |
- errMessage = "미성년자 내/외국인 비정상"; |
|
| 3348 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3349 |
- } |
|
| 3350 |
- } |
|
| 2474 |
+ //kmc 본인인증 결과처리 |
|
| 2475 |
+ kmcVO = kmcCertChecker.authCertResult(request, response, model); |
|
| 2476 |
+ //kmc 본인인증 로그 처리 |
|
| 2477 |
+ AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "회원탈퇴 본인인증"); |
|
| 3351 | 2478 |
|
| 3352 | 2479 |
MjPhoneMemberVO mjPhoneMemberVO = new MjPhoneMemberVO(); |
| 3353 | 2480 |
|
| 3354 |
- mjPhoneMemberVO.setUserId(plusInfo); |
|
| 2481 |
+ mjPhoneMemberVO.setUserId(kmcVO.getPlusInfo()); |
|
| 3355 | 2482 |
mjPhoneMemberVO.setPhmType("01");
|
| 3356 | 2483 |
mjPhoneMemberVO.setPhmAuthType("01");
|
| 3357 |
- mjPhoneMemberVO.setFrstRegisterId(plusInfo); |
|
| 3358 |
- mjPhoneMemberVO.setLastUpdusrId(plusInfo); |
|
| 3359 |
- mjPhoneMemberVO.setPhoneNumber(phoneNo); |
|
| 3360 |
- mjPhoneMemberVO.setUserName(name); |
|
| 2484 |
+ mjPhoneMemberVO.setFrstRegisterId(kmcVO.getPlusInfo()); |
|
| 2485 |
+ mjPhoneMemberVO.setLastUpdusrId(kmcVO.getPlusInfo()); |
|
| 2486 |
+ mjPhoneMemberVO.setPhoneNumber(kmcVO.getPhoneNo()); |
|
| 2487 |
+ mjPhoneMemberVO.setUserName(kmcVO.getName()); |
|
| 3361 | 2488 |
mjPhoneMemberVO.setAuthYn("Y");
|
| 3362 | 2489 |
mjonMsgService.insertSendNumber(mjPhoneMemberVO); |
| 3363 | 2490 |
|
... | ... | @@ -3662,7 +2789,7 @@ |
| 3662 | 2789 |
*/ |
| 3663 | 2790 |
@RequestMapping("/web/user/selectSecurityAuthn.do")
|
| 3664 | 2791 |
public String selectSecurityAuthn( |
| 3665 |
- HttpServletRequest request, ModelMap model |
|
| 2792 |
+ HttpServletRequest request, HttpServletResponse response, ModelMap model |
|
| 3666 | 2793 |
, @RequestParam Map<String, Object> commandMap |
| 3667 | 2794 |
, @ModelAttribute("searchVO") KmcVO kmcVO ) throws Exception {
|
| 3668 | 2795 |
|
... | ... | @@ -3671,243 +2798,13 @@ |
| 3671 | 2798 |
String mblDn = userManageService.selectUserMblDnById(loginVO.getId()); |
| 3672 | 2799 |
model.addAttribute("loginVO", loginVO);
|
| 3673 | 2800 |
|
| 3674 |
- String errMessage = ""; //에러메세지 |
|
| 3675 |
- |
|
| 3676 |
- String rec_cert = ""; // 결과값(암호화) |
|
| 3677 |
- String certNum = ""; // certNum |
|
| 3678 |
- |
|
| 3679 |
- rec_cert = request.getParameter("rec_cert").trim();
|
|
| 3680 |
- certNum = request.getParameter("certNum").trim();
|
|
| 3681 |
- |
|
| 3682 |
- kmcVO.setRecCert(rec_cert); |
|
| 3683 |
- kmcVO.setCertNum(certNum); |
|
| 3684 |
- // 파라미터 유효성 검증 |
|
| 3685 |
- if( rec_cert.length() == 0 || certNum.length() == 0 ){
|
|
| 3686 |
- errMessage = "비정상"; |
|
| 3687 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3688 |
- } |
|
| 3689 |
- |
|
| 3690 |
- |
|
| 3691 |
- // 변수선언 -------------------------------------------------------------------------------------------------------- |
|
| 3692 |
- String k_certNum = ""; // 파라미터로 수신한 요청번호 |
|
| 3693 |
- k_certNum = certNum; |
|
| 3694 |
- String date = ""; // 요청일시 |
|
| 3695 |
- String CI = ""; // 연계정보(CI) |
|
| 3696 |
- String DI = ""; // 중복가입확인정보(DI) |
|
| 3697 |
- String phoneNo = ""; // 휴대폰번호 |
|
| 3698 |
- String phoneCorp = ""; // 이동통신사 |
|
| 3699 |
- String birthDay = ""; // 생년월일 |
|
| 3700 |
- String gender = ""; // 성별 |
|
| 3701 |
- String nation = ""; // 내국인 |
|
| 3702 |
- String name = ""; // 성명 |
|
| 3703 |
- String M_name = ""; // 미성년자 성명 |
|
| 3704 |
- String M_birthDay = ""; // 미성년자 생년월일 |
|
| 3705 |
- String M_Gender = ""; // 미성년자 성별 |
|
| 3706 |
- String M_nation = ""; // 미성년자 내외국인 |
|
| 3707 |
- String result = ""; // 결과값 |
|
| 3708 |
- |
|
| 3709 |
- String certMet = ""; // 인증방법 |
|
| 3710 |
- String ip = ""; // ip주소 |
|
| 3711 |
- String plusInfo = ""; |
|
| 3712 |
- |
|
| 3713 |
- String encPara = ""; |
|
| 3714 |
- String encMsg1 = ""; |
|
| 3715 |
- String encMsg2 = ""; |
|
| 3716 |
- String msgChk = ""; |
|
| 3717 |
- |
|
| 3718 |
- com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); |
|
| 3719 |
- |
|
| 3720 |
- //02. 1차 복호화 |
|
| 3721 |
- //수신된 certNum를 이용하여 복호화 |
|
| 3722 |
- rec_cert = seed.getDec(rec_cert, k_certNum); |
|
| 3723 |
- |
|
| 3724 |
- //03. 1차 파싱 |
|
| 3725 |
- int inf1 = rec_cert.indexOf("/",0);
|
|
| 3726 |
- int inf2 = rec_cert.indexOf("/",inf1+1);
|
|
| 3727 |
- |
|
| 3728 |
- encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 |
|
| 3729 |
- encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 |
|
| 3730 |
- |
|
| 3731 |
- //04. 위변조 검증 |
|
| 3732 |
- encMsg2 = seed.getMsg(encPara); |
|
| 3733 |
- kmcVO.setEncMsg2(encMsg2); |
|
| 3734 |
- if(encMsg2.equals(encMsg1)){
|
|
| 3735 |
- msgChk="Y"; |
|
| 3736 |
- } |
|
| 3737 |
- |
|
| 3738 |
- if(!"Y".equals(msgChk)) {
|
|
| 3739 |
- errMessage = "비정상접근입니다."; |
|
| 3740 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3741 |
- } |
|
| 3742 |
- |
|
| 3743 |
- //05. 2차 복호화 |
|
| 3744 |
- rec_cert = seed.getDec(encPara, k_certNum); |
|
| 3745 |
- kmcVO.setRecCert(rec_cert); |
|
| 3746 |
- //06. 2차 파싱 |
|
| 3747 |
- int info1 = rec_cert.indexOf("/",0);
|
|
| 3748 |
- int info2 = rec_cert.indexOf("/",info1+1);
|
|
| 3749 |
- int info3 = rec_cert.indexOf("/",info2+1);
|
|
| 3750 |
- int info4 = rec_cert.indexOf("/",info3+1);
|
|
| 3751 |
- int info5 = rec_cert.indexOf("/",info4+1);
|
|
| 3752 |
- int info6 = rec_cert.indexOf("/",info5+1);
|
|
| 3753 |
- int info7 = rec_cert.indexOf("/",info6+1);
|
|
| 3754 |
- int info8 = rec_cert.indexOf("/",info7+1);
|
|
| 3755 |
- int info9 = rec_cert.indexOf("/",info8+1);
|
|
| 3756 |
- int info10 = rec_cert.indexOf("/",info9+1);
|
|
| 3757 |
- int info11 = rec_cert.indexOf("/",info10+1);
|
|
| 3758 |
- int info12 = rec_cert.indexOf("/",info11+1);
|
|
| 3759 |
- int info13 = rec_cert.indexOf("/",info12+1);
|
|
| 3760 |
- int info14 = rec_cert.indexOf("/",info13+1);
|
|
| 3761 |
- int info15 = rec_cert.indexOf("/",info14+1);
|
|
| 3762 |
- int info16 = rec_cert.indexOf("/",info15+1);
|
|
| 3763 |
- int info17 = rec_cert.indexOf("/",info16+1);
|
|
| 3764 |
- int info18 = rec_cert.indexOf("/",info17+1);
|
|
| 3765 |
- |
|
| 3766 |
- certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum); |
|
| 3767 |
- date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date); |
|
| 3768 |
- CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI); |
|
| 3769 |
- phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo); |
|
| 3770 |
- phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp); |
|
| 3771 |
- birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay); |
|
| 3772 |
- gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender); |
|
| 3773 |
- nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation); |
|
| 3774 |
- name = rec_cert.substring(info8+1,info9); kmcVO.setName(name); |
|
| 3775 |
- result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result); |
|
| 3776 |
- certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet); |
|
| 3777 |
- ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip); |
|
| 3778 |
- M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name); |
|
| 3779 |
- M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay); |
|
| 3780 |
- M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender); |
|
| 3781 |
- M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation); |
|
| 3782 |
- plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo); |
|
| 3783 |
- DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI); |
|
| 3784 |
- |
|
| 3785 |
- //07. CI, DI 복호화 |
|
| 3786 |
- CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI); |
|
| 3787 |
- DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI); |
|
| 3788 |
- |
|
| 3789 |
- if("Y".equals(result)) {
|
|
| 3790 |
- |
|
| 3791 |
- } |
|
| 3792 |
- |
|
| 3793 |
- //-------------------------------------------------------------- |
|
| 3794 |
- String regex = ""; |
|
| 3795 |
- if( certNum.length() == 0 || certNum.length() > 40){
|
|
| 3796 |
- errMessage = "요청번호 비정상."; |
|
| 3797 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3798 |
- } |
|
| 3799 |
- |
|
| 3800 |
- regex = "[0-9]*"; |
|
| 3801 |
- if( date.length() != 14 || !paramChk(regex, date) ){
|
|
| 3802 |
- errMessage = "요청일시"; |
|
| 3803 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3804 |
- } |
|
| 3805 |
- |
|
| 3806 |
- regex = "[A-Z]*"; |
|
| 3807 |
- if( certMet.length() != 1 || !paramChk(regex, certMet) ){
|
|
| 3808 |
- errMessage = "본인인증방법 비정상" + certMet; |
|
| 3809 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3810 |
- } |
|
| 3811 |
- |
|
| 3812 |
- |
|
| 3813 |
- regex = "[0-9]*"; |
|
| 3814 |
- if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){
|
|
| 3815 |
- errMessage = "휴대폰번호 비정상" ; |
|
| 3816 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3817 |
- } |
|
| 3818 |
- |
|
| 3819 |
- regex = "[A-Z]*"; |
|
| 3820 |
- if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){
|
|
| 3821 |
- errMessage = "이동통신사 비정상"; |
|
| 3822 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3823 |
- } |
|
| 3824 |
- |
|
| 3825 |
- regex = "[0-9]*"; |
|
| 3826 |
- if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){
|
|
| 3827 |
- errMessage = "생년월일 비정상"; |
|
| 3828 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3829 |
- } |
|
| 3830 |
- |
|
| 3831 |
- regex = "[0-9]*"; |
|
| 3832 |
- if( gender.length() != 1 || !paramChk(regex, gender) ){
|
|
| 3833 |
- errMessage = "성별 비정상"; |
|
| 3834 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3835 |
- } |
|
| 3836 |
- |
|
| 3837 |
- regex = "[0-9]*"; |
|
| 3838 |
- if( nation.length() != 1 || !paramChk(regex, nation) ){
|
|
| 3839 |
- errMessage = "내/외국인 비정상"; |
|
| 3840 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3841 |
- } |
|
| 3842 |
- |
|
| 3843 |
- regex = "[\\sA-Za-z가-�R.,-]*"; |
|
| 3844 |
- if( name.length() > 60 || !paramChk(regex, name) ){
|
|
| 3845 |
- errMessage = "성명 비정상"; |
|
| 3846 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3847 |
- } |
|
| 3848 |
- |
|
| 3849 |
- regex = "[A-Z]*"; |
|
| 3850 |
- if( result.length() != 1 || !paramChk(regex, result) ){
|
|
| 3851 |
- errMessage = "결과값 비정상"; |
|
| 3852 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3853 |
- } |
|
| 3854 |
- |
|
| 3855 |
- regex = "[\\sA-Za-z가-?.,-]*"; |
|
| 3856 |
- if( M_name.length() != 0 ){
|
|
| 3857 |
- if( M_name.length() > 60 || !paramChk(regex, M_name) ){
|
|
| 3858 |
- errMessage = "미성년자 성명 비정상"; |
|
| 3859 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3860 |
- } |
|
| 3861 |
- } |
|
| 3862 |
- |
|
| 3863 |
- regex = "[0-9]*"; |
|
| 3864 |
- if( M_birthDay.length() != 0 ){
|
|
| 3865 |
- if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){
|
|
| 3866 |
- errMessage = "미성년자 생년월일 비정상"; |
|
| 3867 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3868 |
- } |
|
| 3869 |
- } |
|
| 3870 |
- |
|
| 3871 |
- regex = "[0-9]*"; |
|
| 3872 |
- if( M_Gender.length() != 0 ){
|
|
| 3873 |
- if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){
|
|
| 3874 |
- errMessage = "미성년자 성별 비정상"; |
|
| 3875 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3876 |
- } |
|
| 3877 |
- } |
|
| 3878 |
- |
|
| 3879 |
- regex = "[0-9]*"; |
|
| 3880 |
- if( M_nation.length() != 0 ){
|
|
| 3881 |
- if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){
|
|
| 3882 |
- errMessage = "미성년자 내/외국인 비정상"; |
|
| 3883 |
- return returnPage(model , errMessage , kmcVO) ; |
|
| 3884 |
- } |
|
| 3885 |
- } |
|
| 3886 |
- |
|
| 3887 |
- |
|
| 3888 |
- //KMC 본인인증 로그 |
|
| 3889 |
- AuthCertVO certVO = new AuthCertVO(); |
|
| 3890 |
- certVO.setMberId(kmcVO.getPlusInfo()); |
|
| 3891 |
- certVO.setCertNum(kmcVO.getCertNum()); |
|
| 3892 |
- certVO.setCertDate(kmcVO.getDate()); |
|
| 3893 |
- certVO.setCertDi(kmcVO.getDI()); |
|
| 3894 |
- certVO.setCertPhone(kmcVO.getPhoneNo()); |
|
| 3895 |
- certVO.setCertNation(kmcVO.getNation()); |
|
| 3896 |
- certVO.setCertName(kmcVO.getName()); |
|
| 3897 |
- certVO.setCertResult(kmcVO.getResult()); |
|
| 3898 |
- certVO.setCertType("secureLoginOFF");
|
|
| 3899 |
- certVO.setCertIpaddr(kmcVO.getIp()); |
|
| 3900 |
- certVO.setBirthDay(kmcVO.getBirthDay()); |
|
| 3901 |
- certVO.setSexdstnCode(kmcVO.getGender()); |
|
| 3902 |
- |
|
| 3903 |
- |
|
| 3904 |
- //디비 테이블에 저장하기 |
|
| 3905 |
- mberManageService.insertCertInfoLog(certVO); |
|
| 3906 |
- |
|
| 3907 |
- |
|
| 2801 |
+ //kmc 본인인증 결과처리 |
|
| 2802 |
+ kmcVO = kmcCertChecker.authCertResult(request, response, model); |
|
| 2803 |
+ //kmc 본인인증 로그 처리 |
|
| 2804 |
+ AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "secureLoginOFF"); |
|
| 3908 | 2805 |
|
| 3909 | 2806 |
//본인 명의만 번호 변경 가능하게 |
| 3910 |
- if(mblDn.equals(DI)) {
|
|
| 2807 |
+ if(mblDn.equals(kmcVO.getDI())) {
|
|
| 3911 | 2808 |
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); |
| 3912 | 2809 |
MberManageVO mberManageVO = new MberManageVO(); |
| 3913 | 2810 |
mberManageVO.setSecuLoginFlag("N");
|
--- src/main/java/itn/let/uat/uia/web/KmcCertChecker.java
+++ src/main/java/itn/let/uat/uia/web/KmcCertChecker.java
... | ... | @@ -1,29 +1,44 @@ |
| 1 | 1 |
package itn.let.uat.uia.web; |
| 2 | 2 |
|
| 3 |
+import java.io.BufferedReader; |
|
| 4 |
+import java.io.IOException; |
|
| 5 |
+import java.io.InputStreamReader; |
|
| 6 |
+import java.io.OutputStream; |
|
| 7 |
+import java.net.HttpURLConnection; |
|
| 8 |
+import java.net.URL; |
|
| 3 | 9 |
import java.text.SimpleDateFormat; |
| 4 | 10 |
import java.util.Calendar; |
| 5 |
-import java.util.Map; |
|
| 6 | 11 |
import java.util.Random; |
| 7 | 12 |
|
| 8 | 13 |
import javax.annotation.Resource; |
| 9 | 14 |
import javax.servlet.http.HttpServletRequest; |
| 15 |
+import javax.servlet.http.HttpServletResponse; |
|
| 10 | 16 |
|
| 11 |
-import org.apache.commons.lang3.StringUtils; |
|
| 17 |
+import org.json.simple.JSONObject; |
|
| 18 |
+import org.json.simple.parser.JSONParser; |
|
| 19 |
+import org.json.simple.parser.ParseException; |
|
| 12 | 20 |
import org.springframework.stereotype.Component; |
| 13 | 21 |
import org.springframework.ui.ModelMap; |
| 22 |
+import org.springframework.web.servlet.FlashMap; |
|
| 23 |
+import org.springframework.web.servlet.FlashMapManager; |
|
| 24 |
+import org.springframework.web.servlet.support.RequestContextUtils; |
|
| 14 | 25 |
|
| 15 | 26 |
import com.icert.comm.secu.IcertSecuManager; |
| 16 | 27 |
|
| 17 | 28 |
import itn.let.cert.phone.service.CertPhoneService; |
| 18 | 29 |
import itn.let.cert.phone.service.MberCertPhoneVO; |
| 30 |
+import itn.let.mjo.pay.service.KmcVO; |
|
| 19 | 31 |
import itn.let.uat.uia.service.AuthCertVO; |
| 20 |
-import itn.let.uss.umt.service.MberManageVO; |
|
| 32 |
+import itn.let.uss.umt.service.EgovMberManageService; |
|
| 21 | 33 |
|
| 22 | 34 |
@Component("KmcCertChecker")
|
| 23 | 35 |
public class KmcCertChecker {
|
| 24 | 36 |
|
| 25 | 37 |
@Resource(name = "CertPhoneService") |
| 26 | 38 |
private CertPhoneService certPhoneService; |
| 39 |
+ |
|
| 40 |
+ @Resource(name = "mberManageService") |
|
| 41 |
+ private EgovMberManageService mberManageService; |
|
| 27 | 42 |
|
| 28 | 43 |
//회원가입 시 인증수단을 휴대폰 본인인증만 했을 경우 사용 |
| 29 | 44 |
public AuthCertVO authCertCheck( |
... | ... | @@ -64,11 +79,13 @@ |
| 64 | 79 |
String tr_add = "N"; // IFrame사용여부 |
| 65 | 80 |
|
| 66 | 81 |
//01. 한국모바일인증(주) 암호화 모듈 선언 |
| 67 |
- IcertSecuManager seed = new IcertSecuManager(); |
|
| 82 |
+// IcertSecuManager seed = new IcertSecuManager(); |
|
| 83 |
+ com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); |
|
| 68 | 84 |
|
| 69 | 85 |
//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화) |
| 70 | 86 |
String enc_tr_cert = ""; |
| 71 | 87 |
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar; |
| 88 |
+// tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"///////"+ plusInfo +"/"+ extendVar; |
|
| 72 | 89 |
enc_tr_cert = seed.getEnc(tr_cert, ""); |
| 73 | 90 |
|
| 74 | 91 |
//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC) |
... | ... | @@ -87,7 +104,315 @@ |
| 87 | 104 |
return authCertVO; |
| 88 | 105 |
} |
| 89 | 106 |
|
| 107 |
+ public KmcVO authCertResult( |
|
| 108 |
+ HttpServletRequest request |
|
| 109 |
+ , HttpServletResponse response |
|
| 110 |
+ , ModelMap model |
|
| 111 |
+ ) throws IOException {
|
|
| 112 |
+ |
|
| 113 |
+ //크롬 SameSite정책 방지 - 도메인이 다른 타사로 이동 시 크롬 정책에 의해 세션 유실이 일어나는 경우가 있는데, 이를 방지하기 위해 samesite 보안을 none처리 |
|
| 114 |
+ response.setHeader("Set-Cookie", "mberSession=mberSession; Secure; SameSite=None");
|
|
| 115 |
+ |
|
| 116 |
+ KmcVO kmcVO = new KmcVO(); //return VO |
|
| 117 |
+ |
|
| 118 |
+ // 변수 ------------------------------------------------------------------------------------------------------------- |
|
| 119 |
+ String api_token = ""; // 토큰값(암호화) |
|
| 120 |
+ String api_certNum = ""; // 요청번호(암호화) |
|
| 121 |
+ |
|
| 122 |
+ String message = ""; // JSON 전문 |
|
| 123 |
+ String result_cd = ""; // JSON 결과코드 |
|
| 124 |
+ String result_msg = ""; // JSON 결과-상세 |
|
| 125 |
+ String strResult = ""; // JSON 결과 |
|
| 126 |
+ String apiRecCert = ""; // JSON 전송 데이터 |
|
| 127 |
+ String apiCertNum = ""; // JSON 전송 데이터 |
|
| 128 |
+ |
|
| 129 |
+ String rec_cert = ""; // 결과수신DATA |
|
| 130 |
+ String k_certNum = ""; // 파라미터로 수신한 요청번호 |
|
| 131 |
+ String certNum = ""; // 요청번호 |
|
| 132 |
+ String date = ""; // 요청일시 |
|
| 133 |
+ String CI = ""; // 연계정보(CI) |
|
| 134 |
+ String DI = ""; // 중복가입확인정보(DI) |
|
| 135 |
+ String phoneNo = ""; // 휴대폰번호 |
|
| 136 |
+ String phoneCorp = ""; // 이동통신사 |
|
| 137 |
+ String birth = ""; // 생년월일 |
|
| 138 |
+ String gender = ""; // 성별 |
|
| 139 |
+ String nation = ""; // 내국인 |
|
| 140 |
+ String name = ""; // 성명 |
|
| 141 |
+ String reserve1 = ""; // 예비필드 |
|
| 142 |
+ String reserve2 = ""; // 예비필드 |
|
| 143 |
+ String reserve3 = ""; // 예비필드 |
|
| 144 |
+ String reserve4 = ""; // 예비필드 |
|
| 145 |
+ String result = ""; // 결과값 |
|
| 146 |
+ |
|
| 147 |
+ String certMet = ""; // 인증방법 |
|
| 148 |
+ String ip = ""; // ip주소 |
|
| 149 |
+ String plusInfo = ""; |
|
| 150 |
+ |
|
| 151 |
+ String encPara = ""; |
|
| 152 |
+ String encMsg1 = ""; |
|
| 153 |
+ String encMsg2 = ""; |
|
| 154 |
+ String msgChk = ""; |
|
| 155 |
+ //----------------------------------------------------------------------------------------------------------------- |
|
| 156 |
+ try{
|
|
| 157 |
+ // Parameter 수신 -------------------------------------------------------------------- |
|
| 158 |
+ api_token = request.getParameter("apiToken").trim();
|
|
| 159 |
+ api_certNum = request.getParameter("certNum");
|
|
| 160 |
+ |
|
| 161 |
+ // 파라미터 유효성 검증 |
|
| 162 |
+ if( api_token.length() == 0 ){
|
|
| 163 |
+ goErrorPage("토큰값 비정상", request, response);
|
|
| 164 |
+ return kmcVO; |
|
| 165 |
+ } |
|
| 166 |
+ if( api_certNum.length() == 0 ){
|
|
| 167 |
+ goErrorPage("요청번호 비정상", request, response);
|
|
| 168 |
+ return kmcVO; |
|
| 169 |
+ } |
|
| 170 |
+ |
|
| 171 |
+ //현재시각 세팅(YYYYMMDDHI24MISS) |
|
| 172 |
+ Calendar today = Calendar.getInstance(); |
|
| 173 |
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
| 174 |
+ String api_date = sdf.format(today.getTime()); |
|
| 175 |
+ |
|
| 176 |
+ //01. 암호화 모듈 (jar) Loading |
|
| 177 |
+ com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager(); |
|
| 178 |
+ |
|
| 179 |
+ //api_token, api_certNum 복호화 |
|
| 180 |
+ api_token = seed.getDec(api_token, ""); |
|
| 181 |
+ api_certNum = seed.getDec(api_certNum, ""); |
|
| 182 |
+ |
|
| 183 |
+ // 파라미터 유효성 검증 |
|
| 184 |
+ if( api_token.length() == 0 ){
|
|
| 185 |
+ goErrorPage("토큰값 비정상(복호화 후)", request, response);
|
|
| 186 |
+ return kmcVO; |
|
| 187 |
+ } |
|
| 188 |
+ if( api_certNum.length() == 0 ){
|
|
| 189 |
+ goErrorPage("요청번호 비정상(복호화 후)", request, response);
|
|
| 190 |
+ return kmcVO; |
|
| 191 |
+ } |
|
| 192 |
+ |
|
| 193 |
+ // 1. URL 설정 |
|
| 194 |
+ String serverURL = "https://www.kmcert.com/kmcis/api/kmcisToken_api.jsp"; |
|
| 195 |
+ |
|
| 196 |
+ // 2. 연결 생성 |
|
| 197 |
+ URL url = new URL(serverURL); |
|
| 198 |
+ |
|
| 199 |
+ // 3. HttpURLConnection 객체 생성. |
|
| 200 |
+ HttpURLConnection con = null; |
|
| 201 |
+ OutputStream wr = null; |
|
| 202 |
+ BufferedReader bufferedReader = null; |
|
| 203 |
+ |
|
| 204 |
+ // 4. URL 연결 (웹페이지 URL 연결.) |
|
| 205 |
+ con = (HttpURLConnection)url.openConnection(); |
|
| 206 |
+ |
|
| 207 |
+ con.setConnectTimeout(20000); // TimeOut 시간 (서버 접속시 연결 시간 - 20초) |
|
| 208 |
+ con.setReadTimeout(20000); // TimeOut 시간 (Read시 연결 시간 - 20초) |
|
| 209 |
+ con.setDoOutput(true); // OutputStream으로 POST 데이터를 넘겨주겠다는 옵션. |
|
| 210 |
+ |
|
| 211 |
+ con.setRequestProperty("Content-Type", "application/json;charset=utf-8"); // 타입설정(application/json) 형식으로 전송 (Request Body 전달시 application/json로 서버에 전달.)
|
|
| 212 |
+ con.setRequestProperty("Accept", "application/json"); // 서버 Response Data를 JSON 형식의 타입으로 요청.
|
|
| 213 |
+ con.setRequestMethod("POST"); // 요청 방식 선택 (POST)
|
|
| 214 |
+ |
|
| 215 |
+ // 5. JSON 전문 구성 |
|
| 216 |
+ |
|
| 217 |
+ JSONObject jsonData = new JSONObject(); |
|
| 218 |
+ |
|
| 219 |
+ jsonData.put("apiToken", api_token);
|
|
| 220 |
+ jsonData.put("apiDate", api_date);
|
|
| 221 |
+ |
|
| 222 |
+ message = jsonData.toString(); |
|
| 223 |
+ |
|
| 224 |
+ // 6. 전송 |
|
| 225 |
+ // Request Body에 Data를 담기위해 OutputStream 객체를 생성. |
|
| 226 |
+ wr = con.getOutputStream(); |
|
| 227 |
+ |
|
| 228 |
+ // Request Body에 Data 셋팅.(한글깨짐 방지를 위해 utf-8인코딩 처리 |
|
| 229 |
+ wr.write(message.getBytes("utf-8"));
|
|
| 230 |
+ wr.flush(); |
|
| 231 |
+ wr.close(); |
|
| 232 |
+ |
|
| 233 |
+ // 실제 서버로 Request 요청 하는 부분. (응답 코드를 받는다. 200 성공, 나머지 에러) |
|
| 234 |
+ int responseCode = con.getResponseCode(); |
|
| 235 |
+ |
|
| 236 |
+ // 4. 결과 수신 |
|
| 237 |
+ if(responseCode == 200){
|
|
| 238 |
+ bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); |
|
| 239 |
+ }else{
|
|
| 240 |
+ bufferedReader = new BufferedReader(new InputStreamReader(con.getErrorStream(), "UTF-8")); |
|
| 241 |
+ } |
|
| 242 |
+ |
|
| 243 |
+ if(bufferedReader != null){
|
|
| 244 |
+ |
|
| 245 |
+ StringBuilder stringBuilder = new StringBuilder(); |
|
| 246 |
+ String line = ""; |
|
| 247 |
+ |
|
| 248 |
+ while((line = bufferedReader.readLine()) != null){
|
|
| 249 |
+ stringBuilder.append(line); |
|
| 250 |
+ } |
|
| 251 |
+ bufferedReader.close(); |
|
| 252 |
+ |
|
| 253 |
+ String stringRet = stringBuilder.toString(); |
|
| 254 |
+ |
|
| 255 |
+ // 5. 넘어온 문자열을 JSON 객체로 변환 |
|
| 256 |
+ JSONParser jsonParser = new JSONParser(); |
|
| 257 |
+ |
|
| 258 |
+ //JSON데이터를 넣어 JSON Object 로 만들어 준다. |
|
| 259 |
+ JSONObject jsonObj = (JSONObject)jsonParser.parse(stringRet); |
|
| 260 |
+ |
|
| 261 |
+ // 6. JSON 객체에서 데이터 가져오기 |
|
| 262 |
+ |
|
| 263 |
+ if(jsonObj.get("result_cd") != null){
|
|
| 264 |
+ result_cd = jsonObj.get("result_cd").toString();
|
|
| 265 |
+ if("APR01".equals(result_cd)){
|
|
| 266 |
+ //통신성공 |
|
| 267 |
+ strResult = "Y"; |
|
| 268 |
+ rec_cert = jsonObj.get("apiRecCert").toString();
|
|
| 269 |
+ k_certNum = jsonObj.get("apiCertNum").toString();
|
|
| 270 |
+ }else if("APR02".equals(result_cd)){
|
|
| 271 |
+ //실패 - Token Expire |
|
| 272 |
+ strResult = "N"; |
|
| 273 |
+ result_msg = "실패 - Token Expire"; |
|
| 274 |
+ }else if("APR03".equals(result_cd)){
|
|
| 275 |
+ //실패 - Token Not Found |
|
| 276 |
+ strResult = "N"; |
|
| 277 |
+ result_msg = "실패 - Token Not Found"; |
|
| 278 |
+ }else if("APR04".equals(result_cd)){
|
|
| 279 |
+ //실패 - API 요청일시 길이 오류 |
|
| 280 |
+ strResult = "N"; |
|
| 281 |
+ result_msg = "실패 - API 요청일시 길이 오류"; |
|
| 282 |
+ }else if("APR05".equals(result_cd)){
|
|
| 283 |
+ //실패 - API 토큰 길이 오류 |
|
| 284 |
+ strResult = "N"; |
|
| 285 |
+ result_msg = "실패 - API 토큰 길이 오류"; |
|
| 286 |
+ }else if("APR06".equals(result_cd)){
|
|
| 287 |
+ //실패 - 결과전송 재요청(3회 제한) |
|
| 288 |
+ strResult = "N"; |
|
| 289 |
+ result_msg = "실패 - 결과전송 재요청(3회 제한)"; |
|
| 290 |
+ } |
|
| 291 |
+ }else{
|
|
| 292 |
+ //JSON 결과코드 에러 |
|
| 293 |
+ strResult = "F"; |
|
| 294 |
+ } |
|
| 295 |
+ }else{ //timeout except 처리
|
|
| 296 |
+ strResult = "F"; |
|
| 297 |
+ } |
|
| 298 |
+ |
|
| 299 |
+ // 파라미터 유효성 검증 |
|
| 300 |
+ if(!strResult.equals("Y")){
|
|
| 301 |
+ goErrorPage("결과값 비정상, 결과코드["+result_cd+"], "+"상세내용["+result_msg+"]", request, response);
|
|
| 302 |
+ return kmcVO; |
|
| 303 |
+ } |
|
| 304 |
+ |
|
| 305 |
+ //02. 1차 복호화 |
|
| 306 |
+ rec_cert = seed.getDec(rec_cert, ""); |
|
| 307 |
+ |
|
| 308 |
+ //03. 1차 파싱 |
|
| 309 |
+ int inf1 = rec_cert.indexOf("/",0);
|
|
| 310 |
+ int inf2 = rec_cert.indexOf("/",inf1+1);
|
|
| 311 |
+ |
|
| 312 |
+ encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터 |
|
| 313 |
+ encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값 |
|
| 314 |
+ |
|
| 315 |
+ //04. 위변조 검증 |
|
| 316 |
+ encMsg2 = seed.getMsg(encPara); |
|
| 317 |
+ |
|
| 318 |
+ if(encMsg2.equals(encMsg1)){
|
|
| 319 |
+ msgChk="Y"; |
|
| 320 |
+ } |
|
| 321 |
+ |
|
| 322 |
+ if(msgChk.equals("N")){
|
|
| 323 |
+ goErrorPage("비정상적인 접근입니다.!!", request, response);
|
|
| 324 |
+ return kmcVO; |
|
| 325 |
+ } |
|
| 326 |
+ |
|
| 327 |
+ //05. 2차 복호화 |
|
| 328 |
+ rec_cert = seed.getDec(encPara, ""); |
|
| 329 |
+ |
|
| 330 |
+ //06. 2차 파싱 |
|
| 331 |
+ int info1 = rec_cert.indexOf("/",0);
|
|
| 332 |
+ int info2 = rec_cert.indexOf("/",info1+1);
|
|
| 333 |
+ int info3 = rec_cert.indexOf("/",info2+1);
|
|
| 334 |
+ int info4 = rec_cert.indexOf("/",info3+1);
|
|
| 335 |
+ int info5 = rec_cert.indexOf("/",info4+1);
|
|
| 336 |
+ int info6 = rec_cert.indexOf("/",info5+1);
|
|
| 337 |
+ int info7 = rec_cert.indexOf("/",info6+1);
|
|
| 338 |
+ int info8 = rec_cert.indexOf("/",info7+1);
|
|
| 339 |
+ int info9 = rec_cert.indexOf("/",info8+1);
|
|
| 340 |
+ int info10 = rec_cert.indexOf("/",info9+1);
|
|
| 341 |
+ int info11 = rec_cert.indexOf("/",info10+1);
|
|
| 342 |
+ int info12 = rec_cert.indexOf("/",info11+1);
|
|
| 343 |
+ int info13 = rec_cert.indexOf("/",info12+1);
|
|
| 344 |
+ int info14 = rec_cert.indexOf("/",info13+1);
|
|
| 345 |
+ int info15 = rec_cert.indexOf("/",info14+1);
|
|
| 346 |
+ int info16 = rec_cert.indexOf("/",info15+1);
|
|
| 347 |
+ int info17 = rec_cert.indexOf("/",info16+1);
|
|
| 348 |
+ int info18 = rec_cert.indexOf("/",info17+1);
|
|
| 349 |
+ |
|
| 350 |
+ kmcVO.setCertNum (rec_cert.substring(0,info1)); |
|
| 351 |
+ kmcVO.setDate (rec_cert.substring(info1+1,info2)); |
|
| 352 |
+ //CI 복호화 |
|
| 353 |
+ kmcVO.setCI (seed.getDec(rec_cert.substring(info2+1,info3), "")); |
|
| 354 |
+ kmcVO.setPhoneNo (rec_cert.substring(info3+1,info4)); |
|
| 355 |
+ kmcVO.setPhoneCorp (rec_cert.substring(info4+1,info5)); |
|
| 356 |
+ kmcVO.setBirthDay (rec_cert.substring(info5+1,info6)); |
|
| 357 |
+ kmcVO.setGender (rec_cert.substring(info6+1,info7)); |
|
| 358 |
+ kmcVO.setNation (rec_cert.substring(info7+1,info8)); |
|
| 359 |
+ kmcVO.setName (rec_cert.substring(info8+1,info9)); |
|
| 360 |
+ kmcVO.setResult (rec_cert.substring(info9+1,info10)); |
|
| 361 |
+ kmcVO.setCertMet (rec_cert.substring(info10+1,info11)); |
|
| 362 |
+ kmcVO.setIp (rec_cert.substring(info11+1,info12)); |
|
| 363 |
+ kmcVO.setReserve1 (rec_cert.substring(info12+1,info13)); |
|
| 364 |
+ kmcVO.setReserve2 (rec_cert.substring(info13+1,info14)); |
|
| 365 |
+ kmcVO.setReserve3 (rec_cert.substring(info14+1,info15)); |
|
| 366 |
+ kmcVO.setReserve4 (rec_cert.substring(info15+1,info16)); |
|
| 367 |
+ kmcVO.setPlusInfo (rec_cert.substring(info16+1,info17)); |
|
| 368 |
+ //DI 복호화 |
|
| 369 |
+ kmcVO.setDI (seed.getDec(rec_cert.substring(info17+1,info18), "")); |
|
| 370 |
+ |
|
| 371 |
+ //07. CI, DI 복호화 |
|
| 372 |
+// CI = seed.getDec(CI, ""); |
|
| 373 |
+// DI = seed.getDec(DI, ""); |
|
| 374 |
+ |
|
| 375 |
+ // ---------------------------------------------------------------------------------- |
|
| 376 |
+ |
|
| 377 |
+ }catch(StringIndexOutOfBoundsException ex){
|
|
| 378 |
+ goErrorPage("StringIndexOutOfBoundsException", request, response);
|
|
| 379 |
+ }catch(NullPointerException ex){
|
|
| 380 |
+ goErrorPage("NullPointerException", request, response);
|
|
| 381 |
+ }catch(NumberFormatException ex){
|
|
| 382 |
+ goErrorPage("NumberFormatException", request, response);
|
|
| 383 |
+ }catch(IllegalStateException ex){
|
|
| 384 |
+ goErrorPage("IllegalStateException", request, response);
|
|
| 385 |
+ }catch(IndexOutOfBoundsException ex){
|
|
| 386 |
+ goErrorPage("IndexOutOfBoundsException", request, response);
|
|
| 387 |
+ } catch (IOException e) {
|
|
| 388 |
+ goErrorPage("IOException", request, response);
|
|
| 389 |
+ } catch (ParseException e) {
|
|
| 390 |
+ goErrorPage("ParseException", request, response);
|
|
| 391 |
+ } |
|
| 392 |
+ return kmcVO; |
|
| 393 |
+ } |
|
| 90 | 394 |
|
| 395 |
+ public AuthCertVO insertCertLog(KmcVO kmcVO, String msg) throws Exception {
|
|
| 396 |
+ //KMC 본인인증 로그 insert |
|
| 397 |
+ AuthCertVO certVO = new AuthCertVO(); |
|
| 398 |
+ certVO.setMberId(kmcVO.getPlusInfo()); |
|
| 399 |
+ certVO.setCertNum(kmcVO.getCertNum()); |
|
| 400 |
+ certVO.setCertDate(kmcVO.getDate()); |
|
| 401 |
+ certVO.setCertDi(kmcVO.getDI()); |
|
| 402 |
+ certVO.setCertPhone(kmcVO.getPhoneNo()); |
|
| 403 |
+ certVO.setCertNation(kmcVO.getNation()); |
|
| 404 |
+ certVO.setCertName(kmcVO.getName()); |
|
| 405 |
+ certVO.setCertResult(kmcVO.getResult()); |
|
| 406 |
+ certVO.setCertType(msg); |
|
| 407 |
+ certVO.setCertIpaddr(kmcVO.getIp()); |
|
| 408 |
+ certVO.setBirthDay(kmcVO.getBirthDay()); |
|
| 409 |
+ certVO.setSexdstnCode(kmcVO.getGender()); |
|
| 410 |
+ |
|
| 411 |
+ //디비 테이블에 저장하기 |
|
| 412 |
+ mberManageService.insertCertInfoLog(certVO); |
|
| 413 |
+ |
|
| 414 |
+ return certVO; |
|
| 415 |
+ } |
|
| 91 | 416 |
|
| 92 | 417 |
private String getDomain(HttpServletRequest request) {
|
| 93 | 418 |
String serverNm = request.getScheme() + "://" + request.getServerName(); |
... | ... | @@ -144,5 +469,12 @@ |
| 144 | 469 |
return mberCertPhoneVO; |
| 145 | 470 |
} |
| 146 | 471 |
|
| 472 |
+ private void goErrorPage(String msg, HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
| 473 |
+ FlashMap flashMap = RequestContextUtils.getOutputFlashMap(request); |
|
| 474 |
+ flashMap.put("msg", msg);
|
|
| 475 |
+ FlashMapManager flashMapManager = RequestContextUtils.getFlashMapManager(request); |
|
| 476 |
+ flashMapManager.saveOutputFlashMap(flashMap, request, response); |
|
| 477 |
+ response.sendRedirect("/web/cert/log/kmcErrorPage.do");
|
|
| 478 |
+ } |
|
| 147 | 479 |
|
| 148 | 480 |
} |
--- src/main/java/itn/let/uat/uia/web/SendLogVO.java
+++ src/main/java/itn/let/uat/uia/web/SendLogVO.java
... | ... | @@ -19,6 +19,8 @@ |
| 19 | 19 |
/*내용*/ |
| 20 | 20 |
private String contents; |
| 21 | 21 |
|
| 22 |
+ private String sendMsgType; |
|
| 23 |
+ |
|
| 22 | 24 |
|
| 23 | 25 |
public String getSendId() {
|
| 24 | 26 |
return sendId; |
... | ... | @@ -62,5 +64,13 @@ |
| 62 | 64 |
public void setContents(String contents) {
|
| 63 | 65 |
this.contents = contents; |
| 64 | 66 |
} |
| 67 |
+ public String getSendMsgType() {
|
|
| 68 |
+ return sendMsgType; |
|
| 69 |
+ } |
|
| 70 |
+ public void setSendMsgType(String sendMsgType) {
|
|
| 71 |
+ this.sendMsgType = sendMsgType; |
|
| 72 |
+ } |
|
| 73 |
+ |
|
| 74 |
+ |
|
| 65 | 75 |
|
| 66 | 76 |
} |
--- src/main/resources/egovframework/spring/com/context-security.xml
+++ src/main/resources/egovframework/spring/com/context-security.xml
... | ... | @@ -4,7 +4,7 @@ |
| 4 | 4 |
xmlns:security="http://www.springframework.org/schema/security" |
| 5 | 5 |
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd |
| 6 | 6 |
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-4.2.xsd |
| 7 |
- http://www.egovframe.go.kr/schema/egov-security http://www.egovframe.go.kr/schema/egov-security/egov-security-3.7.xsd"> |
|
| 7 |
+ http://www.egovframe.go.kr/schema/egov-security http://maven.egovframe.go.kr/schema/egov-security/egov-security-3.7.xsd"> |
|
| 8 | 8 |
|
| 9 | 9 |
<security:http pattern="/css/**" security="none"/> |
| 10 | 10 |
<security:http pattern="/html/**" security="none"/> |
--- src/main/resources/egovframework/sqlmap/let/mjo/kakao/Kakao_AT_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/mjo/kakao/Kakao_AT_SQL_Mysql.xml
... | ... | @@ -230,7 +230,7 @@ |
| 230 | 230 |
, MMD.BIZ_UMID AS bizUmid |
| 231 | 231 |
, MMD.MSG_TYPE AS msgType |
| 232 | 232 |
FROM |
| 233 |
- MJ_MSG_DATA MMD |
|
| 233 |
+ MJ_MSG_DATA MMD FORCE index (IDX_MJ_MSG_DATA_13) |
|
| 234 | 234 |
INNER JOIN LETTNGNRLMBER MB |
| 235 | 235 |
ON MMD.USER_ID = MB.MBER_ID |
| 236 | 236 |
INNER JOIN mj_msg_group_data MMGD |
--- src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml
... | ... | @@ -3737,7 +3737,8 @@ |
| 3737 | 3737 |
RECEIVE, |
| 3738 | 3738 |
FRST_SEND_PNTTM, |
| 3739 | 3739 |
CHECK_NO, |
| 3740 |
- CONTENTS |
|
| 3740 |
+ CONTENTS, |
|
| 3741 |
+ SEND_MSG_TYPE |
|
| 3741 | 3742 |
) |
| 3742 | 3743 |
|
| 3743 | 3744 |
|
... | ... | @@ -3750,7 +3751,8 @@ |
| 3750 | 3751 |
#receive#, |
| 3751 | 3752 |
now(), |
| 3752 | 3753 |
#checkNo#, |
| 3753 |
- #contents# |
|
| 3754 |
+ #contents#, |
|
| 3755 |
+ #sendMsgType# |
|
| 3754 | 3756 |
) |
| 3755 | 3757 |
</insert> |
| 3756 | 3758 |
|
... | ... | @@ -8298,5 +8300,21 @@ |
| 8298 | 8300 |
|
| 8299 | 8301 |
</delete> |
| 8300 | 8302 |
|
| 8303 |
+ <select id="mjonMsgDataDAO.selectSysMsgTodaySendYn" parameterClass="SendLogVO" resultClass="boolean"> |
|
| 8304 |
+ SELECT |
|
| 8305 |
+ <![CDATA[ |
|
| 8306 |
+ COUNT(1) >= 1 AS todaySendYn |
|
| 8307 |
+ ]]> |
|
| 8308 |
+ FROM |
|
| 8309 |
+ mj_system_send a |
|
| 8310 |
+ WHERE |
|
| 8311 |
+ RECEIVE = #receive# |
|
| 8312 |
+ <![CDATA[ |
|
| 8313 |
+ AND FRST_SEND_PNTTM >= CURDATE() |
|
| 8314 |
+ AND FRST_SEND_PNTTM < CURDATE() + INTERVAL 1 DAY |
|
| 8315 |
+ ]]> |
|
| 8316 |
+ AND SEND_MSG_TYPE = '01' |
|
| 8317 |
+ </select> |
|
| 8318 |
+ |
|
| 8301 | 8319 |
</sqlMap> |
| 8302 | 8320 |
|
--- src/main/resources/egovframework/sqlmap/let/sym/site/EgovSiteManage_SQL_Mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/sym/site/EgovSiteManage_SQL_Mysql.xml
... | ... | @@ -980,6 +980,7 @@ |
| 980 | 980 |
IFNULL(SLACK_NOTI, 'N') AS slackNoti, |
| 981 | 981 |
IFNULL(SMISHING_NOTI, 'N') AS smishingNoti, |
| 982 | 982 |
IFNULL(HOLI_SMISHING_NOTI, 'N') AS holiSmishingNoti, |
| 983 |
+ IFNULL(SMS_NOTI_IF_OVER_FIFTY, 'N') AS smsNotiIfOverFifty, |
|
| 983 | 984 |
LAST_UPDUSR_ID AS lasUpdusrId, |
| 984 | 985 |
LAST_UPDT_PNTTM AS lastUpdtPnttm |
| 985 | 986 |
FROM MJ_MBER_SETTING |
--- src/main/webapp/WEB-INF/jsp/sample/kmc/kmcis_web_sample_step02.jsp
+++ src/main/webapp/WEB-INF/jsp/sample/kmc/kmcis_web_sample_step02.jsp
... | ... | @@ -344,6 +344,7 @@ |
| 344 | 344 |
<input type="hidden" name="tr_cert" value = "<%=tr_cert%>"> |
| 345 | 345 |
<input type="hidden" name="tr_url" value = "<%=tr_url%>"> |
| 346 | 346 |
<input type="hidden" name="tr_add" value = "<%=tr_add%>"> |
| 347 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 347 | 348 |
<input type="submit" value="본인인증서비스 요청" onclick= "javascript:openKMCISWindow();"> |
| 348 | 349 |
</form> |
| 349 | 350 |
<BR> |
--- src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/AddrGroupListAjax.jsp
... | ... | @@ -904,5 +904,6 @@ |
| 904 | 904 |
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
| 905 | 905 |
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
| 906 | 906 |
<input type="hidden" name="mberId" id="mberId" value= "${userId}">
|
| 907 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 907 | 908 |
</form> |
| 908 | 909 |
|
--- src/main/webapp/WEB-INF/jsp/web/api/examDown.jsp
+++ src/main/webapp/WEB-INF/jsp/web/api/examDown.jsp
... | ... | @@ -9,7 +9,8 @@ |
| 9 | 9 |
$('.download_btn').click(function(){
|
| 10 | 10 |
// click tag에 data-info="" 값 가져옴 |
| 11 | 11 |
var type = $(this).data('info');
|
| 12 |
- var downUrl = "<c:out value='/sample_mjon/type_샘플_예제.zip' />"; |
|
| 12 |
+// var downUrl = "<c:out value='/sample_mjon/type_샘플_예제.zip' />"; |
|
| 13 |
+ var downUrl = "<c:out value='/sample_mjon/type_샘플_예제_r2.zip' />"; |
|
| 13 | 14 |
downUrl = downUrl.replace('type', type);
|
| 14 | 15 |
location.href = downUrl; |
| 15 | 16 |
}); |
... | ... | @@ -34,8 +35,8 @@ |
| 34 | 35 |
|
| 35 | 36 |
<div class="pay_tab_wrap"> |
| 36 | 37 |
<ul class="tabType1"> |
| 37 |
- <li class="tab active"><button type="button" onclick="TabType5(this,'1');TabType3(this,'1');">문자</button></li> |
|
| 38 |
- <li class="tab"><button type="button" onclick="TabType5(this,'2');TabType3(this,'7');">카카오톡</button></li> |
|
| 38 |
+ <li class="tab active"><button type="button" onclick="TabType5(this,'1');listTab3(this,'1');$('.list_tab .tab:first-child').addClass('active').siblings().removeClass('active');">문자</button></li>
|
|
| 39 |
+ <li class="tab"><button type="button" onclick="TabType5(this,'2');listTab3(this,'7');$('.list_tab .tab:first-child').addClass('active').siblings().removeClass('active');">카카오톡</button></li>
|
|
| 39 | 40 |
</ul> |
| 40 | 41 |
</div> |
| 41 | 42 |
|
... | ... | @@ -97,6 +98,23 @@ |
| 97 | 98 |
<th>jsp_example_select_price_r1.jsp</th> |
| 98 | 99 |
<td>발송가능건수</td> |
| 99 | 100 |
</tr> |
| 101 |
+ |
|
| 102 |
+ <tr> |
|
| 103 |
+ <th>jsp_example_inqry_chnlid_r1.jsp</th> |
|
| 104 |
+ <td>카카오채널조회</td> |
|
| 105 |
+ </tr> |
|
| 106 |
+ <tr> |
|
| 107 |
+ <th>jsp_example_inqry_templates_list_r1.jsp</th> |
|
| 108 |
+ <td>카카오템플릿조회</td> |
|
| 109 |
+ </tr> |
|
| 110 |
+ <tr> |
|
| 111 |
+ <th>jsp_example_send_at_r1.jsp</th> |
|
| 112 |
+ <td>카카오알림톡발송</td> |
|
| 113 |
+ </tr> |
|
| 114 |
+ <tr> |
|
| 115 |
+ <th>jsp_example_send_ft_r1.jsp</th> |
|
| 116 |
+ <td>카카오친구톡발송</td> |
|
| 117 |
+ </tr> |
|
| 100 | 118 |
</table> |
| 101 | 119 |
</div> |
| 102 | 120 |
</div> |
... | ... | @@ -135,6 +153,23 @@ |
| 135 | 153 |
<tr> |
| 136 | 154 |
<th>php_example_select_price_r1.php</th> |
| 137 | 155 |
<td>발송가능건수</td> |
| 156 |
+ </tr> |
|
| 157 |
+ |
|
| 158 |
+ <tr> |
|
| 159 |
+ <th>php_example_inqry_chnlid_r1.php</th> |
|
| 160 |
+ <td>카카오채널조회</td> |
|
| 161 |
+ </tr> |
|
| 162 |
+ <tr> |
|
| 163 |
+ <th>php_example_inqry_templates_list_r1.php</th> |
|
| 164 |
+ <td>카카오템플릿조회</td> |
|
| 165 |
+ </tr> |
|
| 166 |
+ <tr> |
|
| 167 |
+ <th>php_example_send_at_r1.php</th> |
|
| 168 |
+ <td>카카오알림톡발송</td> |
|
| 169 |
+ </tr> |
|
| 170 |
+ <tr> |
|
| 171 |
+ <th>php_example_send_ft_r1.php</th> |
|
| 172 |
+ <td>카카오친구톡발송</td> |
|
| 138 | 173 |
</tr> |
| 139 | 174 |
</table> |
| 140 | 175 |
</div> |
... | ... | @@ -306,7 +341,7 @@ |
| 306 | 341 |
<div class="api_guide current" id="tab5_2"> |
| 307 | 342 |
<div class="api_download"> |
| 308 | 343 |
<ul class="info"> |
| 309 |
- <li>- 카카오톡아래 예제(JSP, PHP)를 참고하시어 쉽고 편리하게 API를 연동할 수 있습니다.</li> |
|
| 344 |
+ <li>- 아래 예제(JSP, PHP)를 참고하시어 쉽고 편리하게 API를 연동할 수 있습니다.</li> |
|
| 310 | 345 |
<li>- JSP, PHP 외 타 예제는 계속해서 업데이트 될 예정입니다.</li> |
| 311 | 346 |
</ul> |
| 312 | 347 |
|
... | ... | @@ -341,14 +376,22 @@ |
| 341 | 376 |
<col style="width:35%;"> |
| 342 | 377 |
<col style="width:65%;"> |
| 343 | 378 |
</colgroup> |
| 344 |
- <tr> |
|
| 345 |
- <th>kakao jsp_example_send_msg_r1.jsp</th> |
|
| 346 |
- <td>문자보내기(여러명에게 동일한문자)</td> |
|
| 347 |
- </tr> |
|
| 348 |
- <tr> |
|
| 349 |
- <th>sp_example_send_msgs_r1.jsp</th> |
|
| 350 |
- <td>문자보내기(여러명에게 다른문자)</td> |
|
| 351 |
- </tr> |
|
| 379 |
+ <tr> |
|
| 380 |
+ <th>jsp_example_inqry_chnlid_r1.jsp</th> |
|
| 381 |
+ <td>카카오채널조회</td> |
|
| 382 |
+ </tr> |
|
| 383 |
+ <tr> |
|
| 384 |
+ <th>jsp_example_inqry_templates_list_r1.jsp</th> |
|
| 385 |
+ <td>카카오템플릿조회</td> |
|
| 386 |
+ </tr> |
|
| 387 |
+ <tr> |
|
| 388 |
+ <th>jsp_example_send_at_r1.jsp</th> |
|
| 389 |
+ <td>카카오알림톡발송</td> |
|
| 390 |
+ </tr> |
|
| 391 |
+ <tr> |
|
| 392 |
+ <th>jsp_example_send_ft_r1.jsp</th> |
|
| 393 |
+ <td>카카오친구톡발송</td> |
|
| 394 |
+ </tr> |
|
| 352 | 395 |
<tr> |
| 353 | 396 |
<th>jsp_example_hstry_r1.jsp</th> |
| 354 | 397 |
<td>전송내역조회</td> |
... | ... | @@ -420,26 +463,34 @@ |
| 420 | 463 |
<col style="width:65%;"> |
| 421 | 464 |
</colgroup> |
| 422 | 465 |
<tbody> |
| 423 |
- <tr> |
|
| 424 |
- <th>php_example_send_msg_r1.php</th> |
|
| 425 |
- <td>문자보내기(여러명에게 동일한문자)</td> |
|
| 426 |
- </tr> |
|
| 427 |
- <tr> |
|
| 428 |
- <th>php_example_send_msgs_r1.php</th> |
|
| 429 |
- <td>문자보내기(여러명에게 다른문자)</td> |
|
| 430 |
- </tr> |
|
| 431 |
- <tr> |
|
| 432 |
- <th>php_example_hstry_r1.php</th> |
|
| 433 |
- <td>전송내역조회</td> |
|
| 434 |
- </tr> |
|
| 435 |
- <tr> |
|
| 436 |
- <th>php_example_hstry_detail_r1.php</th> |
|
| 437 |
- <td>상세전송내역조회</td> |
|
| 438 |
- </tr> |
|
| 439 |
- <tr> |
|
| 440 |
- <th>php_example_select_price_r1.php</th> |
|
| 441 |
- <td>발송가능건수</td> |
|
| 442 |
- </tr> |
|
| 466 |
+ <tr> |
|
| 467 |
+ <th>php_example_inqry_chnlid_r1.php</th> |
|
| 468 |
+ <td>카카오채널조회</td> |
|
| 469 |
+ </tr> |
|
| 470 |
+ <tr> |
|
| 471 |
+ <th>php_example_inqry_templates_list_r1.php</th> |
|
| 472 |
+ <td>카카오템플릿조회</td> |
|
| 473 |
+ </tr> |
|
| 474 |
+ <tr> |
|
| 475 |
+ <th>php_example_send_at_r1.php</th> |
|
| 476 |
+ <td>카카오알림톡발송</td> |
|
| 477 |
+ </tr> |
|
| 478 |
+ <tr> |
|
| 479 |
+ <th>php_example_send_ft_r1.php</th> |
|
| 480 |
+ <td>카카오친구톡발송</td> |
|
| 481 |
+ </tr> |
|
| 482 |
+ <tr> |
|
| 483 |
+ <th>php_example_hstry_r1.php</th> |
|
| 484 |
+ <td>전송내역조회</td> |
|
| 485 |
+ </tr> |
|
| 486 |
+ <tr> |
|
| 487 |
+ <th>php_example_hstry_detail_r1.php</th> |
|
| 488 |
+ <td>상세전송내역조회</td> |
|
| 489 |
+ </tr> |
|
| 490 |
+ <tr> |
|
| 491 |
+ <th>php_example_select_price_r1.php</th> |
|
| 492 |
+ <td>발송가능건수</td> |
|
| 493 |
+ </tr> |
|
| 443 | 494 |
</tbody> |
| 444 | 495 |
</table> |
| 445 | 496 |
</div> |
--- src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
+++ src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
... | ... | @@ -1896,6 +1896,7 @@ |
| 1896 | 1896 |
<input type="hidden" name="tr_cert" id="tr_certHeader" value = ""> |
| 1897 | 1897 |
<input type="hidden" name="tr_url" id="tr_urlHeader" value = ""> |
| 1898 | 1898 |
<input type="hidden" name="tr_add" id="tr_addHeader" value = ""> |
| 1899 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 1899 | 1900 |
</form> |
| 1900 | 1901 |
|
| 1901 | 1902 |
<form name="cmpChangeForm" id="cmpChangeForm" method="post" action="#"> |
--- src/main/webapp/WEB-INF/jsp/web/cop/bbs/include/mberSecession.jsp
+++ src/main/webapp/WEB-INF/jsp/web/cop/bbs/include/mberSecession.jsp
... | ... | @@ -90,6 +90,7 @@ |
| 90 | 90 |
<input type="hidden" id="tr_url" name="tr_url" value = "${certVO.tr_url}">
|
| 91 | 91 |
<input type="hidden" id="tr_add" name="tr_add" value = "${certVO.tr_add}">
|
| 92 | 92 |
<input type="hidden" id="tr_cert" name="tr_cert" value = "${certVO.tr_cert}">
|
| 93 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 93 | 94 |
</form> |
| 94 | 95 |
|
| 95 | 96 |
<!-- ars 본인인증 Form --> |
+++ src/main/webapp/WEB-INF/jsp/web/cop/kmc/certResultError.jsp
... | ... | @@ -0,0 +1,22 @@ |
| 1 | +<%@ page contentType="text/html; charset=utf-8"%> | |
| 2 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> | |
| 3 | +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> | |
| 4 | +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> | |
| 5 | +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> | |
| 6 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> | |
| 7 | +<script src="<c:url value='/js/jquery.js' />"></script> | |
| 8 | +<html> | |
| 9 | + <head> | |
| 10 | + <meta name="robots" content="noindex"> | |
| 11 | + | |
| 12 | + <script language=javascript> | |
| 13 | + $( document ).ready(function() { | |
| 14 | + alert("${msg}") | |
| 15 | + self.close(); | |
| 16 | + }); | |
| 17 | + </script> | |
| 18 | + | |
| 19 | + </head> | |
| 20 | + <body> | |
| 21 | + </body> | |
| 22 | +</html> (No newline at end of file) |
--- src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrGroupListAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/fax/addr/FaxAddrGroupListAjax.jsp
... | ... | @@ -821,5 +821,6 @@ |
| 821 | 821 |
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
| 822 | 822 |
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
| 823 | 823 |
<input type="hidden" name="mberId" id="mberId" value= "${userId}">
|
| 824 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 824 | 825 |
</form> |
| 825 | 826 |
|
--- src/main/webapp/WEB-INF/jsp/web/kakao/profile/KakaoProfileList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/profile/KakaoProfileList.jsp
... | ... | @@ -135,30 +135,8 @@ |
| 135 | 135 |
|
| 136 | 136 |
}else{
|
| 137 | 137 |
|
| 138 |
- if(code == '310'){
|
|
| 139 |
- |
|
| 140 |
- var infoSize = returnData.delInfoCnt; |
|
| 141 |
- |
|
| 142 |
- if(infoSize > 0){
|
|
| 143 |
- |
|
| 144 |
- if(confirm("기존에 삭제된 채널ID가 있습니다. 복구 하시겠습니까?")){
|
|
| 145 |
- |
|
| 146 |
- fnUpdateProfileStatus(); |
|
| 147 |
- |
|
| 148 |
- } |
|
| 149 |
- |
|
| 150 |
- }else{
|
|
| 151 |
- |
|
| 152 |
- alert("이미 등록된 채널ID 입니다. 타 사이트에 등록된 채널ID를 확인해 주세요.");
|
|
| 153 |
- return false; |
|
| 154 |
- } |
|
| 155 |
- |
|
| 156 |
- }else{//인증 토큰 발송에 오류가 있는 경우 카카오의 오류 메세지를 표시
|
|
| 157 |
- |
|
| 158 |
- alert("인증번호 받기 처리 중 오류가 발생하였습니다. 오류 코드 : " + msg);
|
|
| 159 |
- return false; |
|
| 160 |
- |
|
| 161 |
- } |
|
| 138 |
+ alert(msg); |
|
| 139 |
+ return false; |
|
| 162 | 140 |
|
| 163 | 141 |
} |
| 164 | 142 |
}else{
|
... | ... | @@ -170,37 +148,6 @@ |
| 170 | 148 |
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
| 171 | 149 |
} |
| 172 | 150 |
}); |
| 173 |
-} |
|
| 174 |
- |
|
| 175 |
-function fnUpdateProfileStatus(){
|
|
| 176 |
- |
|
| 177 |
- var data = new FormData(bizForm); |
|
| 178 |
- $.ajax({
|
|
| 179 |
- url : "<c:url value='/web/mjon/kakao/profile/updateKaKaoProfileStatusAjax.do'/>" |
|
| 180 |
- , type : 'POST' |
|
| 181 |
- , data : data |
|
| 182 |
- , dataType:'json' |
|
| 183 |
- , async: false |
|
| 184 |
- , processData: false |
|
| 185 |
- , contentType: false |
|
| 186 |
- , cache: false |
|
| 187 |
- , success: function (returnData, status) {
|
|
| 188 |
- |
|
| 189 |
- if(returnData.result == "success") {//인증번호 발송 완료
|
|
| 190 |
- |
|
| 191 |
- alert(returnData.kakaoInfo.bizReturnMsg); |
|
| 192 |
- location.reload(); |
|
| 193 |
- |
|
| 194 |
- }else{
|
|
| 195 |
- alert(returnData.kakaoInfo.bizReturnMsg); |
|
| 196 |
- return false; |
|
| 197 |
- } |
|
| 198 |
- } |
|
| 199 |
- ,error : function(request , status, error){
|
|
| 200 |
- alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
|
| 201 |
- } |
|
| 202 |
- }); |
|
| 203 |
- |
|
| 204 | 151 |
} |
| 205 | 152 |
|
| 206 | 153 |
function sendProfile(){
|
... | ... | @@ -259,23 +206,9 @@ |
| 259 | 206 |
|
| 260 | 207 |
if(returnData.result == "loginFail") {//차단 발신번호인 경우 등록 불가
|
| 261 | 208 |
alert("로그인후 진행");
|
| 262 |
- }else if(returnData.result == "success") {
|
|
| 263 |
- var code = returnData.kakaoInfo.bizReturnCode |
|
| 264 |
- if(code == "200"){
|
|
| 265 |
- alert(returnData.kakaoInfo.bizReturnMsg); |
|
| 266 |
- location.reload(); |
|
| 267 |
- }else if(code == "310"){//타사이트에 등록되어 있는 경우 알림메세지 표시
|
|
| 268 |
- |
|
| 269 |
- alert("이미 등록된 채널ID 입니다. 타 사이트에 등록된 채널ID를 확인해 주세요.");
|
|
| 270 |
- return false; |
|
| 271 |
- |
|
| 272 |
- }else{
|
|
| 273 |
- alert(returnData.kakaoInfo.bizReturnMsg); |
|
| 274 |
- return false; |
|
| 275 |
- } |
|
| 276 |
- }else if(returnData.result == "zeroUpdate"){
|
|
| 209 |
+ }else{
|
|
| 277 | 210 |
alert(returnData.kakaoInfo.bizReturnMsg); |
| 278 |
- return false; |
|
| 211 |
+ location.reload(); |
|
| 279 | 212 |
} |
| 280 | 213 |
}, |
| 281 | 214 |
beforeSend : function(xmlHttpRequest) {
|
--- src/main/webapp/WEB-INF/jsp/web/login/findUserId.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/findUserId.jsp
... | ... | @@ -860,6 +860,7 @@ |
| 860 | 860 |
<input type="hidden" name="tr_cert" id="tr_cert" value = "${tr_cert}">
|
| 861 | 861 |
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
| 862 | 862 |
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
| 863 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 863 | 864 |
<input type="hidden" name="mberNm" id="mberNm" value=""> |
| 864 | 865 |
<input type="hidden" name="moblphonNo" id="moblphonNo" value=""> |
| 865 | 866 |
<input type="hidden" name="mberId" id="mberId" value=""> |
--- src/main/webapp/WEB-INF/jsp/web/login/humanPageAuthenticatedPage.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/humanPageAuthenticatedPage.jsp
... | ... | @@ -129,6 +129,7 @@ |
| 129 | 129 |
<input type="hidden" name="tr_cert" id="tr_cert" value = "${tr_cert}">
|
| 130 | 130 |
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
| 131 | 131 |
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
| 132 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 132 | 133 |
<input type="hidden" name="mberNm" id="mberNm" value=""> |
| 133 | 134 |
<input type="hidden" name="moblphonNo" id="moblphonNo" value=""> |
| 134 | 135 |
<input type="hidden" name="mberId" id="mberId" value=""> |
--- src/main/webapp/WEB-INF/jsp/web/login/test_usrCheckTerms.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/test_usrCheckTerms.jsp
... | ... | @@ -644,6 +644,7 @@ |
| 644 | 644 |
<input type="hidden" name="tr_cert" id="tr_cert" value = "${tr_cert}">
|
| 645 | 645 |
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
| 646 | 646 |
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
| 647 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 647 | 648 |
</form> |
| 648 | 649 |
<form name="arsForm" method="post" action="#"> |
| 649 | 650 |
<input type="hidden" id="phoneNumber" name="phoneNumber" value = ""> |
--- src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms.jsp
... | ... | @@ -634,6 +634,7 @@ |
| 634 | 634 |
<input type="hidden" name="tr_cert" id="tr_cert" value = "${tr_cert}">
|
| 635 | 635 |
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
| 636 | 636 |
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
| 637 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 637 | 638 |
</form> |
| 638 | 639 |
<form name="arsForm" method="post" action="#"> |
| 639 | 640 |
<input type="hidden" id="phoneNumber" name="phoneNumber" value = ""> |
--- src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms_back2.jsp
+++ src/main/webapp/WEB-INF/jsp/web/login/usrCheckTerms_back2.jsp
... | ... | @@ -707,6 +707,7 @@ |
| 707 | 707 |
<input type="hidden" name="tr_cert" id="tr_cert" value = "${tr_cert}">
|
| 708 | 708 |
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
| 709 | 709 |
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
| 710 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 710 | 711 |
</form> |
| 711 | 712 |
<form name="arsForm" method="post" action="#"> |
| 712 | 713 |
<input type="hidden" id="phoneNumber" name="phoneNumber" value = ""> |
--- src/main/webapp/WEB-INF/jsp/web/user/mberCompanyInfoChange.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberCompanyInfoChange.jsp
... | ... | @@ -505,6 +505,7 @@ |
| 505 | 505 |
<input type="hidden" name="tr_cert" id="tr_cert" value=""> |
| 506 | 506 |
<input type="hidden" name="tr_url" id="tr_url" value=""> |
| 507 | 507 |
<input type="hidden" name="tr_add" id="tr_add" value=""> |
| 508 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 508 | 509 |
</form> |
| 509 | 510 |
|
| 510 | 511 |
<!-- 마이페이지 - 회원정보 변경 --> |
--- src/main/webapp/WEB-INF/jsp/web/user/mberInfoChange.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberInfoChange.jsp
... | ... | @@ -218,6 +218,7 @@ |
| 218 | 218 |
<input type="hidden" name="tr_cert" id="tr_cert" value=""> |
| 219 | 219 |
<input type="hidden" name="tr_url" id="tr_url" value=""> |
| 220 | 220 |
<input type="hidden" name="tr_add" id="tr_add" value=""> |
| 221 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 221 | 222 |
</form> |
| 222 | 223 |
|
| 223 | 224 |
<!-- 마이페이지 - 회원정보 변경 --> |
--- src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberInfoIndex.jsp
... | ... | @@ -304,6 +304,7 @@ |
| 304 | 304 |
<input type="hidden" id="tr_url" name="tr_url" value = "${certVO.tr_url}">
|
| 305 | 305 |
<input type="hidden" id="tr_add" name="tr_add" value = "${certVO.tr_add}">
|
| 306 | 306 |
<input type="hidden" id="tr_cert" name="tr_cert" value = "${certVO.tr_cert}">
|
| 307 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 307 | 308 |
</form> |
| 308 | 309 |
|
| 309 | 310 |
<form id="levelForm" name="levelForm" method="post"> |
--- src/main/webapp/WEB-INF/jsp/web/user/mberSecession.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberSecession.jsp
... | ... | @@ -97,6 +97,7 @@ |
| 97 | 97 |
<input type="hidden" id="tr_url" name="tr_url" value = "${certVO.tr_url}">
|
| 98 | 98 |
<input type="hidden" id="tr_add" name="tr_add" value = "${certVO.tr_add}">
|
| 99 | 99 |
<input type="hidden" id="tr_cert" name="tr_cert" value = "${certVO.tr_cert}">
|
| 100 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 100 | 101 |
</form> |
| 101 | 102 |
|
| 102 | 103 |
<!-- ars 본인인증 Form --> |
--- src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp
... | ... | @@ -704,6 +704,7 @@ |
| 704 | 704 |
<input type="hidden" id="tr_url" name="tr_url" value = "${certVO.tr_url}">
|
| 705 | 705 |
<input type="hidden" id="tr_add" name="tr_add" value = "${certVO.tr_add}">
|
| 706 | 706 |
<input type="hidden" id="tr_cert" name="tr_cert" value = "${certVO.tr_cert}">
|
| 707 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 707 | 708 |
</form> |
| 708 | 709 |
<form name="listForm" action="<c:url value='/web/user/mberSecureLogin.do'/>" method="post"> |
| 709 | 710 |
<input name="pageIndex" type="hidden" value="<c:out value='${mberCertLoginLogVO.pageIndex}'/>"/>
|
--- src/main/webapp/WEB-INF/jsp/web/user/selectPhoneNumberCertChkReq.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/selectPhoneNumberCertChkReq.jsp
... | ... | @@ -26,7 +26,8 @@ |
| 26 | 26 |
opener.parentVal = resultFlag; |
| 27 | 27 |
var resultNameChk = '${resultNameChk}';
|
| 28 | 28 |
opener.nameChkVal = resultNameChk; |
| 29 |
- opener.insertDocumentForm.ownerName.value = "${searchVO.name}";
|
|
| 29 |
+// opener.insertDocumentForm.ownerName.value = "${searchVO.name}";
|
|
| 30 |
+ opener.insertDocumentForm.ownerName.value = "${name}";
|
|
| 30 | 31 |
opener.insertDocumentForm.CI.value = "${CI}";
|
| 31 | 32 |
opener.insertDocumentForm.birthDay.value = "${birthDay}";
|
| 32 | 33 |
opener.hpCertChkResult(); |
--- src/main/webapp/WEB-INF/jsp/web/user/sendNumberKmcReqPage.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/sendNumberKmcReqPage.jsp
... | ... | @@ -27,7 +27,7 @@ |
| 27 | 27 |
</script> |
| 28 | 28 |
</head> |
| 29 | 29 |
<body> |
| 30 |
- <br><br> |
|
| 30 |
+ <%-- <br><br> |
|
| 31 | 31 |
[복호화 후 수신값] <br> |
| 32 | 32 |
<br> |
| 33 | 33 |
<table cellpadding=1 cellspacing=1> |
... | ... | @@ -120,6 +120,6 @@ |
| 120 | 120 |
rec_cert : ${kmcVO.recCert}<br>
|
| 121 | 121 |
<br> |
| 122 | 122 |
<br> |
| 123 |
- <a href="http://www.munjaon.co.kr/publish/kmc/kmcis_web_sample_step01.jsp">[다시 테스트]</a> |
|
| 123 |
+ <a href="http://www.munjaon.co.kr/publish/kmc/kmcis_web_sample_step01.jsp">[다시 테스트]</a> --%> |
|
| 124 | 124 |
</body> |
| 125 | 125 |
</html>(No newline at end of file) |
--- src/main/webapp/WEB-INF/jsp/web/user/sendNumberManageRegister.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/sendNumberManageRegister.jsp
... | ... | @@ -863,6 +863,7 @@ |
| 863 | 863 |
<input type="hidden" id="tr_url" name="tr_url" value = "${tr_url}">
|
| 864 | 864 |
<input type="hidden" id="tr_add" name="tr_add" value = "${tr_add}">
|
| 865 | 865 |
<input type="hidden" id="tr_cert" name="tr_cert" value = "${tr_cert}">
|
| 866 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 866 | 867 |
</form> |
| 867 | 868 |
|
| 868 | 869 |
<!-- ars 본인인증 Form --> |
--- src/main/webapp/WEB-INF/jsp/web/user/sendNumberManage_bak220502.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/sendNumberManage_bak220502.jsp
... | ... | @@ -408,6 +408,7 @@ |
| 408 | 408 |
<input type="hidden" id="tr_url" name="tr_url" value = "${tr_url}">
|
| 409 | 409 |
<input type="hidden" id="tr_add" name="tr_add" value = "${tr_add}">
|
| 410 | 410 |
<input type="hidden" id="tr_cert" name="tr_cert" value = "${tr_cert}">
|
| 411 |
+ <input type="hidden" name="tr_ver" value = "V2"> |
|
| 411 | 412 |
</form> |
| 412 | 413 |
|
| 413 | 414 |
<!-- ars 본인인증 Form --> |
--- src/main/webapp/WEB-INF/lib/ICERTSecu_JDK18.jar
| Binary file is not shown |
+++ src/main/webapp/sample_mjon/jsp_샘플_예제_r2.zip
| Binary file is not shown |
+++ src/main/webapp/sample_mjon/php_샘플_예제_r2.zip
| Binary file is not shown |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?