이호영 이호영 2025-01-16
테스트서버에서 로그인 인증번호 발송 시 테스트슬랙알림채널로 발송
@fc751432623a40a4376deb98ea724dfdd0d22299
src/main/java/itn/let/cert/phone/web/CertPhoneController.java
--- src/main/java/itn/let/cert/phone/web/CertPhoneController.java
+++ src/main/java/itn/let/cert/phone/web/CertPhoneController.java
@@ -5,6 +5,7 @@
 import java.util.Map;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.HttpStatus;
@@ -158,7 +159,8 @@
 	
 	
 	@RequestMapping(value = {"/cert/phone/sendSysMsgDataAjax.do"})
-	public ResponseEntity<StatusResponse> sendSysMsgDataAjax(MberCertPhoneVO mberCertPhoneVO) throws Exception {
+	public ResponseEntity<StatusResponse> sendSysMsgDataAjax(MberCertPhoneVO mberCertPhoneVO,
+			HttpServletRequest request) throws Exception {
 		
 		
 		//로그인 권한정보 불러오기
@@ -178,7 +180,7 @@
 
 		MjonMsgVO mjonMsgVO = new MjonMsgVO();
 		mjonMsgVO.setCallTo(mberCertPhoneVO.getMbtlnum());
-		MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO);
+		MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO, request);
 
 		String resultSts = returnVO.getSendMsgCnt();
 		String resultBlockSts = returnVO.getSendMsgBlockCnt();
src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
--- src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
+++ src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
@@ -63,16 +63,57 @@
 	
 	
 
-	
-
 	/** 
-	 * @methodName	: getAdminSandSlack 
+	 * @methodName	: getAdminMsgSandSlack 
 	 * @author		: 이호영
 	 * @date		: 2024.12.04 
 	 * @description	: 기존 메소드 리펙토링
 	 * @param mjonMsgVO 
 	 */
-	public void getAdminSandSlack(MjonMsgVO mjonMsgVO) {
+	public void getAdminSandSlack(String smsTxt, String sandName) {
+	
+		HttpClient client = new HttpClient();
+		PostMethod post = new PostMethod(SLACK_URL);
+	
+		try {
+			// 메시지 내용 설정
+		
+			// Slack 메시지 생성
+			JSONObject json = new JSONObject();
+			json.put("channel", SLACK_CHANNEL);
+			json.put("text", smsTxt);
+			json.put("username", sandName);
+		
+			// Slack 요청
+			post.addParameter("payload", json.toString());
+			post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+		
+			// Slack 응답 처리
+			int responseCode = client.executeMethod(post);
+			if (responseCode != HttpStatus.SC_OK) {
+				log.warn("Slack 메시지 전송 실패. Response: {}", post.getResponseBodyAsString());
+			}
+	
+		} catch (IllegalArgumentException e) {
+			log.error("Slack 메시지 전송 중 IllegalArgumentException 발생", e);
+		} catch (IOException e) {
+			log.error("Slack 메시지 전송 중 IOException 발생", e);
+		} catch (Exception e) {
+			log.error("Slack 메시지 전송 중 Exception 발생", e);
+		} finally {
+			post.releaseConnection();
+		}
+	}
+	
+
+	/** 
+	 * @methodName	: getAdminMsgSandSlack 
+	 * @author		: 이호영
+	 * @date		: 2024.12.04 
+	 * @description	: 기존 메소드 리펙토링
+	 * @param mjonMsgVO 
+	 */
+	public void getAdminMsgSandSlack(MjonMsgVO mjonMsgVO) {
 	
 		HttpClient client = new HttpClient();
 		PostMethod post = new PostMethod(SLACK_URL);
@@ -116,7 +157,7 @@
 	* @작성자 :  WYH
 	* @Method 설명 : slack 메시지 전송
 	*/
-	/*public void getAdminSandSlack(MjonMsgVO mjonMsgVO) {
+	/*public void getAdminMsgSandSlack(MjonMsgVO mjonMsgVO) {
 		
 		HttpClient client = new HttpClient();
 		PostMethod post = new PostMethod(url);
src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
@@ -3289,7 +3289,7 @@
 							if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
 								
 								MjonCommon comm = new MjonCommon();
-								comm.getAdminSandSlack(mjonMsgVO);
+								comm.getAdminMsgSandSlack(mjonMsgVO);
 								
 							}
 							
src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java
@@ -1140,7 +1140,7 @@
 							if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
 								
 								MjonCommon comm = new MjonCommon();
-								comm.getAdminSandSlack(mjonMsgVO);
+								comm.getAdminMsgSandSlack(mjonMsgVO);
 								
 							}
 							
src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java
@@ -2124,7 +2124,7 @@
 							if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
 								
 								MjonCommon comm = new MjonCommon();
-								comm.getAdminSandSlack(mjonMsgVO);
+								comm.getAdminMsgSandSlack(mjonMsgVO);
 								
 							}
 							
src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
--- src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
+++ src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
@@ -188,7 +188,7 @@
 
 	public StatusResponse sendMsgData_advc(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception;
 
-	public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO) throws Exception;
+	public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception;
 
 
 	
src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
@@ -2,6 +2,7 @@
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.net.URI;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -147,6 +148,7 @@
 
 	@Autowired
 	private MjonCommon mjonCommon;
+	
 
 	public List<MjonMsgDataVO> selectCcmCmmCodeList() throws Exception {
 
@@ -4172,7 +4174,7 @@
 
 		if (isNotified) {
 			System.out.println("스미싱 알림이 처리되었습니다.");
-			mjonCommon.getAdminSandSlack(mjonMsgVO);
+			mjonCommon.getAdminMsgSandSlack(mjonMsgVO);
 		} else if("Y".equalsIgnoreCase(mjonMsgVO.getSpamStatus())){
 			System.out.println("==알림 예외 시간==");
 			mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO);
@@ -5022,7 +5024,7 @@
 	}
 
 	@Override
-	public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO) throws Exception {
+	public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO,HttpServletRequest request) throws Exception {
 
 		
 
@@ -5099,6 +5101,22 @@
 
 		mjonMsgDataService.insertSysMsgLog(sendLogVO);
 		
+
+		String fullUrl = request.getRequestURL().toString();
+		try {
+			URI uri = new URI(fullUrl);
+			String domain = uri.getHost(); // www.munjaon.co.kr 반환
+			
+			if(domain.indexOf("munjaon.co.kr") < 0) {
+				mjonCommon.getAdminSandSlack(contents, mjonMsgVO.getCallTo());
+			}
+			
+		} catch (Exception e) {
+		}
+		
+		
+		
+		
 		return returnVO;
 	}
 
src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
--- src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
+++ src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
@@ -3449,7 +3449,7 @@
 						if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림 예외설정 시간에 포함되지 않는 경우 슬랙 알림 발송
 							
 							MjonCommon comm = new MjonCommon();
-							comm.getAdminSandSlack(mjonMsgVO);
+							comm.getAdminMsgSandSlack(mjonMsgVO);
 							
 						}
 						
src/main/java/itn/let/mjo/test/web/TestController.java
--- src/main/java/itn/let/mjo/test/web/TestController.java
+++ src/main/java/itn/let/mjo/test/web/TestController.java
@@ -2175,14 +2175,14 @@
 						if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
 							
 							MjonCommon comm = new MjonCommon();
-							comm.getAdminSandSlack(mjonMsgVO);
+							comm.getAdminMsgSandSlack(mjonMsgVO);
 							
 						}
 						
 						//Slack으로 메세지 전송 처리
 						/*MjonCommon comm = new MjonCommon();
 						System.out.println("slack noti");
-						comm.getAdminSandSlack(mjonMsgVO);*/
+						comm.getAdminMsgSandSlack(mjonMsgVO);*/
 					}
 				}
 				/*else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X)
@@ -2211,7 +2211,7 @@
 					if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
 						
 						MjonCommon comm = new MjonCommon();
-						comm.getAdminSandSlack(mjonMsgVO);
+						comm.getAdminMsgSandSlack(mjonMsgVO);
 						
 					}
 					
src/main/java/itn/let/uat/uia/web/EgovLoginController.java
--- src/main/java/itn/let/uat/uia/web/EgovLoginController.java
+++ src/main/java/itn/let/uat/uia/web/EgovLoginController.java
@@ -3632,7 +3632,7 @@
 	 */
 	@RequestMapping(value = { "/web/user/sendSysMsgDataAjax.do" })
 	public ModelAndView sendSysMsgDataAjax(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO,
-			RedirectAttributes redirectAttributes, ModelMap model) throws Exception {
+			RedirectAttributes redirectAttributes, ModelMap model, HttpServletRequest request) throws Exception {
 
 		ModelAndView modelAndView = new ModelAndView();
 		modelAndView.setViewName("jsonView");
@@ -3710,7 +3710,7 @@
 			
 			
 			
-			MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO);
+			MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO, request);
 
 			resultSts = returnVO.getSendMsgCnt();
 			resultBlockSts = returnVO.getSendMsgBlockCnt();
Add a comment
List