ITN_디자인팀 2023-07-03
Merge branch 'master' of http://alfk8281@vcs.iten.co.kr:9999/hylee/mjon_git
@1bd29db361e33015b17be4ba2943d1afc7a914b3
src/main/java/itn/com/cmm/interceptor/IPIgnoreInterceptorHandler.java
--- src/main/java/itn/com/cmm/interceptor/IPIgnoreInterceptorHandler.java
+++ src/main/java/itn/com/cmm/interceptor/IPIgnoreInterceptorHandler.java
@@ -13,6 +13,8 @@
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
 
+import com.google.common.net.InetAddresses;
+
 import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
 import itn.com.cmm.LoginVO;
 import itn.com.uss.olh.hpc.service.HackIpService;
@@ -84,6 +86,28 @@
 
 				HackIpVO hackIpVO = new HackIpVO();		
 				hackIpVO.setIgnoreIp(userIP);
+				
+				/*
+				 * 헤더 아이피 체크 해주기
+				 * "." 기준으로 문자열 분할 후 0 ~ 255 사이 값인지 체크 
+				 * 범위 값이 아닌경우 오류 처리
+				 * 
+				 * */
+				
+				boolean ipCheckType = false;
+				//IPv4, IPv6 모두 체크 해줌
+				if(InetAddresses.isInetAddress(userIP)) {
+					ipCheckType = true;
+				}
+				
+				if(!ipCheckType) {
+					
+					System.out.println("IPIgnoreInterceptorHandler-preHandle Header IP Check ERROR !!! ");
+					System.out.println("userIP ::: "+userIP);
+					response.sendRedirect(request.getContextPath() + "/");
+        			return true;
+					
+				}
 
 				int i_ignoreCnt	=	hackIpService.selectIgnoreIpCnt(hackIpVO);
 				
@@ -151,7 +175,11 @@
 		                loginLogService.logInsertLoginLog4Ajax(loginLog);
 		                
 	                }catch(Exception ex) {	                	
-	                	ex.printStackTrace();
+	                	//ex.printStackTrace();
+	                	System.out.println("IPIgnoreInterceptorHandler-preHandle Error !!! " + ex);
+	                	//오류가 발생하면 메일화면으로 이동 시킨다.
+	        			response.sendRedirect(request.getContextPath() + "/");
+	        			return true;
 		                
 	                }
 	        	}
@@ -163,11 +191,13 @@
 
 			
 		}catch(Exception ex) {
-			ex.printStackTrace();
+			//ex.printStackTrace();
+			System.out.println("IPIgnoreInterceptorHandler-preHandle Error !!! " + ex);
+			//오류가 발생하면 경로 오류를 발생 시킨다.
+			response.sendRedirect(request.getContextPath() + "/");
+			return true;
 		}
 
-		
-    	
         return v_ret;
     }
     
src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
--- src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
+++ src/main/java/itn/let/mjo/pay/web/MjonPayV2Controller.java
@@ -193,7 +193,7 @@
     //
     
     /**
-   	 * KGM 카드결제 정보 Encode
+   	 * KGM 간편결제 정보 Encode
    	 * @param MjonPayVO
    	 * @param modelAndView
    	 * @return /web/member/pay/kgmCardEncodeAjax.do
@@ -412,7 +412,7 @@
 			    		// SMS 체크
 			    		if (joinSettingVO != null && joinSettingVO.getSmsNoti().equals("Y")) {
 			    			// 스미싱의심 SMS 알림전송
-			    			mjonNoticeSendUtil.smishingSmsNoticeSend("카드결제 데이터 위·변조 가능성 결제오류 처리", Userid, "");    		
+			    			mjonNoticeSendUtil.smishingSmsNoticeSend("간편결제 데이터 위·변조 가능성 결제오류 처리", Userid, "");    		
 			    		}    		
 			    		
 			    		// SLACK 체크
@@ -506,7 +506,7 @@
 		    	mjonPayVO.setResultCode(Resultcd); 
 		    	mjonPayVO.setResultMsg(Resultmsg); 
 		    	mjonPayVO.setAmt(Prdtprice);			// 결제금액
-				mjonPayVO.setPayMethod("CARD");	// 결제방법
+				mjonPayVO.setPayMethod("SPAY");	// 결제방법
 				mjonPayVO.setPgCode("KGM");				//
 				mjonPayVO.setGoodsName(Prdtnm);	//
 				mjonPayVO.setPhone("");					// 모바일
@@ -566,10 +566,10 @@
 		
     	String rstMsg = "";
     	if("0000".equals(request.getParameter("Resultcd"))) {
-    		rstMsg = "카드결제가 정상적으로 완료되었습니다.";
+    		rstMsg = "간편결제가 정상적으로 완료되었습니다.";
     	}
     	else {
-    		rstMsg = "카드결제가 실패했습니다.";
+    		rstMsg = "간편결제가 실패했습니다.";
     	}    	
     	
     	model.addAttribute("Resultcd", request.getParameter("Resultcd"));
@@ -1464,24 +1464,31 @@
   	// Get Ip
    	public static String getClientIP(HttpServletRequest request) {
    	    String ip = request.getHeader("X-Forwarded-For");
-
-   	    if (ip == null) {
+   	    String ipMethod = "X-Forwarded-For";
+   	    
+   	    if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    	        ip = request.getHeader("Proxy-Client-IP");
+   	        ipMethod = "Proxy-Client-IP";
    	    }
-   	    if (ip == null) {
+   	    if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    	        ip = request.getHeader("WL-Proxy-Client-IP");
+   	        ipMethod = "WL-Proxy-Client-IP";
    	    }
-   	    if (ip == null) {
+   	    if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    	        ip = request.getHeader("HTTP_CLIENT_IP");
+   	        ipMethod = "HTTP_CLIENT_IP";
    	    }
-   	    if (ip == null) {
+   	    if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    	        ip = request.getHeader("HTTP_X_FORWARDED_FOR");
+   	        ipMethod = "HTTP_X_FORWARDED_FOR";
    	    }
-   	    if (ip == null) {
+   	    if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    	        ip = request.getRemoteAddr();
+   	        ipMethod = "getRemoteAddr";
    	    }
-
+   	 
 		System.out.println("#############################################################");
+		System.out.println("KG MOBILIANS NotiUrl - getClientIP : " + ipMethod);
 		System.out.println("KG MOBILIANS NotiUrl - getClientIP : " + ip);
 		
    	    return ip;
src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
--- src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/AddrList.jsp
@@ -106,6 +106,17 @@
 	//if(!confirm("주소록을 추가하시겠습니까?")) {
 	//	return;
 	//}
+	
+	if(!checkHpNum(form.addrPhoneNo.value)){//휴대폰 유효성 검사
+		if(!checkNorPhoneNum(form.addrPhoneNo.value)){//일반전화 유효성 검사
+			
+			alert("잘못된 휴대폰번호 또는 일반전화 번호 입니다.");
+			return false;
+			
+		}
+		
+	}
+	
 	var data = new FormData(form);
 
 	$.ajax({
src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/cardOkUrl.jsp
--- src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/cardOkUrl.jsp
+++ src/main/webapp/WEB-INF/jsp/web/cop/kgmV2/cardOkUrl.jsp
@@ -56,7 +56,7 @@
 		<div class="layer_in" style="height: 330px; padding-top: 0px; !important;">
 			<div class="img_box"><img src="/publish/images/content/pay_complete_img.png" alt="" /></div>
 			<div class="text_box">
-				<div class="title">신용카드 결제</div>
+				<div class="title">간편 결제</div>
 				<p><c:out value='${Resultmsg}'/></p>
 			</div>
 			<div class="popup_btn" style="margin: 30px auto 0 auto;">
Add a comment
List