2025-12-05 11:31 2factor 인증 완료
This commit is contained in:
parent
19cfebd258
commit
987ca4eec5
@ -60,7 +60,7 @@ public class LoginVO implements Serializable{
|
||||
private String siteNm;
|
||||
|
||||
private String authority;
|
||||
|
||||
|
||||
/** 로그인 후 리턴 url */
|
||||
private String beforeUrl;
|
||||
/** 회원탈퇴 사유 */
|
||||
|
||||
@ -1,31 +1,20 @@
|
||||
package kcc.let.uat.uia.web;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.math.BigInteger;
|
||||
import java.net.URLEncoder;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Base64;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.spec.IvParameterSpec;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import javax.script.ScriptEngineManager;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletRequestWrapper;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import kcc.ve.cmm.crt.CertPhoneResultUtill;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.NameValuePair;
|
||||
import org.apache.http.client.ClientProtocolException;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.slf4j.Logger;
|
||||
@ -40,12 +29,10 @@ import org.springframework.security.web.savedrequest.HttpSessionRequestCache;
|
||||
import org.springframework.security.web.savedrequest.SavedRequest;
|
||||
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
@ -53,17 +40,12 @@ import org.springframework.web.context.support.WebApplicationContextUtils;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import egovframework.rte.fdl.cmmn.trace.LeaveaTrace;
|
||||
import egovframework.rte.fdl.property.EgovPropertyService;
|
||||
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
import kcc.com.cmm.EgovMessageSource;
|
||||
import kcc.com.cmm.LoginVO;
|
||||
import kcc.com.cmm.captcha.CaptchaUtil;
|
||||
import kcc.com.cmm.spring.data.util.ProfileUtil;
|
||||
import kcc.com.cmm.util.StringUtil;
|
||||
import kcc.com.cmm.util.WebUtil;
|
||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
@ -79,13 +61,14 @@ import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.let.uss.umt.service.EgovMberManageService;
|
||||
import kcc.let.uss.umt.service.EgovUserManageService;
|
||||
import kcc.let.uss.umt.service.MberManageConfigVO;
|
||||
import kcc.let.uss.umt.service.UserDefaultVO;
|
||||
import kcc.let.uss.umt.service.UserGuestVO;
|
||||
import kcc.let.uss.umt.service.UserManageVO;
|
||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||
import kcc.let.utl.sim.service.EgovClntInfo;
|
||||
import kcc.let.utl.sim.service.EgovNewPasswordUtil;
|
||||
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
|
||||
import kcc.ve.cmm.crt.CertPhoneResultUtill;
|
||||
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService;
|
||||
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrService;
|
||||
|
||||
/**
|
||||
@ -159,6 +142,14 @@ public class EgovLoginController {
|
||||
@Resource(name = "egovCryptoUtil")
|
||||
EgovCryptoUtil egovCryptoUtil;
|
||||
|
||||
//온라인콘텐츠과정 관리
|
||||
@Resource(name = "sspnIdtmtService")
|
||||
private SspnIdtmtService sspnIdtmtService;
|
||||
|
||||
//강사 정보 MIX
|
||||
@Resource(name="vEInstrMixService")
|
||||
private VEInstrMixService vEInstrMixService;
|
||||
|
||||
/** 구동 환경 */
|
||||
@Value("#{property['Globals.prod.islocal']}")
|
||||
private String environment;
|
||||
@ -432,6 +423,178 @@ public class EgovLoginController {
|
||||
return "redirect:/web/main/mainPage.do";
|
||||
}
|
||||
|
||||
/**
|
||||
* (사용자) 아이디 중복 확인
|
||||
*
|
||||
* @return model
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "/uat/uia/actionSecurityLoginAjax.do")
|
||||
public ModelAndView selectActionSecurityLoginAjax(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletResponse response, HttpServletRequest request, ModelMap model, HttpSession session) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
//로그인 사전 체크
|
||||
String s_result = _checkLoginPart1(loginVO, loginService);
|
||||
|
||||
if (s_result.indexOf("fail")>-1) {
|
||||
modelAndView.addObject("result", s_result);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
|
||||
//step3.로그인 처리
|
||||
LoginVO resultVO = loginService.actionLogin(loginVO);
|
||||
|
||||
|
||||
//로그인 사후 체크
|
||||
s_result = _checkLoginPart2(loginVO, loginService, resultVO);
|
||||
|
||||
if (s_result.indexOf("fail")>-1) {
|
||||
modelAndView.addObject("result", s_result);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
// Step1.로그인 정보 check - 아이디, 비번 입력 확인
|
||||
if (loginVO.getId() == null || loginVO.getPassword() == null) { // 로그인 최초 화면 로딩
|
||||
modelAndView.addObject("result", "fail0");
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//step2.아이디가 DB에 없거나, 권한이 관리자가 아닌 경우 체크
|
||||
// 사용자일 경우 로그인 안되게
|
||||
if (null == loginService.getUserAuth(loginVO)) { // 아이디 없음.
|
||||
modelAndView.addObject("result", "fail1");
|
||||
return modelAndView;
|
||||
|
||||
} else {
|
||||
String s_authority = loginService.getUserAuth(loginVO).getAuthority();
|
||||
if ("ROLE_USER_MEMBER".equals(s_authority)) { // 일반사용자 로그인
|
||||
modelAndView.addObject("result", "fail2");
|
||||
return modelAndView;
|
||||
|
||||
} else if ("ROLE_USER_MANAGER".equals(s_authority)) {
|
||||
modelAndView.addObject("result", "fail3");
|
||||
return modelAndView;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//step3.로그인 처리
|
||||
LoginVO resultVO = loginService.actionLogin(loginVO);
|
||||
//System.out.println("UserWork :: "+resultVO.getUserWork());
|
||||
|
||||
if (loginService.getUserAuth(resultVO) != null) {
|
||||
resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority());
|
||||
}
|
||||
|
||||
if (null == resultVO.getId()) { // 로그인 실패
|
||||
modelAndView.addObject("result", "fail4");
|
||||
return modelAndView;
|
||||
|
||||
} else {
|
||||
if (resultVO.getPassMiss() > 5) { //비밀번호 실패 5회 이상
|
||||
modelAndView.addObject("result", "fail5");
|
||||
return modelAndView;
|
||||
|
||||
} else { // 초기화
|
||||
loginService.updatePassMissReset(loginVO);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
//step4.2FACTOR인가?
|
||||
//2FACTOR 설정된 경우는 인증번호를 발송한다.
|
||||
if ("Y".equals(resultVO.getOrgnztId())) {
|
||||
sspnIdtmtService.sendCertSMS(resultVO.getMembCelnum(), resultVO.getUniqId());
|
||||
}
|
||||
|
||||
modelAndView.addObject("result", "success");
|
||||
modelAndView.addObject("factor", resultVO.getOrgnztId());
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* (관리자) 로그인을 위한 2FACTOR 인증 체크
|
||||
*
|
||||
* @return model
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping(value = "/uat/uia/actionSecurityLoginAjaxNum.do")
|
||||
public ModelAndView selectActionSecurityLoginAjaxNum(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletResponse response, HttpServletRequest request, ModelMap model, HttpSession session) throws Exception {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
//로그인 사전 체크
|
||||
String s_result = _checkLoginPart1(loginVO, loginService);
|
||||
|
||||
if (s_result.indexOf("fail")>-1) {
|
||||
modelAndView.addObject("result", s_result);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
|
||||
//step3.로그인 처리
|
||||
LoginVO resultVO = loginService.actionLogin(loginVO);
|
||||
|
||||
|
||||
//로그인 사후 체크
|
||||
s_result = _checkLoginPart2(loginVO, loginService, resultVO);
|
||||
|
||||
if (s_result.indexOf("fail")>-1) {
|
||||
modelAndView.addObject("result", s_result);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
//step4.인증번호 검증
|
||||
|
||||
//로그인 정보 가져오기
|
||||
//LoginVO loginVO = new checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
|
||||
VEInstrDetailVO vEInstrDetailVO = new VEInstrDetailVO();
|
||||
vEInstrDetailVO.setUserId(resultVO.getUniqId());
|
||||
vEInstrDetailVO.setCrtfdNumber(loginVO.getMembCelnum());
|
||||
|
||||
//crtfdNumber
|
||||
|
||||
String resultMsg = "success";
|
||||
vEInstrDetailVO = vEInstrMixService.selectInstrEmailCrtfdNumber(vEInstrDetailVO);
|
||||
|
||||
|
||||
|
||||
if(vEInstrDetailVO == null) {
|
||||
resultMsg = "fail";
|
||||
}
|
||||
|
||||
modelAndView.addObject("result", resultMsg);
|
||||
|
||||
/*
|
||||
//step4.2FACTOR인가?
|
||||
System.out.println("resultVO");
|
||||
System.out.println(resultVO);
|
||||
System.out.println(resultVO.getOrgnztId());
|
||||
|
||||
//2FACTOR 설정된 경우는 인증번호를 발송한다.
|
||||
if ("Y".equals(resultVO.getOrgnztId())) {
|
||||
sspnIdtmtService.sendCertSMS(resultVO.getMembCelnum(), resultVO.getUniqId());
|
||||
}
|
||||
*/
|
||||
|
||||
//modelAndView.addObject("result", "fail");
|
||||
//modelAndView.addObject("factor", resultVO.getOrgnztId());
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* (관리자) 일반(스프링 시큐리티) 로그인을 처리한다(관리자)
|
||||
*
|
||||
@ -1500,6 +1663,77 @@ public class EgovLoginController {
|
||||
return "redirect:/";
|
||||
}
|
||||
|
||||
|
||||
//@SuppressWarnings("unused")
|
||||
private String _checkLoginPart1(
|
||||
LoginVO p_loginVO
|
||||
, EgovLoginService p_loginService) throws Exception {
|
||||
// Step1.로그인 정보 check - 아이디, 비번 입력 확인
|
||||
if (p_loginVO.getId() == null || p_loginVO.getPassword() == null) { // 로그인 최초 화면 로딩
|
||||
//p_modelAndView.addObject("result", "fail0");
|
||||
return "fail0";
|
||||
|
||||
}
|
||||
|
||||
//step2.아이디가 DB에 없거나, 권한이 관리자가 아닌 경우 체크
|
||||
// 사용자일 경우 로그인 안되게
|
||||
if (null == p_loginService.getUserAuth(p_loginVO)) { // 아이디 없음.
|
||||
//p_modelAndView.addObject("result", "fail1");
|
||||
return "fail1";
|
||||
//return p_modelAndView;
|
||||
|
||||
} else {
|
||||
String s_authority = p_loginService.getUserAuth(p_loginVO).getAuthority();
|
||||
if ("ROLE_USER_MEMBER".equals(s_authority)) { // 일반사용자 로그인
|
||||
//p_modelAndView.addObject("result", "fail2");
|
||||
return "fail2";
|
||||
//return p_modelAndView;
|
||||
|
||||
} else if ("ROLE_USER_MANAGER".equals(s_authority)) {
|
||||
//p_modelAndView.addObject("result", "fail3");
|
||||
return "fail3";
|
||||
//return p_modelAndView;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//return p_modelAndView;
|
||||
return "success";
|
||||
}
|
||||
|
||||
private String _checkLoginPart2(
|
||||
LoginVO p_loginVO
|
||||
, EgovLoginService p_loginService
|
||||
, LoginVO p_resultVO
|
||||
) throws Exception {
|
||||
|
||||
//step3.로그인 처리
|
||||
//LoginVO resultVO = p_loginService.actionLogin(p_loginVO);
|
||||
//System.out.println("UserWork :: "+resultVO.getUserWork());
|
||||
|
||||
if (p_loginService.getUserAuth(p_resultVO) != null) {
|
||||
p_resultVO.setAuthority(p_loginService.getUserAuth(p_resultVO).getAuthority());
|
||||
}
|
||||
|
||||
if (null == p_resultVO.getId()) { // 로그인 실패
|
||||
//p_modelAndView.addObject("result", "fail4");
|
||||
return "fail4";
|
||||
//return p_modelAndView;
|
||||
|
||||
} else {
|
||||
if (p_resultVO.getPassMiss() > 5) { //비밀번호 실패 5회 이상
|
||||
//p_modelAndView.addObject("result", "fail5");
|
||||
return "fail5";
|
||||
//return p_modelAndView;
|
||||
|
||||
} else { // 초기화
|
||||
p_loginService.updatePassMissReset(p_loginVO);
|
||||
}
|
||||
}
|
||||
|
||||
//return p_modelAndView;
|
||||
return "success";
|
||||
}
|
||||
}
|
||||
|
||||
class RequestWrapperForSecurity extends HttpServletRequestWrapper {
|
||||
@ -1533,5 +1767,5 @@ class RequestWrapperForSecurity extends HttpServletRequestWrapper {
|
||||
}
|
||||
|
||||
return super.getParameter(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -556,6 +556,13 @@ public class EgovUserManageController {
|
||||
*/
|
||||
|
||||
userManageVO = egovCryptoUtil.encryptUserManageVO(userManageVO);
|
||||
|
||||
if ("on".equals(userManageVO.getAreaNo())) {
|
||||
userManageVO.setAreaNo("Y");
|
||||
}else {
|
||||
userManageVO.setAreaNo("N");
|
||||
}
|
||||
|
||||
userManageService.insertUser(userManageVO);
|
||||
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
|
||||
}catch(Exception e){
|
||||
@ -1050,6 +1057,17 @@ public class EgovUserManageController {
|
||||
userManageService.insertUserHistory(userManageVO);
|
||||
|
||||
userManageVO = egovCryptoUtil.encryptUserManageVO(userManageVO);
|
||||
|
||||
System.out.println("userManageVO.getAreaNo()");
|
||||
System.out.println(userManageVO.getAreaNo());
|
||||
System.out.println(userManageVO.getAreaNo());
|
||||
|
||||
if ("on".equals(userManageVO.getAreaNo())) {
|
||||
userManageVO.setAreaNo("Y");
|
||||
}else {
|
||||
userManageVO.setAreaNo("N");
|
||||
}
|
||||
|
||||
userManageService.updateUser(userManageVO);
|
||||
//권한업데이트 - null 이 아닌 경우에만 update
|
||||
//System.out.println("System.out.println(authorGroup.getAuthorCode());");
|
||||
|
||||
@ -21,6 +21,7 @@ public interface SspnIdtmtService {
|
||||
//교육대상자 확인 - new
|
||||
ModelAndView checkSspnIdtmt(CndtnTrgtMngVO cndtnTrgtInfoMngVO);
|
||||
|
||||
|
||||
//교육대상자 확인 - new
|
||||
ModelAndView sendCertSMS(String p_Clphone, String p_uniqId);
|
||||
|
||||
}
|
||||
|
||||
@ -282,14 +282,24 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
}
|
||||
|
||||
//핸드폰으로 인증번호 발송 chkYn-본인인증 여부 Y-본인인증 완료된 경우
|
||||
if ("Y".equals(smsYn) && !"Y".equals(cndtnTrgtInfoMngVO.getChkYn())) {
|
||||
if ("Y".equals(smsYn) && !"Y".equals(cndtnTrgtInfoMngVO.getChkYn())) {
|
||||
//데이터 암호화
|
||||
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO); //핸드폰번호 복호화
|
||||
|
||||
//인증번호 생성
|
||||
String code = RandomStringUtils.randomNumeric(6);
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
|
||||
|
||||
//발송 및 log 남기기 - result code 값
|
||||
_sendSMSNLog(code, "교육 대상자 인증", "안녕하세요. 한국지식재산보호원입니다.\n인증번호는 " + code + " 입니다.", cndtnTrgtInfoMngVO.getClphone(), loginVO.getUniqId());
|
||||
|
||||
/*
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
VeSendSMS sendSMS = new VeSendSMS();
|
||||
cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(cndtnTrgtInfoMngVO); //핸드폰번호 복호화
|
||||
vEEduAplctVO.setEduAplctOrd("기소유예 대상자 인증");
|
||||
vEEduAplctVO.setSndCn("안녕하세요. 저작권배움터 기소유예 담당자입니다.\n인증번호는 " + code + " 입니다.");
|
||||
vEEduAplctVO.setEduAplctOrd("교육 대상자 인증");
|
||||
vEEduAplctVO.setSndCn("안녕하세요. 한국지식재산보호원입니다.\n인증번호는 " + code + " 입니다.");
|
||||
vEEduAplctVO.setClphone(cndtnTrgtInfoMngVO.getClphone());
|
||||
vEEduAplctVO.setSndFlag("B");
|
||||
Map<String, Object> resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag());
|
||||
@ -315,6 +325,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
vEInstrMixService.insertInstrEmailCrtfd(vEInstrDetailVO);
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
//인증번호 임시노출 실서버 운영 시 삭제_이준호_251030
|
||||
modelAndView.addObject("crtfdNumber", code);
|
||||
@ -353,4 +364,92 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModelAndView sendCertSMS(String p_Clphone, String p_uniqId) {
|
||||
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
|
||||
String result="";
|
||||
String msg="";
|
||||
String id="";
|
||||
|
||||
try {
|
||||
result="";
|
||||
|
||||
//인증번호 생성
|
||||
String code = RandomStringUtils.randomNumeric(6);
|
||||
|
||||
//발송 및 log 남기기 - result code 값
|
||||
_sendSMSNLog(code, "교육 대상자 인증", "안녕하세요. 한국지식재산보호원입니다.\n인증번호는 " + code + " 입니다.", p_Clphone, p_uniqId);
|
||||
|
||||
} catch (Exception e) {
|
||||
result="fail";
|
||||
msg = "오류가 발생하였습니다 관리자에게 문의하세요. ";
|
||||
|
||||
e.printStackTrace();
|
||||
// TODO: handle exception
|
||||
}
|
||||
|
||||
modelAndView.addObject("msg", msg);
|
||||
modelAndView.addObject("id", id);
|
||||
modelAndView.addObject("result", result);
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// PRIVATE
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
private String _sendSMSNLog(String p_code, String p_title, String p_cn, String p_clphone, String p_uniqId) throws Exception{
|
||||
//인증번호 생성
|
||||
//String code = RandomStringUtils.randomNumeric(6);
|
||||
VEEduAplctVO vEEduAplctVO = new VEEduAplctVO();
|
||||
VeSendSMS sendSMS = new VeSendSMS();
|
||||
//p_cndtnTrgtInfoMngVO = egovCryptoUtil.decryptCndtnTrgtMngVOInfo(p_cndtnTrgtInfoMngVO); //핸드폰번호 복호화
|
||||
/*
|
||||
vEEduAplctVO.setEduAplctOrd("교육 대상자 인증");
|
||||
vEEduAplctVO.setSndCn("안녕하세요. 한국지식재산보호원입니다.\n인증번호는 " + code + " 입니다.");
|
||||
vEEduAplctVO.setClphone(p_cndtnTrgtInfoMngVO.getClphone());
|
||||
*/
|
||||
|
||||
vEEduAplctVO.setEduAplctOrd(p_title);
|
||||
vEEduAplctVO.setSndCn(p_cn);
|
||||
vEEduAplctVO.setClphone(p_clphone);
|
||||
|
||||
vEEduAplctVO.setSndFlag("B");
|
||||
Map<String, Object> resultMap = sendSMS.VeSendSMS(vEEduAplctVO.getClphone(), vEEduAplctVO.getSndCn(), vEEduAplctVO.getSndFlag());
|
||||
|
||||
//문자 발송 성공 시
|
||||
if("1".equals(resultMap.get("result_code"))){
|
||||
//발송 로그
|
||||
//LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
|
||||
String snd_ord = sndGnrService.getNextStringId();
|
||||
vEEduAplctVO.setSndHstryOrd(snd_ord);
|
||||
vEEduAplctVO.setSndId(p_uniqId);
|
||||
vEEduAplctVO.setTrgt(vEEduAplctVO.getClphone());
|
||||
vEEduAplctVO.setSndCd("10");
|
||||
vEEduAplctVO.setTrgtId(p_uniqId);
|
||||
vEEduAplctSndHstryService.insert(vEEduAplctVO);
|
||||
|
||||
|
||||
//인증번호 row 생성 (기존 강사인증 테이블 사용)
|
||||
VEInstrDetailVO vEInstrDetailVO = new VEInstrDetailVO();
|
||||
vEInstrDetailVO.setEmail(vEEduAplctVO.getClphone());
|
||||
vEInstrDetailVO.setCrtfdNumber(p_code);
|
||||
vEInstrDetailVO.setUserId(p_uniqId);
|
||||
vEInstrMixService.deleteInstrEmailCrtfd(vEInstrDetailVO);
|
||||
vEInstrMixService.insertInstrEmailCrtfd(vEInstrDetailVO);
|
||||
|
||||
}
|
||||
|
||||
//인증번호 임시노출 실서버 운영 시 삭제_이준호_251030
|
||||
//modelAndView.addObject("crtfdNumber", code);
|
||||
|
||||
return p_code;
|
||||
}
|
||||
}
|
||||
|
||||
@ -60,7 +60,10 @@
|
||||
, IHIDNUM AS ihidNum
|
||||
, EMAIL_ADRES AS email
|
||||
, 'USR' AS userSe
|
||||
/*
|
||||
, ORGNZT_ID AS orgnztId
|
||||
*/
|
||||
, AREA_NO AS orgnztId
|
||||
, ESNTL_ID AS uniqId
|
||||
, PASS_MISS AS passMiss
|
||||
, EMPLYR_STTUS_CODE AS emplyrSttusCode
|
||||
@ -80,7 +83,7 @@
|
||||
|
||||
<!-- 비밀번호비교를 위한 데이터 가져오기 용 -->
|
||||
<select id="loginDAO.actionLoginNew" resultMap="login">
|
||||
/*loginDAO.actionLogin*/
|
||||
/*loginDAO.loginDAO.actionLoginNew*/
|
||||
<!-- 일반회원 -->
|
||||
<isNotNull property="userSe">
|
||||
<isEqual property="userSe" compareValue="GNR">
|
||||
@ -90,6 +93,7 @@
|
||||
, ihidNum AS ihidNum
|
||||
, mber_email_adres AS email
|
||||
, 'GNR' AS userSe
|
||||
, OFFM_TELNO AS membCelnum
|
||||
, '-' AS orgnztId
|
||||
, ESNTL_ID AS uniqId
|
||||
, 0 AS passMiss
|
||||
@ -109,7 +113,11 @@
|
||||
, IHIDNUM AS ihidNum
|
||||
, EMAIL_ADRES AS email
|
||||
, 'USR' AS userSe
|
||||
/*
|
||||
, ORGNZT_ID AS orgnztId
|
||||
*/
|
||||
, OFFM_TELNO AS membCelnum
|
||||
, AREA_NO AS orgnztId
|
||||
, ESNTL_ID AS uniqId
|
||||
, PASS_MISS AS passMiss
|
||||
, EMPLYR_STTUS_CODE AS emplyrSttusCode
|
||||
@ -177,7 +185,7 @@
|
||||
<!-- e배움터 연동 후 mber_seq가 아닌 mber_id로 로그인 -->
|
||||
<select id="loginDAO.actionLoginMberId" resultMap="login">
|
||||
/*loginDAO.actionLoginMberId*/
|
||||
<!-- 일반회원 loginDAO.actionLoginDev -->
|
||||
<!-- 일반회원 loginDAO.loginDAO.actionLoginMberId -->
|
||||
<isNotNull property="userSe">
|
||||
<isEqual property="userSe" compareValue="GNR">
|
||||
SELECT mber_id AS id
|
||||
@ -428,11 +436,15 @@
|
||||
|
||||
<!-- 사용자 권한 조회 -->
|
||||
<select id="loginDAO.getUserAuth" parameterClass="loginVO" resultClass="loginVO" >
|
||||
/* loginDAO.getUserAuth */
|
||||
<![CDATA[
|
||||
SELECT A.SCRTY_DTRMN_TRGET_ID id, A.AUTHOR_CODE AUTHORITY
|
||||
FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
|
||||
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID
|
||||
AND B.USER_ID = #id#
|
||||
, c.area_no orgnztId
|
||||
FROM LETTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
|
||||
LEFT OUTER JOIN LETTNEMPLYRINFO C
|
||||
ON (1=1 and b.esntl_id = c.esntl_id)
|
||||
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID
|
||||
AND B.USER_ID = #id#
|
||||
]]>
|
||||
</select>
|
||||
|
||||
|
||||
@ -466,6 +466,15 @@ function wrapWindowByMask(){
|
||||
<form:errors path="emailAdres" cssClass="error" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>추가인증</th>
|
||||
<td colspan="3">
|
||||
<input type="checkbox" id="areaNo" name="areaNo">
|
||||
<label for="areaNo">핸드폰인증</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@ -76,6 +76,10 @@ $( document ).ready(function(){
|
||||
}
|
||||
|
||||
_chgAuthorSelect("${userManageVO.authorCode}");
|
||||
|
||||
//핸드폰인증
|
||||
if ("${userManageVO.areaNo}" == "Y") $("input[name='areaNo']").prop("checked", true);
|
||||
|
||||
/*
|
||||
if("${userManageVO.authorCode}" == "ROLE_ADR_JRSDC"){
|
||||
$('#userWork_case1').hide();
|
||||
@ -508,6 +512,14 @@ function _chgAuthorSelect(p_obj_selectedIndex){
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>추가인증</th>
|
||||
<td colspan="3">
|
||||
<input type="checkbox" id="areaNo" name="areaNo">
|
||||
<label for="areaNo">핸드폰인증</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<%-- <c:if test="${empty isAdmin and empty isMember}">
|
||||
<tr>
|
||||
<th>비밀번호확인</th>
|
||||
|
||||
@ -76,6 +76,10 @@ $( document ).ready(function(){
|
||||
}
|
||||
|
||||
_chgAuthorSelect("${userManageVO.authorCode}");
|
||||
|
||||
//핸드폰인증
|
||||
if ("${userManageVO.areaNo}" == "Y") $("input[name='areaNo']").prop("checked", true);
|
||||
|
||||
/*
|
||||
if("${userManageVO.authorCode}" == "ROLE_ADR_JRSDC"){
|
||||
$('#userWork_case1').hide();
|
||||
@ -512,6 +516,14 @@ function _chgAuthorSelect(p_obj_selectedIndex){
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>추가인증</th>
|
||||
<td colspan="3">
|
||||
<input type="checkbox" id="areaNo" name="areaNo">
|
||||
<label for="areaNo">핸드폰인증</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<%-- <c:if test="${empty isAdmin and empty isMember}">
|
||||
<tr>
|
||||
<th>비밀번호확인</th>
|
||||
|
||||
@ -170,7 +170,7 @@
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
//enctype: 'multipart/form-data',
|
||||
url: "${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctApptAjax.do",
|
||||
url: "${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctApptAjax.do",
|
||||
data: {
|
||||
"userId" : $("#userId").val() ,
|
||||
"instrDiv" : $("#instrDiv").val() ,
|
||||
@ -207,7 +207,7 @@
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
enctype: 'multipart/form-data',
|
||||
url: "/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMdfyAjax.do",
|
||||
url: "/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMdfyAjax.do",
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
@ -234,7 +234,7 @@
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
enctype: 'multipart/form-data',
|
||||
url: "${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailDeleteAjax.do",
|
||||
url: "${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailDeleteAjax.do",
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
@ -257,7 +257,7 @@
|
||||
function fncGoList(){
|
||||
var detailForm = document.detailForm;
|
||||
detailForm.userId.value="";
|
||||
detailForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngList.do'/>";
|
||||
detailForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngList.do'/>";
|
||||
detailForm.submit();
|
||||
}
|
||||
|
||||
@ -266,11 +266,11 @@
|
||||
$("#aprvlCd").val(rpplTy);
|
||||
$("#rqstType").val(rqstType);
|
||||
var pop = document.detailForm;
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctCmpnnPopup.do", "750", "660", "instrMdfyRqstPop", $('#detailForm'));
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctCmpnnPopup.do", "750", "660", "instrMdfyRqstPop", $('#detailForm'));
|
||||
}
|
||||
|
||||
function fncAreaList(paramObj) {
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/ve/oprtn/instr/tngrVisitEdu/popup/instrInfo/rsdncPopList.do", "750", "660", "securityPop", $('#detailForm'));
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/kccve/oprtn/instr/tngrVisitEdu/popup/instrInfo/rsdncPopList.do", "750", "660", "securityPop", $('#detailForm'));
|
||||
}
|
||||
|
||||
//위촉년도 최근년도 뿌려주기
|
||||
@ -343,7 +343,7 @@
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
enctype: 'multipart/form-data',
|
||||
url: "${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailUpdateAjax.do",
|
||||
url: "${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetailUpdateAjax.do",
|
||||
data: data,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
|
||||
@ -43,7 +43,7 @@
|
||||
return;
|
||||
}
|
||||
*/
|
||||
listForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngList.do'/>";
|
||||
listForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
@ -52,21 +52,21 @@
|
||||
listForm.userId.value = userId ;
|
||||
listForm.instrDiv.value = instrDiv ;
|
||||
listForm.instrDetailOrd.value = instrDetailOrd ;
|
||||
listForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetail.do'/>";
|
||||
listForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctMngDetail.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function fncGoReg(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.instrDiv.value = "10" ;
|
||||
listForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctReg.do'/>";
|
||||
listForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctReg.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function fncGoRegExcel(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.instrDiv.value = "10" ;
|
||||
listForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctRegExcel.do'/>";
|
||||
listForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrAplctRegExcel.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
|
||||
@ -177,14 +177,14 @@ function getYears(getYear){
|
||||
if(confirm("강사"+ment+" 처리하시겠습니까?")){
|
||||
var detailForm = document.detailForm;
|
||||
detailForm.qlfctEndYn.value = qlfctEndYn;
|
||||
detailForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrqlfctEndYnMdfy.do'/>";
|
||||
detailForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrqlfctEndYnMdfy.do'/>";
|
||||
detailForm.submit();
|
||||
}
|
||||
}
|
||||
|
||||
function fncGoList(){
|
||||
var detailForm = document.detailForm;
|
||||
detailForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do'/>";
|
||||
detailForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do'/>";
|
||||
detailForm.submit();
|
||||
}
|
||||
|
||||
@ -192,17 +192,17 @@ function getYears(getYear){
|
||||
//수정요청 팝업
|
||||
function fncRqstPopup() {
|
||||
var pop = document.detailForm;
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do", "1300", "700", "instrMdfyRqstPopup", $('#detailForm'));
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do", "1300", "700", "instrMdfyRqstPopup", $('#detailForm'));
|
||||
}
|
||||
|
||||
//강의설정 승인팝업
|
||||
function fncLctrAprvlPopup() {
|
||||
var pop = document.detailForm;
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrStngConfirmPopup.do", "900", "700", "instrMdfyRqstPopup", $('#detailForm'));
|
||||
commonPopWindowopenForm("${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrStngConfirmPopup.do", "900", "700", "instrMdfyRqstPopup", $('#detailForm'));
|
||||
}
|
||||
|
||||
function changeYear(year) {
|
||||
$("#importDiv").load("<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrStngPopup.do'/>");
|
||||
$("#importDiv").load("<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrStngPopup.do'/>");
|
||||
}
|
||||
|
||||
function fncLctrSave(){
|
||||
@ -219,7 +219,7 @@ function getYears(getYear){
|
||||
if(confirm("강의설정을 수정하시겠습니까?")){
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/lctrStngMdfyAjax.do",
|
||||
url: "${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/lctrStngMdfyAjax.do",
|
||||
data: data1,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
@ -276,7 +276,7 @@ function getYears(getYear){
|
||||
if(confirm("강사정보를 수정하시겠습니까?")){
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyAjax.do",
|
||||
url: "${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyAjax.do",
|
||||
data: data1,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
@ -327,7 +327,7 @@ function getYears(getYear){
|
||||
if(confirm("해당 이력을 삭제하시겠습니까?)")){
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url: "${pageContext.request.contextPath}/ve/oprtn/instr/tngrVisitEdu/instrInfo/popup/instrHstryDelAjax.do",
|
||||
url: "${pageContext.request.contextPath}/kccve/oprtn/instr/tngrVisitEdu/instrInfo/popup/instrHstryDelAjax.do",
|
||||
data: data1,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
@ -386,7 +386,7 @@ function getYears(getYear){
|
||||
if(confirm("이수증 강사 정보를 수정하시겠습니까?")){
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "${pageContext.request.contextPath}/ve/oprtn/instr/adultVisitEdu/instrInfo/instrCmpltMdfyAjax.do",
|
||||
url: "${pageContext.request.contextPath}/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrCmpltMdfyAjax.do",
|
||||
data: data1,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
@ -1074,7 +1074,7 @@ function getYears(getYear){
|
||||
|
||||
|
||||
<!-- <div id="importDiv"> -->
|
||||
<%-- <c:import url="/ve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrStngPopup.do" charEncoding="utf-8"></c:import> --%>
|
||||
<%-- <c:import url="/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrLctrStngPopup.do" charEncoding="utf-8"></c:import> --%>
|
||||
<!-- </div> -->
|
||||
<%-- <div class="tb_tit01">
|
||||
<p>월별 교육시간 배정 정보</p>
|
||||
|
||||
@ -55,7 +55,7 @@
|
||||
listForm.rsdne.value = $('#searchEduSlctAreaCd option:selected').text();
|
||||
}
|
||||
*/
|
||||
listForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do'/>";
|
||||
listForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@
|
||||
listForm.instrDiv.value = instrDiv ;
|
||||
listForm.instrDetailOrd.value = instrDetailOrd ;
|
||||
listForm.rqstCnt.value = rqstCnt ;
|
||||
listForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngDetail.do'/>";
|
||||
listForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrMngDetail.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
@ -74,12 +74,12 @@
|
||||
var popupForm = document.popupForm;
|
||||
popupForm.userId.value = userId
|
||||
popupForm.instrDiv.value = instrDiv
|
||||
popupForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do'/>";
|
||||
popupForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do'/>";
|
||||
window.open("#", "_instrMdfyRqstPopup", "scrollbars = no, top=100px, left=100px, height=750px, width=1300px");
|
||||
popupForm.target = "_instrMdfyRqstPopup";
|
||||
popupForm.submit();
|
||||
|
||||
// commonPopWindowopenForm("/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do", "900", "700", "instrMdfyRqstPopup", $('#listForm'));
|
||||
// commonPopWindowopenForm("/kccve/oprtn/instr/adultVisitEdu/instrInfo/instrMdfyRqstPopup.do", "900", "700", "instrMdfyRqstPopup", $('#listForm'));
|
||||
event.stopImmediatePropagation();
|
||||
}
|
||||
function fncReset(thisObj){
|
||||
@ -116,7 +116,7 @@
|
||||
return false;
|
||||
}
|
||||
listForm.userIdList.value=userIdList;
|
||||
listForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/eduAplctExcelDownLoad.do'/>";
|
||||
listForm.action = "<c:url value='/kccve/oprtn/instr/adultVisitEdu/instrInfo/eduAplctExcelDownLoad.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
@ -369,19 +369,19 @@
|
||||
viewer.hideToolbarItem(["save"]);
|
||||
viewer.showToolbarItem(["print_pdf"]);
|
||||
|
||||
viewer.openFile('adult_instrs_20231107.mrd', '/rf [http://119.193.215.98:9989/ipedu/ve/aplct/adultVisitEdu/eduAplct/instrDetailListAjax_v2.do?userIdList='+userIdList+']'); */
|
||||
viewer.openFile('adult_instrs_20231107.mrd', '/rf [http://119.193.215.98:9989/ipedu/kccve/aplct/adultVisitEdu/eduAplct/instrDetailListAjax_v2.do?userIdList='+userIdList+']'); */
|
||||
|
||||
//운영 or 개발 서버 구분
|
||||
if(isLocal == 'real'){ //운영
|
||||
var viewer = new m2soft.crownix.Viewer('https://www.edu-copyright.or.kr/ipedu/ReportingServer/service');
|
||||
viewer.hideToolbarItem(["save"]);
|
||||
viewer.showToolbarItem(["print_pdf"]);
|
||||
viewer.openFile('adult_instrs_20231107.mrd', '/rf [https://www.edu-copyright.or.kr/ipedu/ve/aplct/adultVisitEdu/eduAplct/instrDetailListAjax_v2.do?userIdList='+userIdList+']');
|
||||
viewer.openFile('adult_instrs_20231107.mrd', '/rf [https://www.edu-copyright.or.kr/ipedu/kccve/aplct/adultVisitEdu/eduAplct/instrDetailListAjax_v2.do?userIdList='+userIdList+']');
|
||||
}else{ //개발
|
||||
var viewer = new m2soft.crownix.Viewer('http://119.193.215.98:8093/ReportingServer/service');
|
||||
viewer.hideToolbarItem(["save"]);
|
||||
viewer.showToolbarItem(["print_pdf"]);
|
||||
viewer.openFile('adult_instrs_20231107.mrd', '/rf [http://119.193.215.98:9989/ipedu/ve/aplct/adultVisitEdu/eduAplct/instrDetailListAjax_v2.do?userIdList='+userIdList+']');
|
||||
viewer.openFile('adult_instrs_20231107.mrd', '/rf [http://119.193.215.98:9989/ipedu/kccve/aplct/adultVisitEdu/eduAplct/instrDetailListAjax_v2.do?userIdList='+userIdList+']');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@ -667,7 +667,6 @@
|
||||
<p style="margin:0 4px 0 0;">성별</p> <ve:radio codeId="COM014" name="searchSex" id="searchSex" defaultValue="" defaultText="전체" selectedValue="${cndtnTrgtInfoMngVO.searchSex }" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="list_top_2">
|
||||
@ -679,8 +678,7 @@
|
||||
<ve:select codeId="VEA008" name="userWork" id="userWork" styleClass="sel_type1" selectedValue="${cndtnTrgtInfoMngVO.userWork}" defaultValue="" defaultText="선택없음"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="list_top_2">
|
||||
<div class="util_left">
|
||||
|
||||
@ -90,6 +90,128 @@ function actionLogin() {
|
||||
}
|
||||
}
|
||||
|
||||
function actionLoginAjax(){
|
||||
|
||||
if (document.loginForm.id_text.value =="") {
|
||||
alert("아이디를 입력하세요");
|
||||
return false;
|
||||
} else if (document.loginForm.password_text.value =="") {
|
||||
alert("비밀번호를 입력하세요");
|
||||
return false;
|
||||
} else {
|
||||
var id = $("#id_text").val();
|
||||
var pw = $("#password_text").val();
|
||||
|
||||
$("#id").val(id);
|
||||
$("#password").val(pw);
|
||||
|
||||
var data1 = new FormData(document.getElementById("loginForm"));
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"${pageContext.request.contextPath}/uat/uia/actionSecurityLoginAjax.do",
|
||||
data:data1,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
////alert("2FACTOR 인증 시작");
|
||||
//alert(returnData.factor);
|
||||
|
||||
if(returnData.factor == "Y"){ //2FACTOR 인증 시작
|
||||
alert("2FACTOR 인증 시작-핸드폰으로 인증번호가 발송되었습니다.");
|
||||
|
||||
$("#submit_box_1").hide();
|
||||
|
||||
$("#id_box_2").show();
|
||||
$("#submit_box_2").show();
|
||||
|
||||
|
||||
}else{ //2FACTOR 없음 로그인후 페이지로
|
||||
actionLogin(); //2FACTOR 인증 시작
|
||||
}
|
||||
|
||||
|
||||
//alert("저장 되었습니다.");
|
||||
//fncGoList();
|
||||
}else{
|
||||
alert("로그인 정보가 올바르지 않습니다.");
|
||||
//alert(returnData.result);
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//2FACTOR 인증 - 인증 번호 확인
|
||||
function actionLoginAjaxNum(){
|
||||
|
||||
if (document.loginForm.id_text.value =="") {
|
||||
alert("아이디를 입력하세요");
|
||||
return false;
|
||||
|
||||
} else if (document.loginForm.password_text.value =="") {
|
||||
alert("비밀번호를 입력하세요");
|
||||
return false;
|
||||
|
||||
} else if (document.loginForm.id_num.value =="") {
|
||||
alert("등록된 전화번호로 전송받은 인증번호를 입력하세요");
|
||||
return false;
|
||||
|
||||
} else {
|
||||
var id = $("#id_text").val();
|
||||
var pw = $("#password_text").val();
|
||||
var celnum = $("#id_num").val();
|
||||
|
||||
$("#id").val(id);
|
||||
$("#password").val(pw);
|
||||
$("#membCelnum").val(celnum);
|
||||
|
||||
|
||||
var data1 = new FormData(document.getElementById("loginForm"));
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"${pageContext.request.contextPath}/uat/uia/actionSecurityLoginAjaxNum.do",
|
||||
data:data1,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success:function(returnData){
|
||||
if(returnData.result == "success"){
|
||||
////alert("2FACTOR 인증 시작");
|
||||
//alert(returnData.factor);
|
||||
|
||||
alert("인증 완료");
|
||||
|
||||
actionLogin(); //2FACTOR 인증 시작
|
||||
|
||||
|
||||
//alert("저장 되었습니다.");
|
||||
//fncGoList();
|
||||
}else{
|
||||
alert("로그인 정보가 올바르지 않습니다.");
|
||||
alert(returnData.result);
|
||||
}
|
||||
},
|
||||
error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//초기 로그인 화면으로
|
||||
function actionLoginAjaxNumFirst(){
|
||||
location.reload();
|
||||
}
|
||||
|
||||
function setCookie (name, value, expires) {
|
||||
document.cookie = name + "=" + escape (value) + "; path=/; expires=" + expires.toGMTString();
|
||||
}
|
||||
@ -153,6 +275,7 @@ String ip4 = request.getRemoteAddr() ;
|
||||
<%-- <input type="hidden" id="RSAExponent" value="${RSAExponent}"/> --%>
|
||||
<input type="hidden" id="id" name="id">
|
||||
<input type="hidden" id="password" name="password">
|
||||
<input type="hidden" id="membCelnum" name="membCelnum">
|
||||
<input type="text" id="ip1" name="ip1" value="<%=ip1%>">
|
||||
<input type="text" id="ip2" name="ip2" value="<%=ip2%>">
|
||||
<input type="text" id="ip3" name="ip3" value="<%=ip3%>">
|
||||
@ -198,9 +321,20 @@ String ip4 = request.getRemoteAddr() ;
|
||||
<input type="checkbox" id="checkId" name="checkId">
|
||||
<label for="checkId">아이디저장</label>
|
||||
</div>
|
||||
<div class="submit_box">
|
||||
<input type="submit" value="로그인" class="submit" id="login_submit" onclick="javascript:actionLogin();return false;">
|
||||
<div class="submit_box" id="submit_box_1">
|
||||
<input type="submit" value="로그인" class="submit" id="login_submit" onclick="javascript:actionLoginAjax();return false;">
|
||||
</div>
|
||||
<div class="id_box" id="id_box_2" style="display:none;">
|
||||
<br/>
|
||||
<p>인증번호</p>
|
||||
<label for="id_num"></label>
|
||||
<input type="text" id="id_num" maxlength="13" placeholder="핸드폰으로 받은 인증번호를 입력해주세요" class="id">
|
||||
</div>
|
||||
<div class="submit_box" id="submit_box_2" style="display:none;">
|
||||
<input type="submit" style="width:45%;" value="인증번호확인" class="submit" id="login_submit" onclick="javascript:actionLoginAjaxNum();return false;">
|
||||
<input type="submit" style="width:45%;color:#000;background:#F1F1F1;" value="로그인초기화면" class="submit" id="login_submit" onclick="javascript:actionLoginAjaxNumFirst();return false;">
|
||||
</div>
|
||||
|
||||
<div class="copyright">
|
||||
<span class="copy_text">Copyright ⓒ한국지식재산보호원 All Rights Reserved.</span>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user