From 51980d12b326a21cb7ebb0f8fcc3582878b23182 Mon Sep 17 00:00:00 2001 From: myname Date: Sun, 17 Nov 2024 02:45:52 +0900 Subject: [PATCH 01/63] =?UTF-8?q?2024-11-17=2002:45=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EC=9E=90=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=EC=8B=9C=20=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EB=94=94/=EB=B9=84=EB=B2=88=20=EC=9D=B8=EC=A6=9D?= =?UTF-8?q?=EC=97=90=20=ED=95=B8=EB=93=9C=ED=8F=B0=20=EC=9D=B8=EC=A6=9D=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../msgdata/service/MjonMsgDataService.java | 1 + .../msgdata/service/impl/MjonMsgDataDAO.java | 4 + .../service/impl/MjonMsgDataServiceImpl.java | 5 + .../let/uat/uia/web/EgovLoginController.java | 927 +++++++++++++++++- .../sqlmap/let/msg/MjonMsgData_SQL_mysql.xml | 20 + .../WEB-INF/jsp/web/com/webCommonHeader.jsp | 3 + .../jsp/web/login/EgovLoginGnrlUsr.jsp | 290 +++++- 7 files changed, 1243 insertions(+), 7 deletions(-) diff --git a/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java b/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java index 16e0c9c8..39af3de7 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java +++ b/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java @@ -94,6 +94,7 @@ public interface MjonMsgDataService { //시스템 문자발송 로그 조회 public SendLogVO selectSysMsgLog(SendLogVO sendLogVO) throws Exception; + public SendLogVO selectSysMsgLogCheck(SendLogVO sendLogVO) throws Exception; //주소록 그룹의 저장 주소 리스트 불러오기 public List selectMsgAddrListAjax(AddrVO addrVO) throws Exception; diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java index 7177d40f..3701a684 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java @@ -202,6 +202,10 @@ public class MjonMsgDataDAO extends EgovAbstractDAO { return (SendLogVO) select("mjonMsgDAO.selectSysMsgLog",sendLogVO); } + public SendLogVO selectSysMsgLogCheck(SendLogVO sendLogVO) throws Exception{ + return (SendLogVO) select("mjonMsgDAO.selectSysMsgLogCheck",sendLogVO); + } + @SuppressWarnings("unchecked") public List selectMsgAddrListAjax(AddrVO addrVO) throws Exception{ diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java index 14834912..cd307bfe 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java @@ -2092,6 +2092,11 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M return mjonMsgDataDAO.selectSysMsgLog(sendLogVO); } + @Override + public SendLogVO selectSysMsgLogCheck(SendLogVO sendLogVO) throws Exception { + return mjonMsgDataDAO.selectSysMsgLogCheck(sendLogVO); + } + public List selectMsgAddrListAjax(AddrVO addrVO) throws Exception{ return mjonMsgDataDAO.selectMsgAddrListAjax(addrVO); diff --git a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java index 33526052..854cd46e 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java @@ -1463,7 +1463,596 @@ public class EgovLoginController { * @return result - 로그인결과(세션정보) * @exception Exception */ - @RequestMapping(value = "/web/user/login/actionSecurityLogin.do") + @RequestMapping(value = "/web/user/login/actionSecurityLogin_bak_00.do") + public String selectActionSecurityLoginWeb_bak(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletResponse response, + HttpServletRequest request, @RequestParam Map commandMap, ModelMap model, + HttpSession session, RedirectAttributes redirectAttributes) throws Exception { + + String userIp = EgovClntInfo.getClntIP(request); + HackIpVO hackIpVO = new HackIpVO(); + hackIpVO.setAccessIp(userIp); + hackIpVO.setBlockYn("Y"); + if (null != hackIpService.selectHackIpVO(hackIpVO)) { + String message = "차단된 아이피입니다. 관리자에게 문의해 주십시요."; + redirectAttributes.addFlashAttribute("message", message); + return "redirect:/"; + } + + /*ScriptEngineManager engine = new ScriptEngineManager();*/ + + loginVO.setUserSe("USR"); + // 로그인 정보 check + + if (loginVO.getId() == null || loginVO.getPassword() == null) { + // 회원가입 시 로그인 처리 + LoginVO pLoginVO = (LoginVO) request.getAttribute("pLoginVO"); + if (pLoginVO == null) { + // RSA 키 생성 + initRsa(request); + /* return "redirect:/web/user/login/login.do"; */ + return "redirect:/"; + } else { + loginVO.setId(pLoginVO.getId()); + loginVO.setPassword(pLoginVO.getPassword()); + loginVO.setBeforeUrl(pLoginVO.getBeforeUrl()); + loginVO.setMessage(pLoginVO.getMessage()); + } + } + + // 1. 일반 로그인 처리 + PrivateKey privateKey = (PrivateKey) session.getAttribute(EgovLoginController.RSA_WEB_KEY); + if (privateKey == null) { + initRsa(request); + /*return "web/site/login/EgovLoginGnrlUsr";*/ + String message = "아이디와 비밀번호를 확인해주세요."; + redirectAttributes.addFlashAttribute("message", message); + System.out.println("======================================================"); + System.out.println("= RSA privateKey is null ="); + System.out.println("======================================================"); + return "redirect:/web/main/mainPage.do"; + } + + LoginVO resultVO; + // 복호화 + String id = ""; + try { + //아이디 복호화 후 소문자 변환 + id = decryptRsa(privateKey, loginVO.getId()).toLowerCase(); + } catch (Exception e) { + initRsa(request); + // return "redirect:/web/user/login/login.do"; + if (loginVO.getBeforeUrl().toString().contains("/web/user/login/login.do")) { + redirectAttributes.addFlashAttribute("fail", true); + return "redirect:/web/user/login/login.do"; + } + return "redirect:/"; + + } + String password = decryptRsa(privateKey, loginVO.getPassword()); + loginVO.setId(id); + loginVO.setIp(EgovClntInfo.getClntIP(request)); + loginVO.setPassword(password); + loginVO.setUserSe("GNR"); + loginVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 + + //기업회원 가입중인지 체크 - 기존 로그인 select는 MBER_STTUS = 'Y'가 하드코딩이라 로그인 전 기업회원 가입중인지 선 체크 + //암호화 2번 방지를 위한 LoginVO 생성 + LoginVO loginCmpChkVO = new LoginVO(); + loginCmpChkVO.setId(id); + loginCmpChkVO.setIp(EgovClntInfo.getClntIP(request)); + loginCmpChkVO.setPassword(password); + loginCmpChkVO.setUserSe("GNR"); + loginCmpChkVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 + loginCmpChkVO.setEmplyrSttusCode("A"); // 신청대기중인 사용자까지 조회 + LoginVO cmpHstResultVO = loginService.actionLoginCmpChk(loginCmpChkVO); + if(null != cmpHstResultVO.getId()) { + //기업회원 정보 마지막 내역 조회 + MberManageVO mberManageVO = new MberManageVO(); + mberManageVO.setMberId(loginVO.getId()); + MberManageVO cmpChangeManageVO = mberManageService.selectCmpUsrHst(mberManageVO); + if(null != cmpChangeManageVO) { + if("01".equals(cmpChangeManageVO.getHstType())) { //가장 마지막 내역이 기업회원 가입일 시 + if("01".equals(cmpChangeManageVO.getHstSttus()) || "03".equals(cmpChangeManageVO.getHstSttus()) ) { //가장 마지막 기업회원 가입이 신청 또는 반려 상태일 시 + redirectAttributes.addFlashAttribute("mberId", loginVO.getId()); + //addFlashAttribute 일회성으로 인하여 membershipAttachDocBefore.do 이동 후 + //membershipAttachDoc.do로 바로 submit하여 새로고침 시 정보 유지되게 끔 처리 + return "redirect:/web/user/login/membershipAttachDocBefore.do"; + } + } + } + } + //스팸처리 회원인지 mj_spam_member_info 해당 ID의 최근 1개 데이터 조회 + LoginVO loginSmiChkVO = new LoginVO(); + loginSmiChkVO.setId(id); + loginSmiChkVO.setIp(EgovClntInfo.getClntIP(request)); + loginSmiChkVO.setPassword(password); + loginSmiChkVO.setUserSe("GNR"); + loginSmiChkVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 + loginSmiChkVO.setEmplyrSttusCode("B"); // 신청대기중인 사용자까지 조회 + LoginVO smiResultVO = loginService.actionLoginCmpChk(loginSmiChkVO); + if(null != smiResultVO.getId()) { + MberManageVO spamMberManageVO = new MberManageVO(); + spamMberManageVO.setMberId(loginVO.getId()); + MberManageVO spamMemberInfoVO = mberManageService.selectSpamMemberInfo(spamMberManageVO); + if(null != spamMemberInfoVO) { + redirectAttributes.addFlashAttribute("mberId", loginVO.getId()); + return "redirect:/web/user/login/loginRestrictionUseBefore.do"; + } + } + resultVO = loginService.actionLogin(loginVO); + LoginVO passMissVO = loginService.selectPassMiss(loginVO); + + String alertMessage = ""; + if (!"admin".equals(loginVO.getId())) { + //아이디가 존재 + if(passMissVO != null) { + // 로그인 실패 ( + if (null == resultVO.getId() && passMissVO.getPassMiss() < 5 ) { + loginService.updatePassMissPlus(loginVO); + alertMessage = egovMessageSource.getMessage("fail.common.login"); + + // 로그인 실패시 해킹의심 IP 테이블에 등록_아이디는 있지만 비밀번호가 틀린상황 + /// HackIpVO hackIpVO = new HackIpVO(); + hackIpVO.setHackUserId(loginVO.getId()); + hackIpVO.setAccessIp( EgovClntInfo.getClntIP(request)); + hackIpService.insertHackIp(hackIpVO); + if (loginVO.getBeforeUrl().toString().contains("/web/user/login/login.do")) { + redirectAttributes.addFlashAttribute("fail", true); + return "redirect:/web/user/login/login.do"; + } + + return goUserLoginPage(redirectAttributes, loginVO, request, model, alertMessage); + } else { + if (passMissVO.getPassMiss() >= 5) { + alertMessage = "패스워드가 5회 이상 틀려 로그인 할수 없습니다. 비밀번호를 재설정해주세요."; + return goUserPassMissPage(redirectAttributes, loginVO, request, model, alertMessage); + } /* + * else if("A".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = + * "신청하신 아이디가 현제 승인대기 상" + "태입니다."; return goUserLoginPage(redirectAttributes, + * request, model, alertMessage); }else + * if("B".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = + * "아이디가 차단상태가 되어 사용할수 없습니다."; return goUserLoginPage(redirectAttributes, + * request, model, alertMessage); } + */ + loginService.updatePassMissReset(loginVO); + } + } + //아이디 미존재 + else { + alertMessage = egovMessageSource.getMessage("fail.common.login"); + + // 로그인 실패시 해킹의심 IP 테이블에 등록_아이디없고 비밀번호도 틀린상황 + /// HackIpVO hackIpVO = new HackIpVO(); + hackIpVO.setHackUserId(loginVO.getId()); + hackIpVO.setAccessIp(EgovClntInfo.getClntIP(request)); + hackIpService.insertHackIp(hackIpVO); + if (loginVO.getBeforeUrl().toString().contains("/web/user/login/login.do")) { + redirectAttributes.addFlashAttribute("fail", true); + return "redirect:/web/user/login/login.do"; + } + + return goUserLoginPage(redirectAttributes, loginVO, request, model, alertMessage); + } + } + + + /* 일시 : 2023.07.26 + * 내용 : 로그인시 휴먼고객 redirect 기능 추가 + * 작업자 : 원영현 과장 + */ + + if(resultVO.getDormantYn().equals("Y") || resultVO.getDormantYn() == "Y") { + + return "redirect:/web/user/humanPage.do"; + } + + + + + boolean loginPolicyYn = true; + + // 접속IP + // userIp = EgovClntInfo.getClntIP(request); + + // resultVO.siteId 의 각 로그인 ip를 조회함 + if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("") && loginPolicyYn) { + // 세션에다 ip 등록 + resultVO.setIp(userIp); + // 2. spring security 연동 + request.getSession().setAttribute("LoginVO", resultVO); + UsernamePasswordAuthenticationFilter springSecurity = null; + ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()); + Map beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class); + + if (beans.size() > 0) { + springSecurity = (UsernamePasswordAuthenticationFilter) beans.values().toArray()[0]; + springSecurity.setUsernameParameter("egov_security_username"); + springSecurity.setPasswordParameter("egov_security_password"); + springSecurity.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher(request.getServletContext().getContextPath() + "/egov_security_login", "POST")); + } else { + throw new IllegalStateException("No AuthenticationProcessingFilter"); + } + + springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId(), resultVO.getUniqId()), response, null); + { // 관리자 로그인 log 저장 + String uniqId = ""; + String ip = ""; + + /* Authenticated */ + LoginLog loginLog = new LoginLog(); + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (isAuthenticated.booleanValue()) { + LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + uniqId = user.getUniqId(); + ip = EgovClntInfo.getClntIP(request); + + HttpSession httpSession = request.getSession(true); + { + List siteManageList = new ArrayList(); + SiteManagerVO siteManagerVO = new SiteManagerVO(); + siteManagerVO.setFirstIndex(0); + siteManagerVO.setRecordCountPerPage(100); + siteManageList = egovSiteManagerService.selectSiteManagerList(siteManagerVO); + httpSession.setAttribute("siteManageList", siteManageList); + httpSession.setAttribute("loginId", user.getId()); // 자동완성 공통으로 쓰기위해 + httpSession.setAttribute("esntlId", user.getPassword()); + + // 최근검색어 조회 후 세션에 넣어줌 + /* + * UserManageVO tempUserManageVO = new UserManageVO(); + * tempUserManageVO.setEmplyrId(user.getId()); tempUserManageVO = + * userManageService.selectRecentSearchWord(tempUserManageVO); + * + * List lisRecentSearch = new ArrayList(); if(null != + * tempUserManageVO){ //ArrayList 로 세션 저장 + * Collections.addAll(lisRecentSearch,tempUserManageVO.getSearchWord().split("," + * )) ; } httpSession.setAttribute("recentSearch", lisRecentSearch) ; + */ + } + } + /* + * loginLog.setLoginId(uniqId); loginLog.setLoginIp(ip); + * loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O loginLog.setErrOccrrAt("N"); + * loginLog.setErrorCode(""); //로그인은 관리자, PC만 됨 loginLog.setUserAt("U"); //사용자 + * loginLog.setDeviceType("P"); //PC loginLog.setProgrmFileNm("adminLogin"); + * loginLog.setMenuNm("관리자로그인"); loginLogService.logInsertLoginLog(loginLog); + */ + + loginVO.getId(); + loginVO.getIp(); + loginVO.setMessage("로그인 성공되었습니다."); + loginVO.setLoginYn("Y"); + loginService.insertActionLoginLog(loginVO); + } + + // 등급제 Start + // 회원별 등급 적용 + MberGrdVO mberGrdVO = new MberGrdVO(); + mberGrdVO.setMberId(loginVO.getId()); + mberGrdVO.setAmt("0"); + mberGrdVO.setMoid(""); + mberGrdService.mberGrdSaveByUserNoHist(mberGrdVO); + // End + + // 이벤트 결제 바로가기 로직 체크 Start + String goEventPay = (String) commandMap.get("goEventPay"); + System.out.println("goEventPay : " + goEventPay); + if (null != goEventPay && goEventPay.equals("Y")) { + // 이벤트 결제 바로가기 + if (goEventPay(loginVO) == true) { + loginVO.setBeforeUrl("/web/event/member/pay/PayView.do"); + } + } + // End + + String beforeUrl = (String) commandMap.get("beforeUrl"); + + // 로그인 전 URL 호출 시 + if (loginVO.getBeforeUrl() != null && !("").equals(loginVO.getBeforeUrl())) { + request.getSession().setAttribute("usrBeforeUrl", loginVO.getBeforeUrl()); + // 회원가입 시 메세지 처리 + if (loginVO.getMessage() != null && !("").equals(loginVO.getMessage())) { + request.getSession().setAttribute("registMessage", loginVO.getMessage()); + } + } + + // 개인키 삭제 + // 성공시 웹페이지 분기로 인해 session에 페이지 타입을 넣어준다. + request.getSession().setAttribute("pageType", "web"); + + return "blank"; // 성공 시 페이지.. (redirect 불가) + + // uat/uia/actionMain.do 실제 성공시 무조건 좌측 메소드로 감. + // return "forward:/web/main/mainPage.do"; + } else { + String message = egovMessageSource.getMessage("fail.common.login"); + redirectAttributes.addFlashAttribute("beforeUrl", loginVO.getBeforeUrl()); + redirectAttributes.addFlashAttribute("message", message); + return "redirect:/"; + } + } + + /** + * @Method Name : selectUserSttusAjax + * @작성일 : 2024. 3. 27. + * @작성자 : WYH + * @변경이력 : + * @Method 설명 : 회원상태 조회 (Y:일반회원, B:이용정지 회원, N:탈퇴회원) + */ + /* + @RequestMapping(value = { "/web/user/login/actionSecurityLoginAjax.do" }) + public ModelAndView actionSecurityLoginAjax(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletResponse response, + HttpServletRequest request, @RequestParam Map commandMap, ModelMap model, + HttpSession session, RedirectAttributes redirectAttributes) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + String p_id = ""; + String p_pwd = ""; + + try { + //id, pwd 로그인 하고 결과와 hp 번호를 돌려주면 됨 + p_id = request.getParameter("id"); + p_pwd = request.getParameter("password"); + + + + String userId = mjonMsgVO.getUserId(); + String userSttus = userManageService.selectUserStatusInfoCheck(userId); + + modelAndView.addObject("status", "success"); + modelAndView.addObject("userSttus", userSttus); + + } catch (Exception e) { + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", "인증에 실패하였습니다."); + } + + return modelAndView; + } + */ + + @RequestMapping(value = "/web/user/login/actionSecurityLoginBeforeHpAjax.do") + public ModelAndView selectActionSecurityLoginWebBeforeHp(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletResponse response, + HttpServletRequest request, @RequestParam Map commandMap, ModelMap model, + HttpSession session, RedirectAttributes redirectAttributes) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + String userIp = EgovClntInfo.getClntIP(request); + HackIpVO hackIpVO = new HackIpVO(); + hackIpVO.setAccessIp(userIp); + hackIpVO.setBlockYn("Y"); + if (null != hackIpService.selectHackIpVO(hackIpVO)) { + String message = "차단된 아이피입니다. 관리자에게 문의해 주십시요."; + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + + } + + /*ScriptEngineManager engine = new ScriptEngineManager();*/ + + loginVO.setUserSe("USR"); + // 로그인 정보 check + + if (loginVO.getId() == null || loginVO.getPassword() == null) { + // 회원가입 시 로그인 처리 + LoginVO pLoginVO = (LoginVO) request.getAttribute("pLoginVO"); + if (pLoginVO == null) { + // RSA 키 생성 + initRsa(request); + /* return "redirect:/web/user/login/login.do"; */ + //return "redirect:/"; + + String message = "로그인 실패했습니다."; + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + + } else { + loginVO.setId(pLoginVO.getId()); + loginVO.setPassword(pLoginVO.getPassword()); + loginVO.setBeforeUrl(pLoginVO.getBeforeUrl()); + loginVO.setMessage(pLoginVO.getMessage()); + } + } + + // 1. 일반 로그인 처리 + PrivateKey privateKey = (PrivateKey) session.getAttribute(EgovLoginController.RSA_WEB_KEY); + if (privateKey == null) { + initRsa(request); + /*return "web/site/login/EgovLoginGnrlUsr";*/ + String message = "아이디와 비밀번호를 확인해주세요."; + redirectAttributes.addFlashAttribute("message", message); + System.out.println("======================================================"); + System.out.println("= RSA privateKey is null ="); + System.out.println("======================================================"); + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + + } + + LoginVO resultVO; + // 복호화 + String id = ""; + try { + //아이디 복호화 후 소문자 변환 + id = decryptRsa(privateKey, loginVO.getId()).toLowerCase(); + } catch (Exception e) { + initRsa(request); + + String message = "로그인 실패했습니다."; + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + + } + String password = decryptRsa(privateKey, loginVO.getPassword()); + loginVO.setId(id); + loginVO.setIp(EgovClntInfo.getClntIP(request)); + loginVO.setPassword(password); + loginVO.setUserSe("GNR"); + loginVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 + + //기업회원 가입중인지 체크 - 기존 로그인 select는 MBER_STTUS = 'Y'가 하드코딩이라 로그인 전 기업회원 가입중인지 선 체크 + //암호화 2번 방지를 위한 LoginVO 생성 + LoginVO loginCmpChkVO = new LoginVO(); + loginCmpChkVO.setId(id); + loginCmpChkVO.setIp(EgovClntInfo.getClntIP(request)); + loginCmpChkVO.setPassword(password); + loginCmpChkVO.setUserSe("GNR"); + loginCmpChkVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 + loginCmpChkVO.setEmplyrSttusCode("A"); // 신청대기중인 사용자까지 조회 + LoginVO cmpHstResultVO = loginService.actionLoginCmpChk(loginCmpChkVO); + if(null != cmpHstResultVO.getId()) { + //기업회원 정보 마지막 내역 조회 + MberManageVO mberManageVO = new MberManageVO(); + mberManageVO.setMberId(loginVO.getId()); + MberManageVO cmpChangeManageVO = mberManageService.selectCmpUsrHst(mberManageVO); + if(null != cmpChangeManageVO) { + if("01".equals(cmpChangeManageVO.getHstType())) { //가장 마지막 내역이 기업회원 가입일 시 + if("01".equals(cmpChangeManageVO.getHstSttus()) || "03".equals(cmpChangeManageVO.getHstSttus()) ) { //가장 마지막 기업회원 가입이 신청 또는 반려 상태일 시 + + String message = "기업회원 신청 또는 반려상태입니다."; + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + + } + } + } + } + //스팸처리 회원인지 mj_spam_member_info 해당 ID의 최근 1개 데이터 조회 + LoginVO loginSmiChkVO = new LoginVO(); + loginSmiChkVO.setId(id); + loginSmiChkVO.setIp(EgovClntInfo.getClntIP(request)); + loginSmiChkVO.setPassword(password); + loginSmiChkVO.setUserSe("GNR"); + loginSmiChkVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 + loginSmiChkVO.setEmplyrSttusCode("B"); // 신청대기중인 사용자까지 조회 + LoginVO smiResultVO = loginService.actionLoginCmpChk(loginSmiChkVO); + if(null != smiResultVO.getId()) { + MberManageVO spamMberManageVO = new MberManageVO(); + spamMberManageVO.setMberId(loginVO.getId()); + MberManageVO spamMemberInfoVO = mberManageService.selectSpamMemberInfo(spamMberManageVO); + if(null != spamMemberInfoVO) { + String message = "신청대기중인 상태입니다."; + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + } + } + resultVO = loginService.actionLogin(loginVO); + LoginVO passMissVO = loginService.selectPassMiss(loginVO); + + String alertMessage = ""; + if (!"admin".equals(loginVO.getId())) { + //아이디가 존재 + if(passMissVO != null) { + // 로그인 실패 ( + if (null == resultVO.getId() && passMissVO.getPassMiss() < 5 ) { + loginService.updatePassMissPlus(loginVO); + alertMessage = egovMessageSource.getMessage("fail.common.login"); + + // 로그인 실패시 해킹의심 IP 테이블에 등록_아이디는 있지만 비밀번호가 틀린상황 + /// HackIpVO hackIpVO = new HackIpVO(); + hackIpVO.setHackUserId(loginVO.getId()); + hackIpVO.setAccessIp( EgovClntInfo.getClntIP(request)); + hackIpService.insertHackIp(hackIpVO); + if (loginVO.getBeforeUrl().toString().contains("/web/user/login/login.do")) { + String message = "로그인 실패했습니다."; + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + } + + String message = "로그인 실패했습니다."; + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + + } else { + if (passMissVO.getPassMiss() >= 5) { + //alertMessage = "패스워드가 5회 이상 틀려 로그인 할수 없습니다. 비밀번호를 재설정해주세요."; + String message = "패스워드가 5회 이상 틀려 로그인 할수 없습니다. 비밀번호를 재설정해주세요."; + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + } /* + * else if("A".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = + * "신청하신 아이디가 현제 승인대기 상" + "태입니다."; return goUserLoginPage(redirectAttributes, + * request, model, alertMessage); }else + * if("B".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = + * "아이디가 차단상태가 되어 사용할수 없습니다."; return goUserLoginPage(redirectAttributes, + * request, model, alertMessage); } + */ + loginService.updatePassMissReset(loginVO); + } + } + //아이디 미존재 + else { + alertMessage = egovMessageSource.getMessage("fail.common.login"); + + // 로그인 실패시 해킹의심 IP 테이블에 등록_아이디없고 비밀번호도 틀린상황 + /// HackIpVO hackIpVO = new HackIpVO(); + hackIpVO.setHackUserId(loginVO.getId()); + hackIpVO.setAccessIp(EgovClntInfo.getClntIP(request)); + hackIpService.insertHackIp(hackIpVO); + if (loginVO.getBeforeUrl().toString().contains("/web/user/login/login.do")) { + String message = "로그인 실패했습니다."; + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + } + + String message = "로그인 실패했습니다."; + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + } + } + + + /* 일시 : 2023.07.26 + * 내용 : 로그인시 휴먼고객 redirect 기능 추가 + * 작업자 : 원영현 과장 + */ + + if(resultVO.getDormantYn().equals("Y") || resultVO.getDormantYn() == "Y") { + + String message = "휴면계정입니다."; + + modelAndView.addObject("status", "fail"); + modelAndView.addObject("msg", message); + return modelAndView; + } + + String message = "로그인 성공했습니다."; + + modelAndView.addObject("status", "success"); + modelAndView.addObject("msg", message); + modelAndView.addObject("data", resultVO); + + return modelAndView; + + + } + + @RequestMapping(value = "/web/user/login/actionSecurityLogin_ori_00.do") public String selectActionSecurityLoginWeb(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletResponse response, HttpServletRequest request, @RequestParam Map commandMap, ModelMap model, HttpSession session, RedirectAttributes redirectAttributes) throws Exception { @@ -1772,6 +2361,340 @@ public class EgovLoginController { } } + + + @RequestMapping(value = "/web/user/login/actionSecurityLoginAfterHp.do") + public String selectActionSecurityLoginWebAfterHp(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletResponse response, + HttpServletRequest request, @RequestParam Map commandMap, ModelMap model, + HttpSession session, RedirectAttributes redirectAttributes) throws Exception { + + String userIp = EgovClntInfo.getClntIP(request); + HackIpVO hackIpVO = new HackIpVO(); + hackIpVO.setAccessIp(userIp); + hackIpVO.setBlockYn("Y"); + if (null != hackIpService.selectHackIpVO(hackIpVO)) { + String message = "차단된 아이피입니다. 관리자에게 문의해 주십시요."; + redirectAttributes.addFlashAttribute("message", message); + return "redirect:/"; + } + + /*ScriptEngineManager engine = new ScriptEngineManager();*/ + + loginVO.setUserSe("USR"); + // 로그인 정보 check + + if (loginVO.getId() == null || loginVO.getPassword() == null) { + // 회원가입 시 로그인 처리 + LoginVO pLoginVO = (LoginVO) request.getAttribute("pLoginVO"); + if (pLoginVO == null) { + // RSA 키 생성 + initRsa(request); + /* return "redirect:/web/user/login/login.do"; */ + return "redirect:/"; + } else { + loginVO.setId(pLoginVO.getId()); + loginVO.setPassword(pLoginVO.getPassword()); + loginVO.setBeforeUrl(pLoginVO.getBeforeUrl()); + loginVO.setMessage(pLoginVO.getMessage()); + } + } + + // 1. 일반 로그인 처리 + PrivateKey privateKey = (PrivateKey) session.getAttribute(EgovLoginController.RSA_WEB_KEY); + if (privateKey == null) { + initRsa(request); + /*return "web/site/login/EgovLoginGnrlUsr";*/ + String message = "아이디와 비밀번호를 확인해주세요."; + redirectAttributes.addFlashAttribute("message", message); + System.out.println("======================================================"); + System.out.println("= RSA privateKey is null ="); + System.out.println("======================================================"); + return "redirect:/web/main/mainPage.do"; + } + + LoginVO resultVO; + // 복호화 + String id = ""; + try { + //아이디 복호화 후 소문자 변환 + id = decryptRsa(privateKey, loginVO.getId()).toLowerCase(); + } catch (Exception e) { + initRsa(request); + // return "redirect:/web/user/login/login.do"; + if (loginVO.getBeforeUrl().toString().contains("/web/user/login/login.do")) { + redirectAttributes.addFlashAttribute("fail", true); + return "redirect:/web/user/login/login.do"; + } + return "redirect:/"; + + } + + + //핸드폰 인증번호 확인 + String s_hp = request.getParameter("hp"); + String s_num = request.getParameter("num"); + + System.out.println(s_hp); + System.out.println(s_num); + System.out.println("s_num=============="); + + SendLogVO sendLogVO = new SendLogVO(); + sendLogVO.setSendId(id); + sendLogVO.setReceive(s_hp); + sendLogVO.setCheckNo(s_num); + + sendLogVO = mjonMsgDataService.selectSysMsgLogCheck(sendLogVO); + + if (sendLogVO==null) { + redirectAttributes.addFlashAttribute("fail2", true); + return "redirect:/web/user/login/login.do"; + } + + + String password = decryptRsa(privateKey, loginVO.getPassword()); + loginVO.setId(id); + loginVO.setIp(EgovClntInfo.getClntIP(request)); + loginVO.setPassword(password); + loginVO.setUserSe("GNR"); + loginVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 + + //기업회원 가입중인지 체크 - 기존 로그인 select는 MBER_STTUS = 'Y'가 하드코딩이라 로그인 전 기업회원 가입중인지 선 체크 + //암호화 2번 방지를 위한 LoginVO 생성 + LoginVO loginCmpChkVO = new LoginVO(); + loginCmpChkVO.setId(id); + loginCmpChkVO.setIp(EgovClntInfo.getClntIP(request)); + loginCmpChkVO.setPassword(password); + loginCmpChkVO.setUserSe("GNR"); + loginCmpChkVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 + loginCmpChkVO.setEmplyrSttusCode("A"); // 신청대기중인 사용자까지 조회 + LoginVO cmpHstResultVO = loginService.actionLoginCmpChk(loginCmpChkVO); + if(null != cmpHstResultVO.getId()) { + //기업회원 정보 마지막 내역 조회 + MberManageVO mberManageVO = new MberManageVO(); + mberManageVO.setMberId(loginVO.getId()); + MberManageVO cmpChangeManageVO = mberManageService.selectCmpUsrHst(mberManageVO); + if(null != cmpChangeManageVO) { + if("01".equals(cmpChangeManageVO.getHstType())) { //가장 마지막 내역이 기업회원 가입일 시 + if("01".equals(cmpChangeManageVO.getHstSttus()) || "03".equals(cmpChangeManageVO.getHstSttus()) ) { //가장 마지막 기업회원 가입이 신청 또는 반려 상태일 시 + redirectAttributes.addFlashAttribute("mberId", loginVO.getId()); + //addFlashAttribute 일회성으로 인하여 membershipAttachDocBefore.do 이동 후 + //membershipAttachDoc.do로 바로 submit하여 새로고침 시 정보 유지되게 끔 처리 + return "redirect:/web/user/login/membershipAttachDocBefore.do"; + } + } + } + } + //스팸처리 회원인지 mj_spam_member_info 해당 ID의 최근 1개 데이터 조회 + LoginVO loginSmiChkVO = new LoginVO(); + loginSmiChkVO.setId(id); + loginSmiChkVO.setIp(EgovClntInfo.getClntIP(request)); + loginSmiChkVO.setPassword(password); + loginSmiChkVO.setUserSe("GNR"); + loginSmiChkVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 + loginSmiChkVO.setEmplyrSttusCode("B"); // 신청대기중인 사용자까지 조회 + LoginVO smiResultVO = loginService.actionLoginCmpChk(loginSmiChkVO); + if(null != smiResultVO.getId()) { + MberManageVO spamMberManageVO = new MberManageVO(); + spamMberManageVO.setMberId(loginVO.getId()); + MberManageVO spamMemberInfoVO = mberManageService.selectSpamMemberInfo(spamMberManageVO); + if(null != spamMemberInfoVO) { + redirectAttributes.addFlashAttribute("mberId", loginVO.getId()); + return "redirect:/web/user/login/loginRestrictionUseBefore.do"; + } + } + resultVO = loginService.actionLogin(loginVO); + LoginVO passMissVO = loginService.selectPassMiss(loginVO); + + String alertMessage = ""; + if (!"admin".equals(loginVO.getId())) { + //아이디가 존재 + if(passMissVO != null) { + // 로그인 실패 ( + if (null == resultVO.getId() && passMissVO.getPassMiss() < 5 ) { + loginService.updatePassMissPlus(loginVO); + alertMessage = egovMessageSource.getMessage("fail.common.login"); + + // 로그인 실패시 해킹의심 IP 테이블에 등록_아이디는 있지만 비밀번호가 틀린상황 + /// HackIpVO hackIpVO = new HackIpVO(); + hackIpVO.setHackUserId(loginVO.getId()); + hackIpVO.setAccessIp( EgovClntInfo.getClntIP(request)); + hackIpService.insertHackIp(hackIpVO); + if (loginVO.getBeforeUrl().toString().contains("/web/user/login/login.do")) { + redirectAttributes.addFlashAttribute("fail", true); + return "redirect:/web/user/login/login.do"; + } + + return goUserLoginPage(redirectAttributes, loginVO, request, model, alertMessage); + } else { + if (passMissVO.getPassMiss() >= 5) { + alertMessage = "패스워드가 5회 이상 틀려 로그인 할수 없습니다. 비밀번호를 재설정해주세요."; + return goUserPassMissPage(redirectAttributes, loginVO, request, model, alertMessage); + } /* + * else if("A".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = + * "신청하신 아이디가 현제 승인대기 상" + "태입니다."; return goUserLoginPage(redirectAttributes, + * request, model, alertMessage); }else + * if("B".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = + * "아이디가 차단상태가 되어 사용할수 없습니다."; return goUserLoginPage(redirectAttributes, + * request, model, alertMessage); } + */ + loginService.updatePassMissReset(loginVO); + } + } + //아이디 미존재 + else { + alertMessage = egovMessageSource.getMessage("fail.common.login"); + + // 로그인 실패시 해킹의심 IP 테이블에 등록_아이디없고 비밀번호도 틀린상황 + /// HackIpVO hackIpVO = new HackIpVO(); + hackIpVO.setHackUserId(loginVO.getId()); + hackIpVO.setAccessIp(EgovClntInfo.getClntIP(request)); + hackIpService.insertHackIp(hackIpVO); + if (loginVO.getBeforeUrl().toString().contains("/web/user/login/login.do")) { + redirectAttributes.addFlashAttribute("fail", true); + return "redirect:/web/user/login/login.do"; + } + + return goUserLoginPage(redirectAttributes, loginVO, request, model, alertMessage); + } + } + + + /* 일시 : 2023.07.26 + * 내용 : 로그인시 휴먼고객 redirect 기능 추가 + * 작업자 : 원영현 과장 + */ + + if(resultVO.getDormantYn().equals("Y") || resultVO.getDormantYn() == "Y") { + + return "redirect:/web/user/humanPage.do"; + } + + + + + boolean loginPolicyYn = true; + + // 접속IP + // userIp = EgovClntInfo.getClntIP(request); + + // resultVO.siteId 의 각 로그인 ip를 조회함 + if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("") && loginPolicyYn) { + // 세션에다 ip 등록 + resultVO.setIp(userIp); + // 2. spring security 연동 + request.getSession().setAttribute("LoginVO", resultVO); + UsernamePasswordAuthenticationFilter springSecurity = null; + ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()); + Map beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class); + + if (beans.size() > 0) { + springSecurity = (UsernamePasswordAuthenticationFilter) beans.values().toArray()[0]; + springSecurity.setUsernameParameter("egov_security_username"); + springSecurity.setPasswordParameter("egov_security_password"); + springSecurity.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher(request.getServletContext().getContextPath() + "/egov_security_login", "POST")); + } else { + throw new IllegalStateException("No AuthenticationProcessingFilter"); + } + + springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId(), resultVO.getUniqId()), response, null); + { // 관리자 로그인 log 저장 + String uniqId = ""; + String ip = ""; + + /* Authenticated */ + LoginLog loginLog = new LoginLog(); + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if (isAuthenticated.booleanValue()) { + LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + uniqId = user.getUniqId(); + ip = EgovClntInfo.getClntIP(request); + + HttpSession httpSession = request.getSession(true); + { + List siteManageList = new ArrayList(); + SiteManagerVO siteManagerVO = new SiteManagerVO(); + siteManagerVO.setFirstIndex(0); + siteManagerVO.setRecordCountPerPage(100); + siteManageList = egovSiteManagerService.selectSiteManagerList(siteManagerVO); + httpSession.setAttribute("siteManageList", siteManageList); + httpSession.setAttribute("loginId", user.getId()); // 자동완성 공통으로 쓰기위해 + httpSession.setAttribute("esntlId", user.getPassword()); + + // 최근검색어 조회 후 세션에 넣어줌 + /* + * UserManageVO tempUserManageVO = new UserManageVO(); + * tempUserManageVO.setEmplyrId(user.getId()); tempUserManageVO = + * userManageService.selectRecentSearchWord(tempUserManageVO); + * + * List lisRecentSearch = new ArrayList(); if(null != + * tempUserManageVO){ //ArrayList 로 세션 저장 + * Collections.addAll(lisRecentSearch,tempUserManageVO.getSearchWord().split("," + * )) ; } httpSession.setAttribute("recentSearch", lisRecentSearch) ; + */ + } + } + /* + * loginLog.setLoginId(uniqId); loginLog.setLoginIp(ip); + * loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O loginLog.setErrOccrrAt("N"); + * loginLog.setErrorCode(""); //로그인은 관리자, PC만 됨 loginLog.setUserAt("U"); //사용자 + * loginLog.setDeviceType("P"); //PC loginLog.setProgrmFileNm("adminLogin"); + * loginLog.setMenuNm("관리자로그인"); loginLogService.logInsertLoginLog(loginLog); + */ + + loginVO.getId(); + loginVO.getIp(); + loginVO.setMessage("로그인 성공되었습니다."); + loginVO.setLoginYn("Y"); + loginService.insertActionLoginLog(loginVO); + } + + // 등급제 Start + // 회원별 등급 적용 + MberGrdVO mberGrdVO = new MberGrdVO(); + mberGrdVO.setMberId(loginVO.getId()); + mberGrdVO.setAmt("0"); + mberGrdVO.setMoid(""); + mberGrdService.mberGrdSaveByUserNoHist(mberGrdVO); + // End + + // 이벤트 결제 바로가기 로직 체크 Start + String goEventPay = (String) commandMap.get("goEventPay"); + System.out.println("goEventPay : " + goEventPay); + if (null != goEventPay && goEventPay.equals("Y")) { + // 이벤트 결제 바로가기 + if (goEventPay(loginVO) == true) { + loginVO.setBeforeUrl("/web/event/member/pay/PayView.do"); + } + } + // End + + String beforeUrl = (String) commandMap.get("beforeUrl"); + + // 로그인 전 URL 호출 시 + if (loginVO.getBeforeUrl() != null && !("").equals(loginVO.getBeforeUrl())) { + request.getSession().setAttribute("usrBeforeUrl", loginVO.getBeforeUrl()); + // 회원가입 시 메세지 처리 + if (loginVO.getMessage() != null && !("").equals(loginVO.getMessage())) { + request.getSession().setAttribute("registMessage", loginVO.getMessage()); + } + } + + // 개인키 삭제 + // 성공시 웹페이지 분기로 인해 session에 페이지 타입을 넣어준다. + request.getSession().setAttribute("pageType", "web"); + + return "blank"; // 성공 시 페이지.. (redirect 불가) + + // uat/uia/actionMain.do 실제 성공시 무조건 좌측 메소드로 감. + // return "forward:/web/main/mainPage.do"; + } else { + String message = egovMessageSource.getMessage("fail.common.login"); + redirectAttributes.addFlashAttribute("beforeUrl", loginVO.getBeforeUrl()); + redirectAttributes.addFlashAttribute("message", message); + return "redirect:/"; + } + } + // 이벤트 결제 바로가기 public boolean goEventPay(LoginVO loginVO) throws Exception { boolean goEventPay = false; @@ -2647,7 +3570,7 @@ public class EgovLoginController { String resultBlockSts = "0"; // 비밀번호 찾기 문자내용 - String contents = "[문자온] 비밀번호 변경 인증번호 : %code%"; + String contents = "[문자온] 인증번호 : %code%"; String code = ""; long seed = System.currentTimeMillis(); Random random = new Random(seed); diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml index 8deaf7af..03f1ee56 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml @@ -3702,6 +3702,26 @@ LIMIT 1 + + + +
@@ -294,9 +522,9 @@ function fn_click_banner_add_stat(bannerMenuCode){

문자온에 오신것을 환영합니다.
- 로그인 해주세요. + 로그인1 해주세요.

-
+
아이디
@@ -309,7 +537,7 @@ function fn_click_banner_add_stat(bannerMenuCode){
-
+
비밀번호
@@ -327,15 +555,61 @@ function fn_click_banner_add_stat(bannerMenuCode){
-
+

아이디 또는 비밀번호가 일치하지 않습니다.

-
+ +
+

+ 인증번호가 일치하지 않습니다. +

+
+
+ +
+ + + + +
@@ -367,4 +641,10 @@ function fn_click_banner_add_stat(bannerMenuCode){
+
+ + + + +
\ No newline at end of file From 2b469070543a4d10132fb5d573ce1b0bd0ecda9c Mon Sep 17 00:00:00 2001 From: wyh Date: Mon, 18 Nov 2024 09:35:19 +0900 Subject: [PATCH 02/63] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20ID/PW=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=EC=8B=9C=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=9D=B4=EB=8F=99=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp | 4 ++-- src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp index 0bb7697d..7ec061a8 100644 --- a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp @@ -1587,9 +1587,9 @@ function actionLogin() { + + +
+
인증번호 등록
+
+ + + + + + + + + + + +
인증번호 + +
+
+ + +
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp b/src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp index d9a59228..f3caaae5 100644 --- a/src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp @@ -587,13 +587,15 @@ function fn_click_banner_add_stat(bannerMenuCode){
휴대폰번호
- + + +
From 4f2a0e28b687fd20f31c7c85f27879bdb7c1f39f Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Mon, 18 Nov 2024 20:20:36 +0900 Subject: [PATCH 06/63] =?UTF-8?q?=ED=9C=B4=EB=8C=80=ED=8F=B0=EB=B2=88?= =?UTF-8?q?=ED=98=B8=20=EB=8B=A4=EC=A4=91=EB=B2=88=ED=98=B8=20=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20=EC=B2=B4=ED=81=AC=20=EB=A1=9C=EC=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../msgdata/service/MjonMsgDataService.java | 3 + .../msgdata/service/impl/MjonMsgDataDAO.java | 7 +- .../service/impl/MjonMsgDataServiceImpl.java | 5 + .../let/uat/uia/web/EgovLoginController.java | 43 +- .../impl/EgovUserManageServiceImpl.java | 626 +++++++++--------- .../sqlmap/let/msg/MjonMsgData_SQL_mysql.xml | 18 + .../jsp/web/login/EgovLoginGnrlUsr.jsp | 15 +- 7 files changed, 393 insertions(+), 324 deletions(-) diff --git a/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java b/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java index 80c55e34..9519ff67 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java +++ b/src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java @@ -184,6 +184,9 @@ public interface MjonMsgDataService { public StatusResponse insertMberCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO); public StatusResponse deleteCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO); + + public List selectMberCertPhoneListVO(MberCertPhoneVO mberCertPhoneVO); + } diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java index 58a9d84f..8256a57e 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataDAO.java @@ -205,7 +205,7 @@ public class MjonMsgDataDAO extends EgovAbstractDAO { } public SendLogVO selectSysMsgLogCheck(SendLogVO sendLogVO) throws Exception{ - return (SendLogVO) select("mjonMsgDAO.selectSysMsgLogCheck",sendLogVO); + return (SendLogVO) select("mjonMsgDAO.selectSysMsgLogCheck_new",sendLogVO); } @SuppressWarnings("unchecked") @@ -383,5 +383,10 @@ public class MjonMsgDataDAO extends EgovAbstractDAO { public void deleteCertPhoneInfo(MberCertPhoneVO mberCertPhoneVO) { update("mjonMsgDataDAO.deleteCertPhoneInfo", mberCertPhoneVO); } + + + public List selectMberCertPhoneListVO(MberCertPhoneVO mberCertPhoneVO) { + return (List) list("mjonMsgDataDAO.selectMberCertPhoneListVO", mberCertPhoneVO); + } } diff --git a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java index 2a28d396..f37602a9 100644 --- a/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java +++ b/src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java @@ -3177,5 +3177,10 @@ public class MjonMsgDataServiceImpl extends EgovAbstractServiceImpl implements M mjonMsgDataDAO.deleteCertPhoneInfo(mberCertPhoneVO); return new StatusResponse(HttpStatus.OK, "삭제하였습니다.", LocalDateTime.now()); } + + @Override + public List selectMberCertPhoneListVO(MberCertPhoneVO mberCertPhoneVO) { + return mjonMsgDataDAO.selectMberCertPhoneListVO(mberCertPhoneVO); + } } diff --git a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java index f3224563..f1016408 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java @@ -109,6 +109,7 @@ import itn.let.uat.uap.service.EgovLoginPolicyService; import itn.let.uat.uap.service.LoginPolicyVO; import itn.let.uat.uia.service.AuthCertVO; import itn.let.uat.uia.service.EgovLoginService; +import itn.let.uat.uia.service.MberCertPhoneVO; import itn.let.uss.umt.service.EgovMberManageService; import itn.let.uss.umt.service.EgovUserManageService; import itn.let.uss.umt.service.MberManageConfigVO; @@ -2043,9 +2044,23 @@ public class EgovLoginController { String message = "로그인 성공했습니다."; + + + + + /* 일시 : 2024.11.18 + * 내용 : 다중 인증번호 조회 + * 작업자 : 이호영 + */ + + + List mberCertPhoneList = mjonMsgDataService.selectMberCertPhoneList(resultVO.getId()); + + modelAndView.addObject("status", "success"); modelAndView.addObject("msg", message); modelAndView.addObject("data", resultVO); + modelAndView.addObject("mberCertPhoneList", mberCertPhoneList); return modelAndView; @@ -3580,6 +3595,11 @@ public class EgovLoginController { code = randomCode.append(Integer.toString(random.nextInt(10))).toString(); } contents = contents.replace("%code%", code); + System.out.println("contents : "+ contents); + System.out.println("contents : "+ contents); + System.out.println("contents : "+ contents); + System.out.println("contents : "+ contents); + System.out.println("contents : "+ contents); mjonMsgVO.setSmsTxt(contents); mjonMsgVO.setReserveYn("N"); @@ -3601,9 +3621,25 @@ public class EgovLoginController { userManageVO.setEmplyrNm(mjonMsgVO.getSearchNm()); userManageVO.setMoblphonNo(mjonMsgVO.getCallTo()); - List usedNmList = userManageService.selectUserIdAjax2(userManageVO); + + + + + + - boolean TorF = usedNmList.size() > 0 ? true : false; + MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO(); + mberCertPhoneVO.setMbtlnum(mjonMsgVO.getCallTo()); + mberCertPhoneVO.setMberId(mjonMsgVO.getUserId()); + + + List mberCertPhoneList = mjonMsgDataService.selectMberCertPhoneListVO(mberCertPhoneVO); + + + + + + boolean TorF = mberCertPhoneList.size() > 0 ? true : false; if (!TorF) { @@ -3616,7 +3652,8 @@ public class EgovLoginController { return modelAndView; } - + + List usedNmList = userManageService.selectUserIdAjax2(userManageVO); if(!usedNmList.get(0).getMberSttus().equals("Y")) { String mberSttus = usedNmList.get(0).getMberSttus(); diff --git a/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java b/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java index 9743cfd4..74bbcaa3 100644 --- a/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java +++ b/src/main/java/itn/let/uss/umt/service/impl/EgovUserManageServiceImpl.java @@ -43,12 +43,13 @@ import itn.let.utl.user.service.MjonNoticeSendUtil; /** * 사용자관리에 관한 비지니스 클래스를 정의한다. + * * @author 공통서비스 개발팀 조재영 * @since 2009.04.10 * @version 1.0 * @see * - *
+ *      
  * << 개정이력(Modification Information) >>
  *
  *   수정일      수정자           수정내용
@@ -56,74 +57,75 @@ import itn.let.utl.user.service.MjonNoticeSendUtil;
  *   2009.04.10  조재영          최초 생성
  *   2011.08.31  JJY            경량환경 템플릿 커스터마이징버전 생성
  *
- * 
+ *
*/ @Service("userManageService") public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implements EgovUserManageService { /** userManageDAO */ - @Resource(name="userManageDAO") + @Resource(name = "userManageDAO") private UserManageDAO userManageDAO; @Resource(name = "egovAuthorGroupService") private EgovAuthorGroupService egovAuthorGroupService; - + /** mberManageDAO */ - @Resource(name="mberManageDAO") + @Resource(name = "mberManageDAO") private MberManageDAO mberManageDAO; @Resource(name = "faxDAO") public FaxDAO faxDao; - + /** entrprsManageDAO */ - //EBT-CUSTOMIZING//@Resource(name="entrprsManageDAO") - //EBT-CUSTOMIZING//private EntrprsManageDAO entrprsManageDAO; + // EBT-CUSTOMIZING//@Resource(name="entrprsManageDAO") + // EBT-CUSTOMIZING//private EntrprsManageDAO entrprsManageDAO; /** egovUsrCnfrmIdGnrService */ - @Resource(name="egovUsrCnfrmIdGnrService") + @Resource(name = "egovUsrCnfrmIdGnrService") private EgovIdGnrService idgenService; - - @Resource(name="siteManagerDAO") + + @Resource(name = "siteManagerDAO") SiteManagerDAO siteManagerDAO; - + @Resource(name = "MjonMsgDataService") - private MjonMsgDataService mjonMsgDataService; + private MjonMsgDataService mjonMsgDataService; @Resource(name = "egovMjonCashIdGnrService") - private EgovIdGnrService idgenMjonCashId; - - @Resource(name = "egovMjonPointIdGnrService") - private EgovIdGnrService idgenMjonPointId; + private EgovIdGnrService idgenMjonCashId; - @Resource(name="mjonPayDAO") + @Resource(name = "egovMjonPointIdGnrService") + private EgovIdGnrService idgenMjonPointId; + + @Resource(name = "mjonPayDAO") private MjonPayDAO mjonPayDAO; - + @Resource(name = "egovPgMoidGnrService") private EgovIdGnrService idgenPgMoid; - - @Resource(name="taxDAO") - private TaxDAO taxDAO; - + + @Resource(name = "taxDAO") + private TaxDAO taxDAO; + /** 알림전송 Util */ @Resource(name = "mjonNoticeSendUtil") private MjonNoticeSendUtil mjonNoticeSendUtil; - - @Resource(name="MjonCommon") + + @Resource(name = "MjonCommon") private MjonCommon mjonCommon; - - /** 사이트 설정 */ + + /** 사이트 설정 */ @Resource(name = "egovSiteManagerService") - EgovSiteManagerService egovSiteManagerService; - + EgovSiteManagerService egovSiteManagerService; + /** mberManageService */ @Resource(name = "mberManageService") private EgovMberManageService mberManageService; @Resource(name = "mjonMsgAgentStsService") - private MjonMsgAgentStsService mjonMsgAgentStsService; - + private MjonMsgAgentStsService mjonMsgAgentStsService; + /** * 입력한 사용자아이디의 중복여부를 체크하여 사용가능여부를 확인 + * * @param checkId 중복여부 확인대상 아이디 * @return 사용가능여부(아이디 사용회수 int) * @throws Exception @@ -135,38 +137,40 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement /** * 화면에 조회된 사용자의 정보를 데이터베이스에서 삭제 + * * @param checkedIdForDel 삭제대상 업무사용자아이디 * @throws Exception */ @Override - public void deleteUser(String checkedIdForDel) throws Exception{ + public void deleteUser(String checkedIdForDel) throws Exception { AuthorGroup authorGroup = new AuthorGroup(); - String [] delId = checkedIdForDel.split(","); - for (int i=0; i 업무사용자 목록정보 * @throws Exception @@ -236,6 +241,7 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement /** * 기 등록된 특정 사용자목록의 전체수를 확인 + * * @param userSearchVO 검색조건 * @return 총사용자갯수(int) * @throws Exception @@ -247,12 +253,13 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement /** * 화면에 조회된 사용자의 기본정보를 수정하여 항목의 정합성을 체크하고 수정된 데이터를 데이터베이스에 반영 + * * @param userManageVO 업무사용자 수정정보 * @throws Exception */ @Override public void updateUser(UserManageVO userManageVO) throws Exception { - //패스워드 암호화 + // 패스워드 암호화 String pass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId()); userManageVO.setPassword(pass); @@ -261,6 +268,7 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement /** * 사용자정보 수정시 히스토리 정보를 추가 + * * @param userManageVO 업무사용자 수정정보 * @return result 등록결과 * @throws Exception @@ -272,6 +280,7 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement /** * 업무사용자 암호 수정 + * * @param userManageVO 업무사용자 수정정보(비밀번호) * @throws Exception */ @@ -282,34 +291,35 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement /** * 사용자가 비밀번호를 기억하지 못할 때 비밀번호를 찾을 수 있도록 함 + * * @param passVO 업무사용자 암호 조회조건정보 * @return userManageVO 업무사용자 암호정보 * @throws Exception */ @Override - public UserManageVO selectPassword(UserManageVO passVO) throws Exception{ + public UserManageVO selectPassword(UserManageVO passVO) throws Exception { UserManageVO userManageVO = userManageDAO.selectPassword(passVO); return userManageVO; } - + @Override public List selectUserIdAjax(UserManageVO userManageVO) throws Exception { List userNmList = userManageDAO.selectUserIdAjax(userManageVO); return userNmList; } - + @Override public List selectUserIdAjax2(UserManageVO userManageVO) throws Exception { List userNmList = userManageDAO.selectUserIdAjax2(userManageVO); return userNmList; } - + @Override public int selectAdminIdAjax(UserManageVO userManageVO) throws Exception { return userManageDAO.selectAdminIdAjax(userManageVO); - + } - + @Override public int selectUserPWAjax(UserManageVO userManageVO) throws Exception { int userCount = userManageDAO.selectUserPWAjax(userManageVO); @@ -318,21 +328,18 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement @Override public void updateUserPWAjax(UserManageVO userManageVO) throws Exception { - //패스워드 암호화 + // 패스워드 암호화 String pass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId()); userManageVO.setPassword(pass); userManageDAO.updateUserPWAjax(userManageVO); - + // 페스워드 히스토리 등록 MberManageVO mberManageVO = new MberManageVO(); mberManageVO.setMberId(userManageVO.getEmplyrId()); mberManageVO.setPassword(pass); mberManageDAO.insertMberPWLog(mberManageVO); - + } - - - @Override public void updateUserSttusCode(UserManageVO userManageVO) throws Exception { @@ -353,13 +360,13 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement public UserManageVO selectRecentSearchWord(UserManageVO userManageVO) throws Exception { return userManageDAO.selectRecentSearchWord(userManageVO); } - + // 관리자 모바일환경 비번 저장여부 @Override public UserManageVO selectAdminMobilePwSaveCheck(UserManageVO userManageVO) throws Exception { return userManageDAO.selectAdminMobilePwSaveCheck(userManageVO); } - + @Override public void insertUpdateSearchWord(UserManageVO userManageVO) throws Exception { userManageDAO.insertUpdateSearchWord(userManageVO); @@ -367,7 +374,7 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement @Override public UserDefaultVO selectUserCount() throws Exception { - return userManageDAO.selectUserCount(); + return userManageDAO.selectUserCount(); } @Override @@ -384,29 +391,28 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement public UserManageVO selectUserPw2Ajax(UserManageVO userManageVO) throws Exception { return userManageDAO.selectUserPw2Ajax(userManageVO); } - + @Override - public UserManageVO selectAdminUserSmsCertCheck(UserManageVO userManageVO) throws Exception{ + public UserManageVO selectAdminUserSmsCertCheck(UserManageVO userManageVO) throws Exception { return userManageDAO.selectAdminUserSmsCertCheck(userManageVO); } - + @Override public UserManageVO selectAddrRequestMsgAjax(UserManageVO userManageVO) throws Exception { return userManageDAO.selectAddrRequestMsgAjax(userManageVO); } - + @Override - //관리자가 사용자의 비밀번호를 변경해주는 서비스 - public UserManageVO selectUserPwByAdminAjax(UserManageVO userManageVO) throws Exception{ + // 관리자가 사용자의 비밀번호를 변경해주는 서비스 + public UserManageVO selectUserPwByAdminAjax(UserManageVO userManageVO) throws Exception { return userManageDAO.selectUserPwByAdminAjax(userManageVO); } - + @Override public MberManageVO selectUserInfo(MberManageVO mberManageVO) throws Exception { return userManageDAO.selectUserInfo(mberManageVO); } - @Override public void updateUserInfo(MberManageVO mberManageVO) throws Exception { userManageDAO.updateUserInfo(mberManageVO); @@ -416,7 +422,7 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement public void updateSandResul(MberManageVO mberManageVO) throws Exception { userManageDAO.updateSandResul(mberManageVO); } - + @Override public void updateNoticet(MberManageVO mberManageVO) throws Exception { userManageDAO.updateNoticet(mberManageVO); @@ -426,119 +432,118 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement public void updateDeleteInfo(MberManageVO mberManageVO) throws Exception { userManageDAO.updateDeleteInfo(mberManageVO); } - - //발신번호 관리 본인인증 DI 값 받아오기 + + // 발신번호 관리 본인인증 DI 값 받아오기 @Override - public String selectUserMblDnById(String mberId) throws Exception{ + public String selectUserMblDnById(String mberId) throws Exception { return userManageDAO.selectUserMblDnById(mberId); } - - //발신번호 관리 본인인증 DI 값 받아오기 + + // 발신번호 관리 본인인증 DI 값 받아오기 @Override - public void updateCrtfcDnValue(UserManageVO userManageVO) throws Exception{ + public void updateCrtfcDnValue(UserManageVO userManageVO) throws Exception { userManageDAO.updateCrtfcDnValue(userManageVO); } // 다음 결제시 결제수단 SELECT @Override - public String selectNextPayMethod(String mberId) throws Exception{ + public String selectNextPayMethod(String mberId) throws Exception { return userManageDAO.selectNextPayMethod(mberId); } // 다음 결제시 결제수단 UPDATE @Override - public void updateNextPayMethod(UserManageVO userManageVO) throws Exception{ + public void updateNextPayMethod(UserManageVO userManageVO) throws Exception { userManageDAO.updateNextPayMethod(userManageVO); } - + @Override public int selectAdminDiChk(UserManageVO userManageVO) { return userManageDAO.selectAdminDiChk(userManageVO); } - + @Override - public boolean selectUserStatusInfo(String userId) throws Exception{ - - String mberSttus = userManageDAO.selectUserStatusInfo(userId); - + public boolean selectUserStatusInfo(String userId) throws Exception { + + String mberSttus = userManageDAO.selectUserStatusInfo(userId); + boolean status = true; - if(mberSttus.equals("B")) { + if (mberSttus.equals("B")) { status = false; } - + return status; } - + @Override public String selectUserStatusInfoCheck(String userId) throws Exception { - String mberSttus = userManageDAO.selectUserStatusInfo(userId); + String mberSttus = userManageDAO.selectUserStatusInfo(userId); return mberSttus; } - + // 결제 여부 @Override public int selectPayCountByUser(UserManageVO userManageVO) { return userManageDAO.selectPayCountByUser(userManageVO); } - + // 후불결제여부 @Override - public int selectUserAfterPayInfo(String userId) throws Exception{ + public int selectUserAfterPayInfo(String userId) throws Exception { return userManageDAO.selectUserAfterPayInfo(userId); - } - + } + @Override public UserManageVO selectAdminSmsNoticeYn(UserManageVO userManageVO) { return userManageDAO.selectAdminSmsNoticeYn(userManageVO); } - public void updateUserAdminSmsNoticeYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception { - if(!"".equals(checkedIdForUpt)) { - String [] uptId = checkedIdForUpt.split(","); - for (int i=0; i 슬랙, 문자 알림 No // B선 회원이 아닌경우 전송사 JJ로 변경 로직 포함 public void updateOneUserSmishingYnNotAlert(UserManageVO userManageVO) throws Exception { // 업데이트 userManageDAO.updateUserSmishingYn(userManageVO); - + /* - // B선 전송사 이용고객 => 전송사 JJ로 변경안함 - MberManageVO mberManageVO = new MberManageVO(); - mberManageVO.setMberId(userManageVO.getMberId()); - String blineCode = mberManageService.selectBlineCodeByMberId(mberManageVO); - if (blineCode != null && blineCode.equals("N")) { - // 전송사 JJ로 변경 - mberManageVO.setHotlineAgentName("첫결제 JJ"); - mberManageVO.setHotlineAgentCode("05"); - mberManageVO.setAdmUserId("admin"); - mjonMsgAgentStsService.updateMberHotlineAgentCodeInfo(mberManageVO); - } - */ - } - + * // B선 전송사 이용고객 => 전송사 JJ로 변경안함 MberManageVO mberManageVO = new + * MberManageVO(); mberManageVO.setMberId(userManageVO.getMberId()); String + * blineCode = mberManageService.selectBlineCodeByMberId(mberManageVO); if + * (blineCode != null && blineCode.equals("N")) { // 전송사 JJ로 변경 + * mberManageVO.setHotlineAgentName("첫결제 JJ"); + * mberManageVO.setHotlineAgentCode("05"); mberManageVO.setAdmUserId("admin"); + * mjonMsgAgentStsService.updateMberHotlineAgentCodeInfo(mberManageVO); } + */ + } + // 알림톡 스미싱의심 온/오프 public void updateUserAtSmishingYn(UserManageVO userManageVO, String checkedIdForUpt) throws Exception { - if(!"".equals(checkedIdForUpt)) { - String [] uptIdAll = checkedIdForUpt.split(","); + if (!"".equals(checkedIdForUpt)) { + String[] uptIdAll = checkedIdForUpt.split(","); String[] uptId = Arrays.stream(uptIdAll).distinct().toArray(String[]::new); - for (int i=0; i selectUserPrePaymentYnList(UserManageVO userManageVO) throws Exception { return userManageDAO.selectUserPrePaymentYnList(userManageVO); } - + // 후불제 회원 월 충전 한도금액 만큼 Cash, Point 충전하기 public void updateUserCashByAutoCash() throws Exception { List userPrePaymentYnList = userManageDAO.selectUserPrePaymentYnList(new UserManageVO()); - for (UserManageVO umVO: userPrePaymentYnList) { + for (UserManageVO umVO : userPrePaymentYnList) { if (umVO.getPaymentCash() > 0) { - - //이번달에 입력된 후불 결제요청 데이터가 있는지 확인 - 혹시나 중복 입력을 방지하기 위함 + + // 이번달에 입력된 후불 결제요청 데이터가 있는지 확인 - 혹시나 중복 입력을 방지하기 위함 int paymentCnt = userManageDAO.selectUserPrePaymentPGdataCount(umVO.getMberId()); - - if(paymentCnt > 0) continue; - - //회원 정보 조회 - MberManageVO mberManageVO = mberManageDAO.selectMber(umVO.getMberId()); //멤버ID에서 유니크ID로 수정 필요 + + if (paymentCnt > 0) + continue; + + // 회원 정보 조회 + MberManageVO mberManageVO = mberManageDAO.selectMber(umVO.getMberId()); // 멤버ID에서 유니크ID로 수정 필요 // CASH 값 넣기 MjonPayVO mjonPayVO = this.setAdvCashVO(umVO); - - //CASH 테이블 - mjonPayDAO.insertCash(mjonPayVO); - - //회원정보 CASH 업데이트 + + // CASH 테이블 + mjonPayDAO.insertCash(mjonPayVO); + + // 회원정보 CASH 업데이트 mjonPayDAO.updateMemberCash(mjonPayVO); /* - * JSPark 2023.01.10 => 포인트는 선충전하지 않음 - // point 값 넣기 - mjonPayVO = this.setAdvPointVO(umVO); - - //POINT 테이블 - mjonPayDAO.insertPoint(mjonPayVO); - - //회원정보 POINT 업데이트 - mjonPayDAO.updateMemberPoint(mjonPayVO); - */ - - //지난 달 사용금액 조회 + * JSPark 2023.01.10 => 포인트는 선충전하지 않음 // point 값 넣기 mjonPayVO = + * this.setAdvPointVO(umVO); + * + * //POINT 테이블 mjonPayDAO.insertPoint(mjonPayVO); + * + * //회원정보 POINT 업데이트 mjonPayDAO.updateMemberPoint(mjonPayVO); + */ + + // 지난 달 사용금액 조회 MjonPayVO payVO = mjonPayDAO.selectPrvMonthUseCash(umVO.getMberId()); - + mjonPayVO.setMoid(idgenPgMoid.getNextStringId()); mjonPayVO.setPgCode("INNOPAY"); mjonPayVO.setPgStatus("0"); - mjonPayVO.setCash(Float.parseFloat(payVO.getCashSum())); //실제충전금액(부가세제외) - - mjonPayVO.setPhone(mberManageVO.getMoblphonNo()); //휴대폰번호 - mjonPayVO.setUserName(mberManageVO.getMberNm()); //이름 - mjonPayVO.setBuyerName("결제전"); //추후 결제 시에 입금자명 수기입력 - - mjonPayVO.setTid(" "); //필수값이라 공백 처리 + mjonPayVO.setCash(Float.parseFloat(payVO.getCashSum())); // 실제충전금액(부가세제외) + + mjonPayVO.setPhone(mberManageVO.getMoblphonNo()); // 휴대폰번호 + mjonPayVO.setUserName(mberManageVO.getMberNm()); // 이름 + mjonPayVO.setBuyerName("결제전"); // 추후 결제 시에 입금자명 수기입력 + + mjonPayVO.setTid(" "); // 필수값이라 공백 처리 mjonPayVO.setResultCode("0000"); mjonPayVO.setResultMsg("후불결제 입금 전"); - + mjonPayVO.setPayMethod("AFTERPAY"); mjonPayVO.setGoodsName("후불결제"); - mjonPayVO.setAmt(payVO.getCashVatSum()); //결제액(부가세포함) + mjonPayVO.setAmt(payVO.getCashVatSum()); // 결제액(부가세포함) mjonPayVO.setUserId(umVO.getMberId()); - + Calendar cal = Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat("yyyyMM"); - cal.add(cal.MONTH, - 1); //지난달 - - mjonPayVO.setCalcBaseM(format.format(cal.getTime())); //정산월 : 지난 달 - mjonPayVO.setAfterPayYn("Y"); //후불여부 + cal.add(cal.MONTH, -1); // 지난달 - //PG 테이블에 지난 사용량 누계 추가 + mjonPayVO.setCalcBaseM(format.format(cal.getTime())); // 정산월 : 지난 달 + mjonPayVO.setAfterPayYn("Y"); // 후불여부 + + // PG 테이블에 지난 사용량 누계 추가 mjonPayDAO.insertMjPg(mjonPayVO); - - //세금계산서 데이터 등록 + + // 세금계산서 데이터 등록 TaxVO taxVO = new TaxVO(); - if("B".equals(mberManageVO.getTaxbillAuto()) || "C".equals(mberManageVO.getTaxbillAuto())) { - - /*발행타입 1:소득공제 현금영수증 2:지출증빙 현금영수증 9:세금계산서*/ + if ("B".equals(mberManageVO.getTaxbillAuto()) || "C".equals(mberManageVO.getTaxbillAuto())) { + + /* 발행타입 1:소득공제 현금영수증 2:지출증빙 현금영수증 9:세금계산서 */ String rcptType; - String regNo=""; - - if("B".equals(mberManageVO.getTaxbillAuto())) { //세금계산서 기업 자동발행 + String regNo = ""; + + if ("B".equals(mberManageVO.getTaxbillAuto())) { // 세금계산서 기업 자동발행 rcptType = "9"; taxVO.setTaxTrgt("B"); - - regNo = mberManageVO.getTaxBizNo(); //사업자등록번호 - - taxVO.setCompanyName(mberManageVO.getTaxBzNm());//회사명 - taxVO.setRepName(mberManageVO.getTaxChrmNm());//대표자명 - taxVO.setAddr(mberManageVO.getTaxAddr());//세금계산서 주소 - - }else if("C".equals(mberManageVO.getTaxbillAuto())) { //세금계산서 개인 자동발행 + + regNo = mberManageVO.getTaxBizNo(); // 사업자등록번호 + + taxVO.setCompanyName(mberManageVO.getTaxBzNm());// 회사명 + taxVO.setRepName(mberManageVO.getTaxChrmNm());// 대표자명 + taxVO.setAddr(mberManageVO.getTaxAddr());// 세금계산서 주소 + + } else if ("C".equals(mberManageVO.getTaxbillAuto())) { // 세금계산서 개인 자동발행 rcptType = "9"; taxVO.setTaxTrgt("C"); /* - if(mberManageVO.getCandidateNo1() != null) { - String candiNo1 = mberManageVO.getCandidateNo1(); - String candiNo2 = mberManageVO.getCandidateNo2(); - - regNo = candiNo1 + candiNo2; //주민등록번호 - } - taxVO.setRepName(mberManageVO.getCandidateNm());//후보자 성명 - taxVO.setAddr(mberManageVO.getCandidateAddr());//후보자 주소 - */ + * if(mberManageVO.getCandidateNo1() != null) { String candiNo1 = + * mberManageVO.getCandidateNo1(); String candiNo2 = + * mberManageVO.getCandidateNo2(); + * + * regNo = candiNo1 + candiNo2; //주민등록번호 } + * taxVO.setRepName(mberManageVO.getCandidateNm());//후보자 성명 + * taxVO.setAddr(mberManageVO.getCandidateAddr());//후보자 주소 + */ regNo = mberManageVO.getTaxCIhidNum(); // 세금계산서 개인 주민등록번호 - taxVO.setRepName(mberManageVO.getTaxCNm()); //세금계산서 개인 성명 - taxVO.setAddr(mberManageVO.getTaxCAddr()); //세금계산서 개인 주소 - - } else { //현금영수증 자동발행 + taxVO.setRepName(mberManageVO.getTaxCNm()); // 세금계산서 개인 성명 + taxVO.setAddr(mberManageVO.getTaxCAddr()); // 세금계산서 개인 주소 + + } else { // 현금영수증 자동발행 rcptType = mberManageVO.getCashbillType(); } - taxVO.setMoid(mjonPayVO.getMoid()); //주문ID - taxVO.setRcptType(rcptType);//발행타입 - /*발행번호 개인세금계산서:주민등록번호 / 기업세금계산서:사업자번호 / 소득공제현금영수증:휴대폰번호 / 지출증빙현금영수증:사업자번호*/ + taxVO.setMoid(mjonPayVO.getMoid()); // 주문ID + taxVO.setRcptType(rcptType);// 발행타입 + /* 발행번호 개인세금계산서:주민등록번호 / 기업세금계산서:사업자번호 / 소득공제현금영수증:휴대폰번호 / 지출증빙현금영수증:사업자번호 */ taxVO.setRegNo(regNo); - taxVO.setEmail(mberManageVO.getTaxMngEmail());//담당자이메일 - taxVO.setPhone(mberManageVO.getTaxMngPhoneNum());//담당자 휴대폰번호 - taxVO.setConfirmYn("N"); //완료여부 + taxVO.setEmail(mberManageVO.getTaxMngEmail());// 담당자이메일 + taxVO.setPhone(mberManageVO.getTaxMngPhoneNum());// 담당자 휴대폰번호 + taxVO.setConfirmYn("N"); // 완료여부 taxVO.setFrstRegisterId(mberManageVO.getMberId()); - + taxDAO.insertCashBill(taxVO); // mjonPayDAO.insertMjTax(mjonPayVO); //PGTax 테이블 } - + } } - - } + + } /** * @param mjonPayVO * @return - * @throws Exception - * cash table 값 넣기 - * 2022.04.12 JSP => mjonPayVO.getMoid() => userId 사용 제거 (휴대폰결제에서만 사용) + * @throws Exception cash table 값 넣기 2022.04.12 JSP => mjonPayVO.getMoid() => + * userId 사용 제거 (휴대폰결제에서만 사용) */ - private MjonPayVO setAdvCashVO(UserManageVO userManageVO) throws Exception{ - - //캐쉬 테이블 변수 생성 + private MjonPayVO setAdvCashVO(UserManageVO userManageVO) throws Exception { + + // 캐쉬 테이블 변수 생성 MjonPayVO mjonPayVO = new MjonPayVO(); - mjonPayVO.setCashId(idgenMjonCashId.getNextStringId()) ; - mjonPayVO.setCash((float)userManageVO.getNowChargeCash()); // 자동 충전금액 - 전월 남은 금액 - mjonPayVO.setOrderId("ADVPAY"); // 선지급 + mjonPayVO.setCashId(idgenMjonCashId.getNextStringId()); + mjonPayVO.setCash((float) userManageVO.getNowChargeCash()); // 자동 충전금액 - 전월 남은 금액 + mjonPayVO.setOrderId("ADVPAY"); // 선지급 mjonPayVO.setUserId(userManageVO.getMberId()); mjonPayVO.setFrstRegisterId(userManageVO.getMberId()); - String memo = "후불제 회원 " + userManageVO.getNowChargeCash() + "원 충전" ; - mjonPayVO.setMemo(memo); //캐쉬메모 - + String memo = "후불제 회원 " + userManageVO.getNowChargeCash() + "원 충전"; + mjonPayVO.setMemo(memo); // 캐쉬메모 + return mjonPayVO; } @Override public Map selectFaxSendList(FaxGroupDataVO faxGroupDataVO) { - Map resultMap = new HashMap(); - - //기본 내림차순 정렬 - if(StringUtils.isEmpty(faxGroupDataVO.getSearchSortOrd())) { - - faxGroupDataVO.setSearchSortOrd("desc"); - faxGroupDataVO.setSearchSortCnd("doneDate"); - } - if(StringUtils.isEmpty(faxGroupDataVO.getSearchStartDate()) - && StringUtils.isEmpty(faxGroupDataVO.getSearchEndDate()) - ) { - faxGroupDataVO.setSearchStartDate(DateUtil.getTodayYearAndMonthAndFirstDay()); - faxGroupDataVO.setSearchEndDate(DateUtil.getTodayYearAndMonthAndLastDay()); - } - + // 기본 내림차순 정렬 + if (StringUtils.isEmpty(faxGroupDataVO.getSearchSortOrd())) { + + faxGroupDataVO.setSearchSortOrd("desc"); + faxGroupDataVO.setSearchSortCnd("doneDate"); + } + + if (StringUtils.isEmpty(faxGroupDataVO.getSearchStartDate()) + && StringUtils.isEmpty(faxGroupDataVO.getSearchEndDate())) { + faxGroupDataVO.setSearchStartDate(DateUtil.getTodayYearAndMonthAndFirstDay()); + faxGroupDataVO.setSearchEndDate(DateUtil.getTodayYearAndMonthAndLastDay()); + } + /** pageing */ PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(faxGroupDataVO.getPageIndex()); @@ -877,19 +872,18 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement List faxGroupListVO = faxDao.selectFaxSendList(faxGroupDataVO); try { Map faxPriceMap = faxDao.selectSentAndErrorPrice(faxGroupDataVO); - resultMap.put("faxPriceMap", faxPriceMap); - + resultMap.put("faxPriceMap", faxPriceMap); + } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } - + paginationInfo.setTotalRecordCount(faxGroupListVO.size() > 0 ? faxGroupListVO.get(0).getTotCnt() : 0); resultMap.put("faxGroupListVO", faxGroupListVO); resultMap.put("paginationInfo", paginationInfo); return resultMap; } - } \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml index fa655e4a..dfac412f 100644 --- a/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/msg/MjonMsgData_SQL_mysql.xml @@ -3774,6 +3774,24 @@ AND CERT_USE_YN = 'Y' + + diff --git a/src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp b/src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp index f3caaae5..cab58bf2 100644 --- a/src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/login/EgovLoginGnrlUsr.jsp @@ -178,6 +178,8 @@ function actionLogin(){ success : function(data) { //alert(data.status); //alert(data.data.moblphonNo); + console.log('==========='); + console.log(data.mberCertPhoneList); if (data.status=="success"){ //번호인증팝업 띄우기 @@ -190,8 +192,14 @@ function actionLogin(){ $("#input_list_item_5").show(); $("#input_list_item_6").show(); - $("#hp_text2").val(data.data.moblphonNo); - +// $("#hp_text2").val(data.data.moblphonNo); + var $select = $('#hp_text2'); + data.mberCertPhoneList.forEach(function(item) { + $select.append($('
From 0b22c3160b9f75c4ecd8d1e2047727a4a72c86e1 Mon Sep 17 00:00:00 2001 From: kmg Date: Tue, 19 Nov 2024 17:39:16 +0900 Subject: [PATCH 13/63] =?UTF-8?q?2024/11/19=20=ED=8C=9D=EC=97=85=EC=88=98?= =?UTF-8?q?=EC=A0=95=201=EC=B0=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webapp/WEB-INF/jsp/web/main/mainPage.jsp | 34 ++++++++++++++++++- src/main/webapp/publish/css/popupLayer.css | 1 + 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp index 5e01be31..3f38cc74 100644 --- a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp @@ -1225,7 +1225,7 @@ function fn_click_banner_add_stat(bannerMenuCode){
- + + + + +
diff --git a/src/main/webapp/publish/css/popupLayer.css b/src/main/webapp/publish/css/popupLayer.css index 3fa3cc1f..d99c22d8 100644 --- a/src/main/webapp/publish/css/popupLayer.css +++ b/src/main/webapp/publish/css/popupLayer.css @@ -58,6 +58,7 @@ .layer_popup_wrap02 .layer_popup:first-child{margin-left: 0;} .layer_popup_wrap02 .layer_popup:last-child{margin-right: 0;} .layer_popup_wrap02 .popup_inner{position: relative; display: flex; width: 100%; height: 100%; vertical-align: middle; justify-content: center; align-items: center;} +.layer_popup_wrap .popup_range {display:flex; flex-direction:column;} /* layer_tType1 */ .popTable_wrap {border: 1px solid #ccc; border-radius: 5px;} From 06fec12b4594cb1d989eb0609517aa17c5561fb0 Mon Sep 17 00:00:00 2001 From: Eunjipark Date: Tue, 19 Nov 2024 17:57:55 +0900 Subject: [PATCH 14/63] =?UTF-8?q?2024/11/19=20=ED=8C=9D=EC=97=85=EC=88=98?= =?UTF-8?q?=EC=A0=95=202=EC=B0=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webapp/WEB-INF/jsp/web/main/mainPage.jsp | 14 +++++++------- .../publish/images/main/popup04_241119.jpg | Bin 0 -> 56864 bytes .../publish/images/main/popup06_241119.jpg | Bin 0 -> 61900 bytes 3 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 src/main/webapp/publish/images/main/popup04_241119.jpg create mode 100644 src/main/webapp/publish/images/main/popup06_241119.jpg diff --git a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp index 3f38cc74..7e8c1f21 100644 --- a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp @@ -1241,12 +1241,12 @@ function fn_click_banner_add_stat(bannerMenuCode){ - - - - - - - - - - - - -

이용내역

diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp index 5ad88a44..b718be59 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp @@ -3,6 +3,7 @@ <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +
@@ -425,6 +590,7 @@ function deleteRow(p_ip){

최근 변경일시 : 2024-11-01 12:49

+ ON OFF
@@ -433,23 +599,23 @@ function deleteRow(p_ip){ -
-
-

보안로그인

-
- 현재 접속중인 IP : 000.000.000.00 [허용 IP] -
-
+ + + + + + + -
-

최근 변경일시 : 2024-11-01 12:49

+ + -
- ON - OFF -
-
-
+ + + + + + @@ -463,13 +629,13 @@ function deleteRow(p_ip){
-
+
- + - + @@ -544,7 +710,7 @@ function deleteRow(p_ip){
-

로그인 내역 로그인 내역은 최대 90일까지만 보관됩니다.

+

로그인 내역 로그인 내역은 최대 3개월까지만 보관됩니다.

From b7411be08ad3a886c617dd8b2ec8ae366740682d Mon Sep 17 00:00:00 2001 From: subsub Date: Thu, 21 Nov 2024 16:42:56 +0900 Subject: [PATCH 30/63] =?UTF-8?q?2024/11/21=20=EB=B3=B4=EC=95=88=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8=20on/off=20=EC=88=98=EC=A0=95,=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8=20=EC=A0=95=EB=B3=B4=EC=B0=BD=20=EB=B3=B4?= =?UTF-8?q?=EC=95=88=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/publish/css/common.css | 8 ++ src/main/webapp/publish/images/icon_lock.png | Bin 0 -> 2036 bytes src/main/webapp/publish/js/content.js | 2 +- .../webapp/publish/mypage_index_2024.html | 104 ++++++++++++++---- 4 files changed, 90 insertions(+), 24 deletions(-) create mode 100644 src/main/webapp/publish/images/icon_lock.png diff --git a/src/main/webapp/publish/css/common.css b/src/main/webapp/publish/css/common.css index cb9d574c..c983fc56 100644 --- a/src/main/webapp/publish/css/common.css +++ b/src/main/webapp/publish/css/common.css @@ -151,6 +151,14 @@ caption, .label {position: absolute;width: 1px;height: 1px;margin: -1px;border: .login2 .check_money, .login2 .point, .login2 .event {white-space:nowrap;} + +/* 보안로그인 */ +.security_box{display:inline-flex;height:36px;font-weight:500;background:#fff;padding:0 11px;margin:0 0 0 10px;vertical-align:middle;border-radius:5px;align-items:center;} +.login2 .login_info .security_box i.icon_lock{display:inline-block;width:20px;height:18px;background:url(/publish/images/icon_lock.png) no-repeat center center;background-size:auto 100%;vertical-align:top;} +.security_box .state{font-size:13px;font-weight:600;padding:5px 10px;margin:0 0 0 5px;border-radius:5px;} +.security_box .state.on{border:1px solid #18bb59;background:#e7f8ee;color:#18bb59;} +.security_box .state.off{border:1px solid #e62c2c;background:#fce9e9;color:#e62c2c;} + /* //header */ diff --git a/src/main/webapp/publish/images/icon_lock.png b/src/main/webapp/publish/images/icon_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..83d9630e9c33fe7baf64adb6d1f835ea5aa6bb18 GIT binary patch literal 2036 zcmbVN3v3f*94{#B!DEu~7#p(N5n)p5QSlheZ-PUdq z2@nX&Bxrb4&CpClNHD`fBno5*dn8i+e06KsQZMar7f~EXvS&F*mOlVvH1*r zh+0O|S8cg|TBjRuqQGHyS=Mhob*O6Ooaf@MA74CwPSMY!>Nig;o}BuMz3^m0YFfjZ zGr}bMz%6$MZ5h0&thskvLj1X%eRc=F>W!53i5XK$@)NT!CanGD($T|vuKwP&9NcW( zYQE8P_U*de-OE04m8EwU=Ed#)qa~x+Ltypl7fSu1*Plr_yrU(w zL`qF+U6`@yLi+KvM)%Q+$CtP7zkT#zD6@O`ofCN<9k_5T?MBbIj^>i|!()ES9C2&> z?ISBjR(&wo(~&*%&#n&>_kP+`u-C9A7|8tR*66-1*oNV+#l6?i+c7k`w_#&RI<{-! zNsIFoomI0V_%&FRsBf!pPdXiH$he$Wl}bvs!2b408(-d2IxjfltNgqxp6fHuH13?U z_=j=}amg+@L1E+Mzm6=-D(G48=GA@MKMuY>W$&;nwI%V*YXTQi97E@CUpe~Vg3F77 z>}O+Vk6rTJ5^3!IP)=!9{peBGs#~XQTetK}itO3>H$CR;k1P5%sGeWk&ko!gIM%%K z=7L?{o?D-1Irr1A^8#zThA!Qnc4OqeBXVmO@Ui)7z$erbAnNhat EU%3v)yZ`_I literal 0 HcmV?d00001 diff --git a/src/main/webapp/publish/js/content.js b/src/main/webapp/publish/js/content.js index 7cd4c197..62871e5b 100644 --- a/src/main/webapp/publish/js/content.js +++ b/src/main/webapp/publish/js/content.js @@ -70,7 +70,7 @@ $(document).ready(function () { }); /* 문자샘플 탭 선택 시 활성화 */ - $(".tab_depth1 a").click(function () { + $(".tab_depth1:not(.security_tab) a").click(function () { var tabText = $(this).text(); var tabPosi = $(this).position().left; tabPosi -= 1; diff --git a/src/main/webapp/publish/mypage_index_2024.html b/src/main/webapp/publish/mypage_index_2024.html index fffc111a..3736f21e 100644 --- a/src/main/webapp/publish/mypage_index_2024.html +++ b/src/main/webapp/publish/mypage_index_2024.html @@ -24,11 +24,26 @@ $(function () { // on/off 시 confirm 창 노출 - $('.security_set .tab_depth1 a').click(function () { - if ($(this).text().trim() == "ON") { - confirm("보안로그인 설정 후 로그인 시, 등록한 휴대폰번호로 추가 인증이 진행됩니다"); - } else { - confirm("가입자 휴대폰번호로 본인인증 후 해제가 가능하며, 보안로그인 설정을 해제함으로써 발생하는 손해에 대하여 회사는 책임지지 않습니다."); + $('.security_tab a').click(function (e) { + console.log($(this).hasClass("on")) + if ($(this).hasClass("on") == false) { + if ($(this).text().trim() == "ON") { + if (!confirm("보안로그인 설정 후 로그인 시, 등록한 휴대폰번호로 추가 인증이 진행됩니다")) { + $(this).removeClass("on"); + $(this).siblings("a").addClass("on"); + } else { + $(this).addClass("on"); + $(this).siblings("a").removeClass("on"); + } + } else { + if (!confirm("가입자 휴대폰번호로 본인인증 후 해제가 가능하며, 보안로그인 설정을 해제함으로써 발생하는 손해에 대하여 회사는 책임지지 않습니다.")) { + $(this).removeClass("on"); + $(this).siblings("a").addClass("on"); + } else { + $(this).addClass("on"); + $(this).siblings("a").removeClass("on"); + } + } } }); @@ -198,15 +213,52 @@
- - + @@ -308,17 +360,23 @@ + - + - + - +
010-0000-0000 메모 내용 2024-11-04 11:54
010-0000-0000메모내용 2024-11-04 11:54
@@ -376,7 +434,7 @@

로그인 내역 로그인 내역은 최대 90일까지만 보관됩니다.

-
+
From 4675554266504f133120628edf73968904cc6354 Mon Sep 17 00:00:00 2001 From: Eunjipark Date: Thu, 21 Nov 2024 17:14:26 +0900 Subject: [PATCH 31/63] =?UTF-8?q?2024/11/21=20=EB=B6=88=EB=B2=95=EC=8A=A4?= =?UTF-8?q?=ED=8C=B8=EB=B0=A9=EC=A7=80=EC=A0=95=EC=B1=85=20=EC=88=98?= =?UTF-8?q?=EC=A0=952?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/publish/service3_spam_2024.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/publish/service3_spam_2024.html b/src/main/webapp/publish/service3_spam_2024.html index 5d09e217..d669274a 100644 --- a/src/main/webapp/publish/service3_spam_2024.html +++ b/src/main/webapp/publish/service3_spam_2024.html @@ -235,7 +235,7 @@ KISA 불법 스팸방지를 위한 정보통신망법 안내서
- 주식회사 아이티앤(이하 "회사”라 한다)은 편리한 서비스 이용과 스팸, 불법스팸으로 인한 폐해를 방지하기 위해 스팸방지정책을 수립하여 운영하고 있습니다. 회사가 제공하는 인터넷 + 주식회사 아이티앤(이하 “회사”라 한다)은 편리한 서비스 이용과 스팸, 불법스팸으로 인한 폐해를 방지하기 위해 스팸방지정책을 수립하여 운영하고 있습니다. 회사가 제공하는 인터넷 서비스 문자온(www.munjaon.co.kr, 이하 “서비스”)을 이용함에 있어, 아래와 같이 불법스팸(문자, 팩스, 음성, 메일)을 발송한 이용자에 대해서는 이용정지 및 해지, 형사고발 등의 조치를 취하겠습니다.
From 265e29a513a2bcfcfcb8822de490deaeb88f7dd4 Mon Sep 17 00:00:00 2001 From: subsub Date: Thu, 21 Nov 2024 17:47:39 +0900 Subject: [PATCH 32/63] =?UTF-8?q?2024/11/21=20css=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/publish/css/content.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/publish/css/content.css b/src/main/webapp/publish/css/content.css index 77a9b6b3..87ee1125 100644 --- a/src/main/webapp/publish/css/content.css +++ b/src/main/webapp/publish/css/content.css @@ -1750,7 +1750,7 @@ button.check_validity:hover {border: 1px solid #a3a3a3;box-shadow: 0px 0px 5px .fax_content .file_add.upload_table_wrap .file_upload_table tbody tr td p{display: inline-block; max-width: 83%; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; font-size: 15px; font-weight:400; color: #444; vertical-align: sub;} .fax_content .file_add.upload_table_wrap .file_upload_table tbody tr td .btn_file_del{width: 24px; height: 24px;} .fax_content .file_add.upload_table_wrap .file_upload_table tbody tr td img{margin-right: 0;} -.fax_content .file_right{display: inline-block; width: 150px; margin: 0 0 0 8px;} +.fax_content .file_right{display: inline-block; width: 149px; margin: 0 0 0 8px;} .fax_content .file_right button{width: 100%; max-width: 100%; margin: 0 0 4px 0;} .fax_content .file_right p{width: 100%; text-align: right; margin: 20px 0 0 0;} .fax_content .receipt_num_input{width: calc(100% - 300px); max-width: 340px;} From 2f58db34b1643925ec75d25266f282866ef88eaa Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Thu, 21 Nov 2024 17:51:37 +0900 Subject: [PATCH 33/63] =?UTF-8?q?=EB=B3=B4=EC=95=88=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=A7=84=ED=96=89=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cert/ip/service/CertLoginLogService.java | 14 +++ .../cert/ip/service/MberCertLoginLogVO.java | 68 ++++++++++++ .../cert/ip/service/impl/CertLoginLogDAO.java | 41 +++++++ .../service/impl/CertLoginLogServiceImpl.java | 78 ++++++++++++++ .../cert/ip/web/CertLoginLogController.java | 102 ++++++++++++++++++ .../let/uat/uia/web/EgovLoginController.java | 13 +++ .../spring/com/context-idgen.xml | 19 ++++ .../mysql/sql-map-config-mysql-cert.xml | 5 +- .../let/cert/MjonCertLoginLog_SQL_mysql.xml | 45 ++++++++ .../WEB-INF/jsp/web/user/mberSecureLogin.jsp | 6 +- 10 files changed, 385 insertions(+), 6 deletions(-) create mode 100644 src/main/java/itn/let/cert/ip/service/CertLoginLogService.java create mode 100644 src/main/java/itn/let/cert/ip/service/MberCertLoginLogVO.java create mode 100644 src/main/java/itn/let/cert/ip/service/impl/CertLoginLogDAO.java create mode 100644 src/main/java/itn/let/cert/ip/service/impl/CertLoginLogServiceImpl.java create mode 100644 src/main/java/itn/let/cert/ip/web/CertLoginLogController.java create mode 100644 src/main/resources/egovframework/sqlmap/let/cert/MjonCertLoginLog_SQL_mysql.xml diff --git a/src/main/java/itn/let/cert/ip/service/CertLoginLogService.java b/src/main/java/itn/let/cert/ip/service/CertLoginLogService.java new file mode 100644 index 00000000..3af77334 --- /dev/null +++ b/src/main/java/itn/let/cert/ip/service/CertLoginLogService.java @@ -0,0 +1,14 @@ +package itn.let.cert.ip.service; + +import javax.servlet.http.HttpServletRequest; + +import egovframework.rte.fdl.cmmn.exception.FdlException; + +public interface CertLoginLogService { + + + public void insertCertLoginLog(MberCertLoginLogVO mberCertLoginLogVO, HttpServletRequest request) throws FdlException; + + + +} diff --git a/src/main/java/itn/let/cert/ip/service/MberCertLoginLogVO.java b/src/main/java/itn/let/cert/ip/service/MberCertLoginLogVO.java new file mode 100644 index 00000000..b261e90f --- /dev/null +++ b/src/main/java/itn/let/cert/ip/service/MberCertLoginLogVO.java @@ -0,0 +1,68 @@ +package itn.let.cert.ip.service; + +import itn.let.uss.umt.service.UserDefaultVO; +/** + * + * @author : 이호영 + * @fileName : MberCertLoginLogVO.java + * @date : 2024.11.21 + * @description : 로그인 이력관리 92동안만 관리하고 삭제 + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- * + * 2024.11.21 이호영 최초 생성 + * + * + * + */ +public class MberCertLoginLogVO extends UserDefaultVO{ + + + /** + * @description : + */ + private static final long serialVersionUID = 1L; + + + private String certLoginId; + private String loginId; + private String loginIp; + private String loginDevice; + private String loginDt; + + + public String getCertLoginId() { + return certLoginId; + } + public void setCertLoginId(String certLoginId) { + this.certLoginId = certLoginId; + } + public String getLoginId() { + return loginId; + } + public void setLoginId(String loginId) { + this.loginId = loginId; + } + public String getLoginIp() { + return loginIp; + } + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + public String getLoginDevice() { + return loginDevice; + } + public void setLoginDevice(String loginDevice) { + this.loginDevice = loginDevice; + } + public String getLoginDt() { + return loginDt; + } + public void setLoginDt(String loginDt) { + this.loginDt = loginDt; + } + + + + +} diff --git a/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogDAO.java b/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogDAO.java new file mode 100644 index 00000000..5f81c14a --- /dev/null +++ b/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogDAO.java @@ -0,0 +1,41 @@ +package itn.let.cert.ip.service.impl; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractDAO; +import itn.let.cert.ip.service.MberCertLoginLogVO; + +@Repository("CertLoginLogDAO") +public class CertLoginLogDAO extends EgovAbstractDAO { + + +/* + public List selectMberCertIpList(MberCertIpVO mberCertIpVO) { + return (List) list("MberCertIpVO.selectMberCertIpList", mberCertIpVO); + } + + public void insertCertIp(MberCertIpVO mberCertIpVO) { + insert("MberCertIpVO.insertCertIp", mberCertIpVO); + } + + public void deleteCertIp(MberCertIpVO mberCertIpVO) { + insert("MberCertIpVO.deleteCertIp", mberCertIpVO); + } + + public MberCertIpVO findByMberCertIpList(MberCertIpVO mberCertIpVO) { + return (MberCertIpVO) select("MberCertIpVO.findByMberCertIpList", mberCertIpVO); + } +*/ + public void insertCertLoginLog(MberCertLoginLogVO mberCertLoginLogVO) { + insert("MberCertLoginLogVO.insertCertLoginLog", mberCertLoginLogVO); + } + + public int checkLoginIpExists(MberCertLoginLogVO mberCertLoginLogVO) { + return (int) select("MberCertLoginLogVO.checkLoginIpExists", mberCertLoginLogVO); + } + + public void updateCertLoginLog(MberCertLoginLogVO mberCertLoginLogVO) { + insert("MberCertLoginLogVO.updateCertLoginLog", mberCertLoginLogVO); + } + +} diff --git a/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogServiceImpl.java b/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogServiceImpl.java new file mode 100644 index 00000000..bd256583 --- /dev/null +++ b/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogServiceImpl.java @@ -0,0 +1,78 @@ +package itn.let.cert.ip.service.impl; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.springframework.stereotype.Service; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import egovframework.rte.fdl.cmmn.exception.FdlException; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import itn.let.cert.ip.service.CertLoginLogService; +import itn.let.cert.ip.service.MberCertLoginLogVO; + +@Service("CertLoginLogService") +public class CertLoginLogServiceImpl extends EgovAbstractServiceImpl implements CertLoginLogService { + + @Resource(name = "CertLoginLogDAO") + private CertLoginLogDAO certLoginLogDAO; + + @Resource(name = "egovMjonCertLoginLogIdGnrService") + private EgovIdGnrService certLoginLogIdGnrService; +/* + @Override + public StatusResponse selectMberCertIpList(MberCertIpVO mberCertPhoneVO) { + List mberCertIpListVO = certLoginLogDAO.selectMberCertIpList(mberCertPhoneVO); + return new StatusResponse(HttpStatus.OK, mberCertIpListVO, LocalDateTime.now()); + } + + + @Override + public StatusResponse insertCertIp(MberCertIpVO mberCertIpVO) { + MberCertIpVO mberCertIpListVO = certLoginLogDAO.findByMberCertIpList(mberCertIpVO); + if(mberCertIpListVO != null) { + return new StatusResponse(HttpStatus.CONFLICT, "중복 IP입니다.", LocalDateTime.now()); + } + certLoginLogDAO.insertCertIp(mberCertIpVO); + return new StatusResponse(HttpStatus.OK, "등록 하였습니다.", LocalDateTime.now()); + } + + + @Override + public StatusResponse deleteCertIp(MberCertIpVO mberCertIpVO) { + certLoginLogDAO.deleteCertIp(mberCertIpVO); + return new StatusResponse(HttpStatus.OK, "삭제 하였습니다.", LocalDateTime.now()); + } +*/ + + @Override + public void insertCertLoginLog(MberCertLoginLogVO mberCertLoginLogVO, HttpServletRequest request) throws FdlException { + + + 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) { + String userAgent = request.getHeader("User-Agent").toLowerCase(); + + if (userAgent.contains("mobile") || userAgent.contains("android") || userAgent.contains("iphone")) { + return "M"; + } else if (userAgent.contains("tablet") || userAgent.contains("ipad")) { + return "T"; + } else { + return "D"; + } + } + +} diff --git a/src/main/java/itn/let/cert/ip/web/CertLoginLogController.java b/src/main/java/itn/let/cert/ip/web/CertLoginLogController.java new file mode 100644 index 00000000..0118a704 --- /dev/null +++ b/src/main/java/itn/let/cert/ip/web/CertLoginLogController.java @@ -0,0 +1,102 @@ +package itn.let.cert.ip.web; + +import java.time.LocalDateTime; + +import javax.annotation.Resource; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper; +import itn.com.cmm.LoginVO; +import itn.com.utl.fcc.service.EgovStringUtil; +import itn.let.cert.ip.service.CertLoginLogService; +import itn.let.cert.ip.service.MberCertIpVO; +import itn.let.mail.service.StatusResponse; + +/** + * + * @author : 이호영 + * @fileName : CertIpController.java + * @date : 2024.11.19 + * @description : 허용 IP 관련 컨트롤러 + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- * + * 2024.11.19 이호영 최초 생성 + * + * + * + */ +@Controller +public class CertLoginLogController { + + + /* CertLoginLogService */ + @Resource(name = "CertLoginLogService") + private CertLoginLogService certLoginLogService; + + /* + @RequestMapping(value = {"/cert/ip/selectMberCertIpList.do"}) + public ResponseEntity selectMberCertIpList(MberCertIpVO mberCertPhoneVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId == null) { + if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); + } + mberCertPhoneVO.setMberId(userId); + return ResponseEntity.ok().body(certLoginLogService.selectMberCertIpList(mberCertPhoneVO)); + } + + + @RequestMapping(value = {"/cert/ip/insertCertIp.do"}) + public ResponseEntity insertCertIp(MberCertIpVO mberCertIpVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId == null) { + if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); + } + mberCertIpVO.setFrstRegisterId(userId); + mberCertIpVO.setMberId(userId); + + + return ResponseEntity.ok().body(certLoginLogService.insertCertIp(mberCertIpVO)); + } + + @RequestMapping(value = {"/cert/ip/deleteCertIp.do"}) + public ResponseEntity deleteCertIp(MberCertIpVO mberCertIpVO) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId == null) { + if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); + } + mberCertIpVO.setLastUpdusrId(userId); + mberCertIpVO.setMberId(userId); + + + return ResponseEntity.ok().body(certLoginLogService.deleteCertIp(mberCertIpVO)); + } + */ +} \ No newline at end of file diff --git a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java index e5eda7b6..f22c7e3c 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovLoginController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovLoginController.java @@ -83,6 +83,8 @@ import itn.com.cmm.util.StringUtil; import itn.com.cmm.util.WebUtil; import itn.com.uss.olh.hpc.service.HackIpService; import itn.com.uss.olh.hpc.service.HackIpVO; +import itn.let.cert.ip.service.CertLoginLogService; +import itn.let.cert.ip.service.MberCertLoginLogVO; import itn.let.cert.phone.service.CertPhoneService; import itn.let.cert.phone.service.MberCertPhoneVO; import itn.let.cop.bbs.service.BoardVO; @@ -242,6 +244,9 @@ public class EgovLoginController { @Resource(name = "CertPhoneService") private CertPhoneService certPhoneService; + @Resource(name = "CertLoginLogService") + private CertLoginLogService certLoginLogService; + private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class); /* 문자온 사용자 로그인 시작 */ @@ -1111,6 +1116,7 @@ public class EgovLoginController { // 공인 IP 구하기 String userIp = EgovClntInfo.getClntIP(request); + System.out.println("userIp :: "+userIp); // java.util.Scanner s = new java.util.Scanner(new // java.net.URL("https://api.ipify.org").openStream(), // "UTF-8").useDelimiter("\\A"); @@ -2664,7 +2670,14 @@ public class EgovLoginController { loginVO.getIp(); loginVO.setMessage("로그인 성공되었습니다."); loginVO.setLoginYn("Y"); + loginService.insertActionLoginLog(loginVO); + // 인증 로그인 이력을 위한 insert + + MberCertLoginLogVO mberCertLoginLogVO = new MberCertLoginLogVO(); + mberCertLoginLogVO.setLoginId(loginVO.getId()); + mberCertLoginLogVO.setLoginIp(loginVO.getIp()); + certLoginLogService.insertCertLoginLog(mberCertLoginLogVO, request); } // 등급제 Start diff --git a/src/main/resources/egovframework/spring/com/context-idgen.xml b/src/main/resources/egovframework/spring/com/context-idgen.xml index 4b5c4923..727e2847 100644 --- a/src/main/resources/egovframework/spring/com/context-idgen.xml +++ b/src/main/resources/egovframework/spring/com/context-idgen.xml @@ -2849,5 +2849,24 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cert.xml b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cert.xml index 081c2f5f..98a25d13 100644 --- a/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cert.xml +++ b/src/main/resources/egovframework/sqlmap/config/mysql/sql-map-config-mysql-cert.xml @@ -3,6 +3,7 @@ - - + + + diff --git a/src/main/resources/egovframework/sqlmap/let/cert/MjonCertLoginLog_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/cert/MjonCertLoginLog_SQL_mysql.xml new file mode 100644 index 00000000..55517b16 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/let/cert/MjonCertLoginLog_SQL_mysql.xml @@ -0,0 +1,45 @@ + + + + + + + + + + INSERT INTO LETTNGNRLMBER_CERT_LOGIN_LOG_IP + ( + CERT_LOGIN_ID, + LOGIN_ID, + LOGIN_IP, + LOGIN_DEVICE, + LOGIN_DT + ) + VALUES + ( + #certLoginId#, + #loginId#, + #loginIp#, + #loginDevice#, + NOW() + ) + + + + + UPDATE LETTNGNRLMBER_CERT_LOGIN_LOG_IP + SET LOGIN_DT = NOW() + WHERE LOGIN_IP = #loginIp# + AND LOGIN_ID = #loginId# + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp index b718be59..d4879c9a 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp @@ -20,10 +20,8 @@ $(document).ready(function(){ // on/off 시 confirm 창 노출 $('.security_set .tab_depth1 a').click(function () { if ($(this).text().trim() == "ON") { - if(!confirm("보안로그인 설정 후 로그인 시, 등록한 휴대폰번호로 추가 인증이 진행됩니다")){ - console.log('???'); - return false; - } + confirm("보안로그인 설정 후 로그인 시, 등록한 휴대폰번호로 추가 인증이 진행됩니다"); + } else { confirm("가입자 휴대폰번호로 본인인증 후 해제가 가능하며, 보안로그인 설정을 해제함으로써 발생하는 손해에 대하여 회사는 책임지지 않습니다."); openKMCISWindow(); From 9b3a4a3362605a97652e05a777cfb358f142496b Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Thu, 21 Nov 2024 20:11:38 +0900 Subject: [PATCH 34/63] =?UTF-8?q?=EB=B3=B4=EC=95=88=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=A7=84=ED=96=89=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../let/cert/ip/service/CertIpService.java | 7 ++ .../cert/ip/service/CertLoginLogService.java | 5 ++ .../let/cert/ip/service/impl/CertIpDAO.java | 8 ++ .../ip/service/impl/CertIpServiceImpl.java | 25 +++++- .../cert/ip/service/impl/CertLoginLogDAO.java | 6 ++ .../service/impl/CertLoginLogServiceImpl.java | 9 +++ .../let/uat/uia/web/EgovMypageController.java | 71 ++++++++++++++++- .../sqlmap/let/cert/MjonCertIp_SQL_mysql.xml | 29 +++++++ .../let/cert/MjonCertLoginLog_SQL_mysql.xml | 30 +++++++ .../WEB-INF/jsp/web/user/mberSecureLogin.jsp | 79 ++++++------------- 10 files changed, 211 insertions(+), 58 deletions(-) diff --git a/src/main/java/itn/let/cert/ip/service/CertIpService.java b/src/main/java/itn/let/cert/ip/service/CertIpService.java index b4b58285..49fd964c 100644 --- a/src/main/java/itn/let/cert/ip/service/CertIpService.java +++ b/src/main/java/itn/let/cert/ip/service/CertIpService.java @@ -1,5 +1,7 @@ package itn.let.cert.ip.service; +import java.util.List; + import itn.let.mail.service.StatusResponse; public interface CertIpService { @@ -22,6 +24,11 @@ public interface CertIpService { public StatusResponse deleteCertIp(MberCertIpVO mberCertIpVO); + public Boolean checkCertIp(MberCertIpVO mberCertIpVO); + + public Boolean checkRegCertIp(MberCertIpVO mberCertIpVO); + + } diff --git a/src/main/java/itn/let/cert/ip/service/CertLoginLogService.java b/src/main/java/itn/let/cert/ip/service/CertLoginLogService.java index 3af77334..c0bb6484 100644 --- a/src/main/java/itn/let/cert/ip/service/CertLoginLogService.java +++ b/src/main/java/itn/let/cert/ip/service/CertLoginLogService.java @@ -1,5 +1,7 @@ package itn.let.cert.ip.service; +import java.util.List; + import javax.servlet.http.HttpServletRequest; import egovframework.rte.fdl.cmmn.exception.FdlException; @@ -9,6 +11,9 @@ public interface CertLoginLogService { public void insertCertLoginLog(MberCertLoginLogVO mberCertLoginLogVO, HttpServletRequest request) throws FdlException; + public List findAllCertLoginLogVO(MberCertLoginLogVO mberCertLoginLogVO); + + } diff --git a/src/main/java/itn/let/cert/ip/service/impl/CertIpDAO.java b/src/main/java/itn/let/cert/ip/service/impl/CertIpDAO.java index e1e2278c..f76ba664 100644 --- a/src/main/java/itn/let/cert/ip/service/impl/CertIpDAO.java +++ b/src/main/java/itn/let/cert/ip/service/impl/CertIpDAO.java @@ -27,5 +27,13 @@ public class CertIpDAO extends EgovAbstractDAO { public MberCertIpVO findByMberCertIpList(MberCertIpVO mberCertIpVO) { return (MberCertIpVO) select("MberCertIpVO.findByMberCertIpList", mberCertIpVO); } + + public List checkCertIp(MberCertIpVO mberCertIpVO) { + return (List) list("MberCertIpVO.checkCertIp", mberCertIpVO); + } + + public List checkRegCertIp(MberCertIpVO mberCertIpVO) { + return (List) list("MberCertIpVO.checkRegCertIp", mberCertIpVO); + } } diff --git a/src/main/java/itn/let/cert/ip/service/impl/CertIpServiceImpl.java b/src/main/java/itn/let/cert/ip/service/impl/CertIpServiceImpl.java index 023efcc4..31e4e6e6 100644 --- a/src/main/java/itn/let/cert/ip/service/impl/CertIpServiceImpl.java +++ b/src/main/java/itn/let/cert/ip/service/impl/CertIpServiceImpl.java @@ -21,8 +21,8 @@ public class CertIpServiceImpl extends EgovAbstractServiceImpl implements CertIp @Override - public StatusResponse selectMberCertIpList(MberCertIpVO mberCertPhoneVO) { - List mberCertIpListVO = certIpDAO.selectMberCertIpList(mberCertPhoneVO); + public StatusResponse selectMberCertIpList(MberCertIpVO mberCertIpVO) { + List mberCertIpListVO = certIpDAO.selectMberCertIpList(mberCertIpVO); return new StatusResponse(HttpStatus.OK, mberCertIpListVO, LocalDateTime.now()); } @@ -43,5 +43,26 @@ public class CertIpServiceImpl extends EgovAbstractServiceImpl implements CertIp certIpDAO.deleteCertIp(mberCertIpVO); return new StatusResponse(HttpStatus.OK, "삭제 하였습니다.", LocalDateTime.now()); } + + + @Override + public Boolean checkCertIp(MberCertIpVO mberCertIpVO) { + List mberCertIpListVO = certIpDAO.checkCertIp(mberCertIpVO); + if(mberCertIpListVO.size()>0) { + return true; + }else { + return false; + } + } + + @Override + public Boolean checkRegCertIp(MberCertIpVO mberCertIpVO) { + List mberCertIpListVO = certIpDAO.checkRegCertIp(mberCertIpVO); + if(mberCertIpListVO.size()>0) { + return true; + }else { + return false; + } + } } diff --git a/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogDAO.java b/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogDAO.java index 5f81c14a..8bc7b868 100644 --- a/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogDAO.java +++ b/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogDAO.java @@ -1,5 +1,7 @@ package itn.let.cert.ip.service.impl; +import java.util.List; + import org.springframework.stereotype.Repository; import egovframework.rte.psl.dataaccess.EgovAbstractDAO; @@ -37,5 +39,9 @@ public class CertLoginLogDAO extends EgovAbstractDAO { public void updateCertLoginLog(MberCertLoginLogVO mberCertLoginLogVO) { insert("MberCertLoginLogVO.updateCertLoginLog", mberCertLoginLogVO); } + + public List findAllCertLoginLogVO(MberCertLoginLogVO mberCertLoginLogVO) { + return (List) list("MberCertLoginLogVO.findAllCertLoginLogVO", mberCertLoginLogVO); + } } diff --git a/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogServiceImpl.java b/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogServiceImpl.java index bd256583..d052ce9b 100644 --- a/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogServiceImpl.java +++ b/src/main/java/itn/let/cert/ip/service/impl/CertLoginLogServiceImpl.java @@ -1,5 +1,7 @@ package itn.let.cert.ip.service.impl; +import java.util.List; + import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -75,4 +77,11 @@ public class CertLoginLogServiceImpl extends EgovAbstractServiceImpl implements } } + @Override + public List findAllCertLoginLogVO(MberCertLoginLogVO mberCertLoginLogVO) { + // TODO Auto-generated method stub + return certLoginLogDAO.findAllCertLoginLogVO(mberCertLoginLogVO); + + } + } diff --git a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java index 89320850..5e707225 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java @@ -41,6 +41,10 @@ import itn.com.cmm.util.MJUtil; import itn.com.cmm.util.RedirectUrlMaker; import itn.com.cmm.util.StringUtil; import itn.com.utl.fcc.service.EgovStringUtil; +import itn.let.cert.ip.service.CertIpService; +import itn.let.cert.ip.service.CertLoginLogService; +import itn.let.cert.ip.service.MberCertIpVO; +import itn.let.cert.ip.service.MberCertLoginLogVO; import itn.let.fax.user.service.FaxGroupDataVO; import itn.let.fax.user.service.FaxService; import itn.let.kakao.user.sent.service.KakaoSentService; @@ -70,6 +74,7 @@ import itn.let.uss.umt.service.EgovMberManageService; import itn.let.uss.umt.service.EgovUserManageService; import itn.let.uss.umt.service.MberManageVO; import itn.let.uss.umt.service.UserManageVO; +import itn.let.utl.sim.service.EgovClntInfo; import itn.let.utl.user.service.MjonNoticeSendUtil; /** @@ -164,6 +169,14 @@ public class EgovMypageController { /** 등급제 관리 서비스 */ @Resource(name = "mberGrdService") MberGrdService mberGrdService; + +// /* CertLoginLogService */ + @Resource(name = "CertLoginLogService") + private CertLoginLogService certLoginLogService; + +// /* CertLoginLogService */ + @Resource(name = "CertIpService") + private CertIpService certIpService; /** * 마이페이지 비밀번호 변경 탭 @@ -2927,13 +2940,58 @@ public class EgovMypageController { * 회원탈퇴 본인인증 화면 */ @RequestMapping(value="/web/user/mberSecureLogin.do") - public String secureLogin(@ModelAttribute MberManageVO mberManageVO + public String secureLogin(@ModelAttribute("mberCertLoginLogVO") MberCertLoginLogVO mberCertLoginLogVO , ModelMap model, HttpServletRequest request, RedirectAttributes redirectAttributes) throws Exception { LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; if(loginVO == null) { return "redirect:/web/user/login/login.do"; } + + //로그인 권한정보 불러오기 + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + + mberCertLoginLogVO.setLoginId(userId); + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(mberCertLoginLogVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(mberCertLoginLogVO.getPageUnit()); + paginationInfo.setPageSize(mberCertLoginLogVO.getPageSize()); + + mberCertLoginLogVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + mberCertLoginLogVO.setLastIndex(paginationInfo.getLastRecordIndex()); + mberCertLoginLogVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + if("".equals(mberCertLoginLogVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + mberCertLoginLogVO.setSearchSortCnd("LOGIN_DT"); + mberCertLoginLogVO.setSearchSortOrd("asc"); + } + + + //전체 발송 리스트 불러오기 + List resultList = certLoginLogService.findAllCertLoginLogVO(mberCertLoginLogVO); + model.addAttribute("resultList", resultList); + model.addAttribute("resultListCnt", resultList.size()); + + + paginationInfo.setTotalRecordCount( resultList.size()> 0 ? resultList.get(0).getTotCnt() : 0); + model.addAttribute("paginationInfo", paginationInfo); + + + + + // 접속 IP + String cennectIP = EgovClntInfo.getClntIP(request); + model.addAttribute("cennectIP", cennectIP); + + // 접속 IP가 등록되어있는지 확인 + MberCertIpVO mberCertIpVO = new MberCertIpVO(); + mberCertIpVO.setCertIp(cennectIP); + mberCertIpVO.setMberId(userId); + model.addAttribute("chkcertRegIP", certIpService.checkRegCertIp(mberCertIpVO)); + + + { @@ -2954,6 +3012,8 @@ public class EgovMypageController { AuthCertVO certVO = kmcCertCheck.authCertCheckNine(serverNm + "/web/user/selectSecurityAuthn.do", loginVO.getId()); model.addAttribute("certVO", certVO); } + + model.addAttribute("pageTab", "mberSecureLogin"); return "web/user/mberSecureLogin"; @@ -3773,12 +3833,17 @@ public class EgovMypageController { certVO.setCertNation(kmcVO.getNation()); certVO.setCertName(kmcVO.getName()); certVO.setCertResult(kmcVO.getResult()); - certVO.setCertType("KMC_회원정보 변경"); + certVO.setCertType("dddddddddddddddddddddd"); certVO.setCertIpaddr(kmcVO.getIp()); certVO.setBirthDay(kmcVO.getBirthDay()); certVO.setSexdstnCode(kmcVO.getGender()); - model.addAttribute("kmcVO", kmcVO); + + //디비 테이블에 저장하기 + mberManageService.insertCertInfoLog(certVO); + + + return "web/user/securityAuthnPage"; } diff --git a/src/main/resources/egovframework/sqlmap/let/cert/MjonCertIp_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/cert/MjonCertIp_SQL_mysql.xml index cb7b6da6..09b820a2 100644 --- a/src/main/resources/egovframework/sqlmap/let/cert/MjonCertIp_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/cert/MjonCertIp_SQL_mysql.xml @@ -86,4 +86,33 @@ + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/sqlmap/let/cert/MjonCertLoginLog_SQL_mysql.xml b/src/main/resources/egovframework/sqlmap/let/cert/MjonCertLoginLog_SQL_mysql.xml index 55517b16..afc29c29 100644 --- a/src/main/resources/egovframework/sqlmap/let/cert/MjonCertLoginLog_SQL_mysql.xml +++ b/src/main/resources/egovframework/sqlmap/let/cert/MjonCertLoginLog_SQL_mysql.xml @@ -8,6 +8,36 @@ + + + + + + +
@@ -579,8 +588,10 @@ function callTo() {

보안로그인

- 현재 접속중인 IP : 000.000.000.00 - + 현재 접속중인 IP : [허용 IP] + + +
@@ -726,62 +737,19 @@ function callTo() {
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +
2024-11-20 13:57:12119.193.215.98PC
2024-11-20 13:57:12119.193.215.98모바일
2024-11-20 13:57:12119.193.215.98PC
2024-11-20 13:57:12119.193.215.98모바일
2024-11-20 13:57:12119.193.215.98PC
2024-11-20 13:57:12119.193.215.98모바일
2024-11-20 13:57:12119.193.215.98PC
2024-11-20 13:57:12119.193.215.98모바일
2024-11-20 13:57:12119.193.215.98PC
2024-11-20 13:57:12119.193.215.98모바일
-
    + - +
pagination + --> + +
    + +
+
From 3dceedeabc414f774a2ddfa743a9d89de720001d Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Thu, 21 Nov 2024 20:29:12 +0900 Subject: [PATCH 35/63] =?UTF-8?q?=ED=97=88=EC=9A=A9IP=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../itn/let/cert/ip/web/CertIpController.java | 25 +++++++++++++++++++ .../WEB-INF/jsp/web/user/mberSecureLogin.jsp | 21 +++++++++++++++- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/main/java/itn/let/cert/ip/web/CertIpController.java b/src/main/java/itn/let/cert/ip/web/CertIpController.java index 8dfb6947..425106eb 100644 --- a/src/main/java/itn/let/cert/ip/web/CertIpController.java +++ b/src/main/java/itn/let/cert/ip/web/CertIpController.java @@ -3,6 +3,7 @@ package itn.let.cert.ip.web; import java.time.LocalDateTime; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.springframework.http.HttpStatus; @@ -17,6 +18,7 @@ import itn.com.utl.fcc.service.EgovStringUtil; import itn.let.cert.ip.service.CertIpService; import itn.let.cert.ip.service.MberCertIpVO; import itn.let.mail.service.StatusResponse; +import itn.let.utl.sim.service.EgovClntInfo; /** * @@ -79,6 +81,29 @@ public class CertIpController { return ResponseEntity.ok().body(certIpService.insertCertIp(mberCertIpVO)); } + + @RequestMapping(value = {"/cert/ip/insertCennetCertIp.do"}) + public ResponseEntity insertCennetCertIp(MberCertIpVO mberCertIpVO,HttpServletRequest request) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); + + if(userId == null) { + if(StringUtils.isEmpty(userId)) return ResponseEntity.ok().body(new StatusResponse(HttpStatus.BAD_REQUEST, "로그인 후 이용해 주세요", LocalDateTime.now())); + } + mberCertIpVO.setFrstRegisterId(userId); + mberCertIpVO.setMberId(userId); + + mberCertIpVO.setCertIp(EgovClntInfo.getClntIP(request)); + mberCertIpVO.setCertMemo("허용 IP 등록"); + + return ResponseEntity.ok().body(certIpService.insertCertIp(mberCertIpVO)); + } + @RequestMapping(value = {"/cert/ip/deleteCertIp.do"}) public ResponseEntity deleteCertIp(MberCertIpVO mberCertIpVO) throws Exception { diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp index 67b26981..3b58cfe0 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp @@ -13,7 +13,26 @@ $(document).ready(function(){ // 허용 IP 등록 $(".btn_allow_ip_add").click(function () { if (confirm("현재 접속중인 IP를 접속 허용 IP로 등록하시겠습니까?")) { - alert("접속 허용 IP 등록이 완료되었습니다."); + + $.ajax({ + type: "POST", + url: "/cert/ip/insertCennetCertIp.do", + data: null, + dataType:'json', + async: false, + success: function (returnData) { + if(returnData.status == 'OK'){ + alert("접속 허용 IP 등록이 완료되었습니다."); + location.reload(); + } + else + { + alert("오류가 발생하였습니다."); + } + }, + error: function (e) { alert("오류가 발생하였습니다."); console.log("ERROR : ", e); } + }); + } else {} }); From 2ef22663d8a9b189905d1a6da8cfdd739a0426a4 Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Thu, 21 Nov 2024 20:54:38 +0900 Subject: [PATCH 36/63] =?UTF-8?q?=EB=B3=B4=EC=95=88=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=ED=86=A0=EA=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../let/uat/uia/web/EgovMypageController.java | 4 +- .../WEB-INF/jsp/web/user/mberSecureLogin.jsp | 40 ++++++++++++++----- 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java index 5e707225..7733e9f8 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovMypageController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovMypageController.java @@ -2952,7 +2952,6 @@ public class EgovMypageController { String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId()); - mberCertLoginLogVO.setLoginId(userId); /** pageing */ PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(mberCertLoginLogVO.getPageIndex()); @@ -2967,7 +2966,8 @@ public class EgovMypageController { mberCertLoginLogVO.setSearchSortOrd("asc"); } - + + mberCertLoginLogVO.setLoginId(userId); //전체 발송 리스트 불러오기 List resultList = certLoginLogService.findAllCertLoginLogVO(mberCertLoginLogVO); model.addAttribute("resultList", resultList); diff --git a/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp index 3b58cfe0..f97d3832 100644 --- a/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/user/mberSecureLogin.jsp @@ -37,14 +37,37 @@ $(document).ready(function(){ }); // on/off 시 confirm 창 노출 - $('.security_set .tab_depth1 a').click(function () { - if ($(this).text().trim() == "ON") { - confirm("보안로그인 설정 후 로그인 시, 등록한 휴대폰번호로 추가 인증이 진행됩니다"); - - } else { - confirm("가입자 휴대폰번호로 본인인증 후 해제가 가능하며, 보안로그인 설정을 해제함으로써 발생하는 손해에 대하여 회사는 책임지지 않습니다."); - openKMCISWindow(); + $('.security_tab a').click(function (e) { + + + console.log($(this).hasClass("on")) + if ($(this).hasClass("on") == false) { + if ($(this).text().trim() == "ON") { + if (!confirm("보안로그인 설정 후 로그인 시, 등록한 휴대폰번호로 추가 인증이 진행됩니다")) { + $(this).removeClass("on"); + $(this).siblings("a").addClass("on"); + } else { + $(this).addClass("on"); + $(this).siblings("a").removeClass("on"); + } + } else { + if (!confirm("가입자 휴대폰번호로 본인인증 후 해제가 가능하며, 보안로그인 설정을 해제함으로써 발생하는 손해에 대하여 회사는 책임지지 않습니다.")) { + $(this).removeClass("on"); + $(this).siblings("a").addClass("on"); + } else { + $(this).addClass("on"); + $(this).siblings("a").removeClass("on"); + openKMCISWindow(); + } + } } + + + + + + + }); // 인증번호 발송 버튼 @@ -617,8 +640,7 @@ function linkPage(pageNo){

최근 변경일시 : 2024-11-01 12:49

-
- + From 7a38574459f5349bd058006ace4ee18780696196 Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Thu, 21 Nov 2024 20:57:16 +0900 Subject: [PATCH 37/63] =?UTF-8?q?=EB=B3=B4=EC=95=88=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20top?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp | 5 +++++ src/main/webapp/publish/mypage_index_2024.html | 1 + 2 files changed, 6 insertions(+) diff --git a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp index 7ec061a8..e7bab983 100644 --- a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp @@ -1645,6 +1645,11 @@ function actionLogin() {
+
+

보안로그인

+ ON + +