이호영 이호영 2024-11-22
보안로그인 테스트 진행중
@aeea09e63e77619cf1d37b11b3d822e4d548c460
src/main/java/itn/let/cert/ip/service/MberCertLoginLogVO.java
--- src/main/java/itn/let/cert/ip/service/MberCertLoginLogVO.java
+++ src/main/java/itn/let/cert/ip/service/MberCertLoginLogVO.java
@@ -30,6 +30,8 @@
 	private String loginDevice;
 	private String loginDt;
 	
+	private String secuLoginFlag;
+	
 	
 	public String getCertLoginId() {
 		return certLoginId;
@@ -61,6 +63,12 @@
 	public void setLoginDt(String loginDt) {
 		this.loginDt = loginDt;
 	}
+	public String getSecuLoginFlag() {
+		return secuLoginFlag;
+	}
+	public void setSecuLoginFlag(String secuLoginFlag) {
+		this.secuLoginFlag = secuLoginFlag;
+	}
 	
 	
 	
src/main/java/itn/let/cert/ip/service/impl/CertLoginLogServiceImpl.java
--- src/main/java/itn/let/cert/ip/service/impl/CertLoginLogServiceImpl.java
+++ src/main/java/itn/let/cert/ip/service/impl/CertLoginLogServiceImpl.java
@@ -51,18 +51,18 @@
 	public void insertCertLoginLog(MberCertLoginLogVO mberCertLoginLogVO, HttpServletRequest request) throws FdlException {
  
 		
-		int count = certLoginLogDAO.checkLoginIpExists(mberCertLoginLogVO);
-		
-		if (count > 0) {
-			// 이미 존재하면 UPDATE
-			certLoginLogDAO.updateCertLoginLog(mberCertLoginLogVO);
-		} else {
+//		int count = certLoginLogDAO.checkLoginIpExists(mberCertLoginLogVO);
+//		
+//		if (count > 0) {
+//			// 이미 존재하면 UPDATE
+//			certLoginLogDAO.updateCertLoginLog(mberCertLoginLogVO);
+//		} else {
 	
 			mberCertLoginLogVO.setCertLoginId(certLoginLogIdGnrService.getNextStringId());
 			mberCertLoginLogVO.setLoginDevice(getDevice(request));
 			certLoginLogDAO.insertCertLoginLog(mberCertLoginLogVO);
 			
-		}
+//		}
 	}
 		
 	private String getDevice(HttpServletRequest request) {
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
@@ -122,7 +122,9 @@
 			if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
 		}
 		mberCertPhoneVO.setFrstRegisterId(userId);
-		mberCertPhoneVO.setMberId(userId);
+		if(StringUtils.isEmpty(mberCertPhoneVO.getMberId()) ) {
+			mberCertPhoneVO.setMberId(userId);
+		}
 		
 		
 		return ResponseEntity.ok().body(certPhoneService.updateMberCertPhone(mberCertPhoneVO));
@@ -142,8 +144,10 @@
 			if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now()));
 		}
 		mberCertPhoneVO.setLastUpdusrId(userId);
-		mberCertPhoneVO.setMberId(userId);
-		
+
+		if(StringUtils.isEmpty(mberCertPhoneVO.getMberId()) ) {
+			mberCertPhoneVO.setMberId(userId);
+		}
 		
 		
 		return ResponseEntity.ok().body(certPhoneService.deleteCertPhone(mberCertPhoneVO));
src/main/java/itn/let/uat/uia/web/EgovMypageController.java
--- src/main/java/itn/let/uat/uia/web/EgovMypageController.java
+++ src/main/java/itn/let/uat/uia/web/EgovMypageController.java
@@ -2951,6 +2951,10 @@
 			return "redirect:/web/user/login/login.do";
 		}
 
+	    // secuLoginFlag 값을 Model에 추가
+	    model.addAttribute("secuLoginFlag", mberCertLoginLogVO.getSecuLoginFlag());
+		System.out.println(mberCertLoginLogVO.getSecuLoginFlag());
+
 		//로그인 권한정보 불러오기
 		String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
 		
@@ -3022,7 +3026,10 @@
 		
 		model.addAttribute("mberManageVO", userManageService.selectUserInfo(mberManageVO));
 		
-		model.addAttribute("pageTab", "mberSecureLogin");		
+		model.addAttribute("pageTab", "mberSecureLogin");
+		
+		
+
 		return "web/user/mberSecureLogin";
 	}
 	
src/main/resources/egovframework/sqlmap/let/cert/MjonCertLoginLog_SQL_mysql.xml
--- src/main/resources/egovframework/sqlmap/let/cert/MjonCertLoginLog_SQL_mysql.xml
+++ src/main/resources/egovframework/sqlmap/let/cert/MjonCertLoginLog_SQL_mysql.xml
@@ -18,8 +18,12 @@
 				COUNT(CERT_LOGIN_ID) OVER() AS totCnt 
 				, CERT_LOGIN_ID as certLoginId    
 				, LOGIN_ID      as loginId         
-				, LOGIN_IP      as loginIp         
-				, LOGIN_DEVICE  as loginDevice     
+				, LOGIN_IP      as loginIp
+				, CASE 
+					WHEN LOGIN_DEVICE = 'D' THEN 'PC'
+					WHEN LOGIN_DEVICE IN ('M', 'T') THEN '모바일'
+					ELSE 'PC'
+					END AS loginDevice
 				, DATE_FORMAT(LOGIN_DT,'%Y-%m-%d %T') as loginDt
 			FROM	LETTNGNRLMBER_CERT_LOGIN_LOG_IP
 			WHERE	1=1
src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
--- src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
+++ src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp
@@ -41,6 +41,42 @@
 <script>
 $(document).ready(function (){
 	
+
+	$(document).on('click', '#secuLoginFlag', function () {
+
+		var secuLoginFlag = "";
+		console.log($(this).text());
+		if($(this).text() == 'ON'){
+			secuLoginFlag = 'Y'
+		}
+		else{
+			secuLoginFlag = 'N'
+		}
+		
+
+		// 디버깅용 출력
+		console.log(secuLoginFlag);
+		
+		// 동적으로 form 생성
+		var form = $('<form>', {
+		    action: '/web/user/mberSecureLogin.do', // 전송할 URL
+		    method: 'POST' // POST 방식 설정
+		});
+		
+		// form에 hidden input 추가
+		form.append($('<input>', {
+		    type: 'hidden',
+		    name: 'secuLoginFlag', // 서버에서 받을 파라미터 이름
+		    value: secuLoginFlag // 전달할 값
+		}));
+		
+		// form을 body에 추가 후 제출
+		$('body').append(form);
+		form.submit();
+		
+		
+	});
+	
 	//세션에서 종료시간을 받아와서 타이머 실행함
 	/* var timer = '${timer}';
 	if(timer != ""){
@@ -824,6 +860,8 @@
 		window.open(target, 'infoPop', 'width=1110, height=700, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=1');
 	}
 </script>
+
+
 	<div class="mask"></div>
 <c:if test="${inspYn == 'Y'}">
 	<style>
src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp
--- src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp
+++ src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp
@@ -9,10 +9,13 @@
 
 //보안 로그인
 $(document).ready(function(){
-
+	
 	// 허용 IP 등록
 	$(".btn_allow_ip_add").click(function () {
-		if (confirm("현재 접속중인 IP를 접속 허용 IP로 등록하시겠습니까?")) {
+		
+		var ip = $('#cennectIp').val();
+		
+		if (confirm("현재 접속중인 IP["+ip+"]를 접속 허용 IP로 등록하시겠습니까?")) {
 
 			$.ajax({
 				type: "POST",
@@ -21,8 +24,9 @@
 				dataType:'json',
 				async: false,
 				success: function (returnData) {
+					
 					if(returnData.status == 'OK'){
-						alert("접속 허용 IP 등록이 완료되었습니다.");
+						alert("접속 허용 IP["+ip+"] 등록이 완료되었습니다.");
 						location.reload();  
 					}
 					else
@@ -61,7 +65,8 @@
 					$(this).siblings("a").removeClass("on");
 				}
 			} else {
-				if (!confirm("가입자 휴대폰번호로 본인인증 후 해제가 가능하며, 보안로그인 설정을 해제함으로써 발생하는 손해에 대하여 회사는 책임지지 않습니다.")) {
+// 				if (!confirm("가입자 휴대폰번호로 본인인증 후 해제가 가능하며, 보안로그인 설정을 해제함으로써 발생하는 손해에 대하여 회사는 책임지지 않습니다.")) {
+				if (!confirm("가입자 휴대폰번호로 본인인증 후 해제가 가능합니다. 해제 시 계정정보 유출에 따른 피해가 발생할 수 있으므로 이를 권장하지 않습니다.")) {
 					$(this).removeClass("on");
 					$(this).siblings("a").addClass("on");
 				} else {
@@ -270,6 +275,19 @@
 
 	findAllCertIp();
 	findAllCertPhone();
+	
+
+	console.log('${mberCertLoginLogVO.secuLoginFlag}');
+	var secuLoginFlag = '${mberCertLoginLogVO.secuLoginFlag}';
+	if(secuLoginFlag == 'Y'){
+		console.log('????????Y')
+		$('#secuOffBtn').click();
+	}else{
+		console.log('????????N')
+		$('#secuOnBtn').click();
+		
+	}
+	
 });
 
 function fn_phoneSave(obj){
@@ -491,7 +509,11 @@
 //IP 삭제
 function deleteRow(p_ip){
 
+
+	var myIp = $('#cennectIp').val();
 	console.log('p_ip : ', p_ip);
+	
+	
 	var params = {
 		"certIp" : p_ip
 	}
@@ -506,6 +528,11 @@
 		async: false,
 		success: function (returnData) {
 			if(returnData.status == 'OK'){
+				if(myIp == p_ip){
+					location.reload();
+					
+				}
+				
 				findAllCertIp();
 			}
 			else
@@ -622,7 +649,7 @@
 								<th>인증번호</th>
 								<td>
 									<label for="" class="label">인증번호 입력</label>
-									<input type="text" placeholder="인증번호 4자리 입력" id="certNumber" onfocus="this.placeholder=''" onblur="this.placeholder='인증번호 4자리 입력'" class="inputLight" style="width: 200px;">
+									<input type="text" placeholder="인증번호 6자리 입력" id="certNumber" onfocus="this.placeholder=''" onblur="this.placeholder='인증번호 4자리 입력'" class="inputLight" style="width: 200px;">
 									<button type="button" id="certConfirmBtn" class="btnType btnType6" style="width:90px">확인</button>
 								</td>
 							</tr>
@@ -666,6 +693,7 @@
 									<p class="dashboard_title">보안로그인</p>
 									<div class="title_box ip_add_wrap">
 										<span>현재 접속중인 IP : <b><c:out value="${cennectIP }"/> <c:if test="${chkcertRegIP }"> [허용 IP] </c:if> </b></span>
+										<input type="hidden" id="cennectIp" value="<c:out value="${cennectIP }"/>"/>
 										<c:if test="${!chkcertRegIP }">
 											<button type="button" class="btnType btnType6 btn_allow_ip_add">허용 IP 등록</button>
 										</c:if>
@@ -675,9 +703,10 @@
 								<div class="set_area">
 									<p class="lately_date">최근 변경일시 : <span>2024-11-01 12:49</span></p>
 
+    								<input type="hidden" id="secuLoginFlag" value="${secuLoginFlag}" />
 									<div class="tab_depth1 security_tab">
-										<a href="#none">ON</a>
-										<a href="#none">OFF</a>
+										<a href="#none" id="secuOnBtn">ON</a>
+										<a href="#none" id="secuOffBtn">OFF</a>
 									</div>
 								</div>
 							</div>
Add a comment
List