parent
b63aad38d2
commit
3dc2bb67d9
3
.gitignore
vendored
3
.gitignore
vendored
@ -202,3 +202,6 @@ rebel.xml
|
||||
/mvnw
|
||||
/mvnw.cmd
|
||||
/.gemini.zip
|
||||
|
||||
### MAC OS ###
|
||||
.DS_Store
|
||||
@ -74,7 +74,7 @@ public class AddrGroupController {
|
||||
private EgovMberManageService mberManageService;
|
||||
|
||||
@Resource(name = "KmcCertChecker")
|
||||
private KmcCertChecker kmcCertCheck;
|
||||
private KmcCertChecker kmcCertChecker;
|
||||
|
||||
/**
|
||||
* 주소록 그룹 리스트
|
||||
@ -954,7 +954,7 @@ public class AddrGroupController {
|
||||
mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAddrSubmitAjax.do");
|
||||
mberCertPhoneVO.setPlusInfo(mberManageVO.getMberId());
|
||||
|
||||
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
|
||||
AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request);
|
||||
|
||||
modelAndView.addObject("tr_cert", certVO.getTr_cert());
|
||||
modelAndView.addObject("tr_url", certVO.getTr_url());
|
||||
@ -979,241 +979,16 @@ public class AddrGroupController {
|
||||
*/
|
||||
|
||||
@RequestMapping("/web/cop/kmc/authRequestAddrSubmitAjax.do")
|
||||
public String authRequestFindIdPwAjax(HttpServletRequest request, ModelMap model,
|
||||
@RequestParam Map<String, Object> commandMap, @ModelAttribute("searchVO") KmcVO kmcVO,
|
||||
RedirectAttributes redirectAttributes) throws Exception {
|
||||
public String authRequestFindIdPwAjax(
|
||||
HttpServletRequest request
|
||||
, HttpServletResponse response
|
||||
, ModelMap model
|
||||
, @RequestParam Map<String, Object> commandMap
|
||||
, @ModelAttribute("searchVO") KmcVO kmcVO
|
||||
, RedirectAttributes redirectAttributes
|
||||
) throws Exception {
|
||||
|
||||
String errMessage = ""; // 에러메세지
|
||||
|
||||
String rec_cert = ""; // 결과값(암호화)
|
||||
String certNum = ""; // certNum
|
||||
|
||||
rec_cert = request.getParameter("rec_cert").trim();
|
||||
certNum = request.getParameter("certNum").trim();
|
||||
|
||||
kmcVO.setRecCert(rec_cert);
|
||||
kmcVO.setCertNum(certNum);
|
||||
// 파라미터 유효성 검증
|
||||
if (rec_cert.length() == 0 || certNum.length() == 0) {
|
||||
errMessage = "비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
// 변수선언
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
String k_certNum = ""; // 파라미터로 수신한 요청번호
|
||||
k_certNum = certNum;
|
||||
String date = ""; // 요청일시
|
||||
String CI = ""; // 연계정보(CI)
|
||||
String DI = ""; // 중복가입확인정보(DI)
|
||||
String phoneNo = ""; // 휴대폰번호
|
||||
String phoneCorp = ""; // 이동통신사
|
||||
String birthDay = ""; // 생년월일
|
||||
String gender = ""; // 성별
|
||||
String nation = ""; // 내국인
|
||||
String name = ""; // 성명
|
||||
String M_name = ""; // 미성년자 성명
|
||||
String M_birthDay = ""; // 미성년자 생년월일
|
||||
String M_Gender = ""; // 미성년자 성별
|
||||
String M_nation = ""; // 미성년자 내외국인
|
||||
String result = ""; // 결과값
|
||||
|
||||
String certMet = ""; // 인증방법
|
||||
String ip = ""; // ip주소
|
||||
String plusInfo = "";
|
||||
|
||||
String encPara = "";
|
||||
String encMsg1 = "";
|
||||
String encMsg2 = "";
|
||||
String msgChk = "";
|
||||
|
||||
com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager();
|
||||
|
||||
// 02. 1차 복호화
|
||||
// 수신된 certNum를 이용하여 복호화
|
||||
rec_cert = seed.getDec(rec_cert, k_certNum);
|
||||
|
||||
// 03. 1차 파싱
|
||||
int inf1 = rec_cert.indexOf("/", 0);
|
||||
int inf2 = rec_cert.indexOf("/", inf1 + 1);
|
||||
|
||||
encPara = rec_cert.substring(0, inf1); // 암호화된 통합 파라미터
|
||||
encMsg1 = rec_cert.substring(inf1 + 1, inf2); // 암호화된 통합 파라미터의 Hash값
|
||||
|
||||
// 04. 위변조 검증
|
||||
encMsg2 = seed.getMsg(encPara);
|
||||
kmcVO.setEncMsg2(encMsg2);
|
||||
if (encMsg2.equals(encMsg1)) {
|
||||
msgChk = "Y";
|
||||
}
|
||||
|
||||
if (!"Y".equals(msgChk)) {
|
||||
errMessage = "비정상접근입니다.";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
// 05. 2차 복호화
|
||||
rec_cert = seed.getDec(encPara, k_certNum);
|
||||
kmcVO.setRecCert(rec_cert);
|
||||
// 06. 2차 파싱
|
||||
int info1 = rec_cert.indexOf("/", 0);
|
||||
int info2 = rec_cert.indexOf("/", info1 + 1);
|
||||
int info3 = rec_cert.indexOf("/", info2 + 1);
|
||||
int info4 = rec_cert.indexOf("/", info3 + 1);
|
||||
int info5 = rec_cert.indexOf("/", info4 + 1);
|
||||
int info6 = rec_cert.indexOf("/", info5 + 1);
|
||||
int info7 = rec_cert.indexOf("/", info6 + 1);
|
||||
int info8 = rec_cert.indexOf("/", info7 + 1);
|
||||
int info9 = rec_cert.indexOf("/", info8 + 1);
|
||||
int info10 = rec_cert.indexOf("/", info9 + 1);
|
||||
int info11 = rec_cert.indexOf("/", info10 + 1);
|
||||
int info12 = rec_cert.indexOf("/", info11 + 1);
|
||||
int info13 = rec_cert.indexOf("/", info12 + 1);
|
||||
int info14 = rec_cert.indexOf("/", info13 + 1);
|
||||
int info15 = rec_cert.indexOf("/", info14 + 1);
|
||||
int info16 = rec_cert.indexOf("/", info15 + 1);
|
||||
int info17 = rec_cert.indexOf("/", info16 + 1);
|
||||
int info18 = rec_cert.indexOf("/", info17 + 1);
|
||||
|
||||
certNum = rec_cert.substring(0, info1);
|
||||
kmcVO.setCertNum(certNum);
|
||||
date = rec_cert.substring(info1 + 1, info2);
|
||||
kmcVO.setDate(date);
|
||||
CI = rec_cert.substring(info2 + 1, info3);
|
||||
kmcVO.setCI(CI);
|
||||
phoneNo = rec_cert.substring(info3 + 1, info4);
|
||||
kmcVO.setPhoneNo(phoneNo);
|
||||
phoneCorp = rec_cert.substring(info4 + 1, info5);
|
||||
kmcVO.setPhoneCorp(phoneCorp);
|
||||
birthDay = rec_cert.substring(info5 + 1, info6);
|
||||
kmcVO.setBirthDay(birthDay);
|
||||
gender = rec_cert.substring(info6 + 1, info7);
|
||||
kmcVO.setGender(gender);
|
||||
nation = rec_cert.substring(info7 + 1, info8);
|
||||
kmcVO.setNation(nation);
|
||||
name = rec_cert.substring(info8 + 1, info9);
|
||||
kmcVO.setName(name);
|
||||
result = rec_cert.substring(info9 + 1, info10);
|
||||
kmcVO.setResult(result);
|
||||
certMet = rec_cert.substring(info10 + 1, info11);
|
||||
kmcVO.setCertMet(certMet);
|
||||
ip = rec_cert.substring(info11 + 1, info12);
|
||||
kmcVO.setIp(ip);
|
||||
M_name = rec_cert.substring(info12 + 1, info13);
|
||||
kmcVO.setMName(M_name);
|
||||
M_birthDay = rec_cert.substring(info13 + 1, info14);
|
||||
kmcVO.setMBirthDay(M_birthDay);
|
||||
M_Gender = rec_cert.substring(info14 + 1, info15);
|
||||
kmcVO.setMGender(M_Gender);
|
||||
M_nation = rec_cert.substring(info15 + 1, info16);
|
||||
kmcVO.setMNation(M_nation);
|
||||
plusInfo = rec_cert.substring(info16 + 1, info17);
|
||||
kmcVO.setPlusInfo(plusInfo);
|
||||
DI = rec_cert.substring(info17 + 1, info18);
|
||||
kmcVO.setDI(DI);
|
||||
|
||||
// 07. CI, DI 복호화
|
||||
CI = seed.getDec(CI, k_certNum);
|
||||
kmcVO.setCI(CI);
|
||||
DI = seed.getDec(DI, k_certNum);
|
||||
kmcVO.setDI(DI);
|
||||
|
||||
if ("Y".equals(result)) {
|
||||
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------
|
||||
String regex = "";
|
||||
if (certNum.length() == 0 || certNum.length() > 40) {
|
||||
errMessage = "요청번호 비정상.";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (date.length() != 14 || !paramChk(regex, date)) {
|
||||
errMessage = "요청일시";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if (certMet.length() != 1 || !paramChk(regex, certMet)) {
|
||||
errMessage = "본인인증방법 비정상" + certMet;
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if ((phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo)) {
|
||||
errMessage = "휴대폰번호 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if (phoneCorp.length() != 3 || !paramChk(regex, phoneCorp)) {
|
||||
errMessage = "이동통신사 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (birthDay.length() != 8 || !paramChk(regex, birthDay)) {
|
||||
errMessage = "생년월일 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (gender.length() != 1 || !paramChk(regex, gender)) {
|
||||
errMessage = "성별 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (nation.length() != 1 || !paramChk(regex, nation)) {
|
||||
errMessage = "내/외국인 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[\\sA-Za-z가-<2D>R.,-]*";
|
||||
if (name.length() > 60 || !paramChk(regex, name)) {
|
||||
errMessage = "성명 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if (result.length() != 1 || !paramChk(regex, result)) {
|
||||
errMessage = "결과값 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[\\sA-Za-z가-?.,-]*";
|
||||
if (M_name.length() != 0) {
|
||||
if (M_name.length() > 60 || !paramChk(regex, M_name)) {
|
||||
errMessage = "미성년자 성명 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (M_birthDay.length() != 0) {
|
||||
if (M_birthDay.length() != 8 || !paramChk(regex, M_birthDay)) {
|
||||
errMessage = "미성년자 생년월일 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (M_Gender.length() != 0) {
|
||||
if (M_Gender.length() != 1 || !paramChk(regex, M_Gender)) {
|
||||
errMessage = "미성년자 성별 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (M_nation.length() != 0) {
|
||||
if (M_nation.length() != 1 || !paramChk(regex, M_nation)) {
|
||||
errMessage = "미성년자 내/외국인 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
}
|
||||
kmcVO = kmcCertChecker.authCertResult(request, response, model);
|
||||
|
||||
// KMC 본인인증 로그
|
||||
AuthCertVO certVO = new AuthCertVO();
|
||||
|
||||
@ -18,10 +18,10 @@ public class KmcVO extends ComDefaultVO{
|
||||
private String gender = ""; // 성별
|
||||
private String nation = ""; // 내국인
|
||||
private String name = ""; // 성명
|
||||
private String MName = ""; // 미성년자 성명
|
||||
private String MBirthDay = ""; // 미성년자 생년월일
|
||||
private String MGender = ""; // 미성년자 성별
|
||||
private String MNation = ""; // 미성년자 내외국인
|
||||
// private String MName = ""; // 미성년자 성명
|
||||
// private String MBirthDay = ""; // 미성년자 생년월일
|
||||
// private String MGender = ""; // 미성년자 성별
|
||||
// private String MNation = ""; // 미성년자 내외국인
|
||||
private String result = ""; // 결과값
|
||||
|
||||
private String certMet = ""; // 인증방법
|
||||
@ -41,6 +41,11 @@ public class KmcVO extends ComDefaultVO{
|
||||
private String idx = ""; //본인인증 로그 idx
|
||||
private String dnChk = ""; //본인명의 DN 체크
|
||||
|
||||
private String reserve1 = "";
|
||||
private String reserve2 = "";
|
||||
private String reserve3 = "";
|
||||
private String reserve4 = "";
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
@ -177,30 +182,6 @@ public class KmcVO extends ComDefaultVO{
|
||||
public void setCertNum(String certNum) {
|
||||
this.certNum = certNum;
|
||||
}
|
||||
public String getMName() {
|
||||
return MName;
|
||||
}
|
||||
public void setMName(String mName) {
|
||||
MName = mName;
|
||||
}
|
||||
public String getMBirthDay() {
|
||||
return MBirthDay;
|
||||
}
|
||||
public void setMBirthDay(String mBirthDay) {
|
||||
MBirthDay = mBirthDay;
|
||||
}
|
||||
public String getMGender() {
|
||||
return MGender;
|
||||
}
|
||||
public void setMGender(String mGender) {
|
||||
MGender = mGender;
|
||||
}
|
||||
public String getMNation() {
|
||||
return MNation;
|
||||
}
|
||||
public void setMNation(String mNation) {
|
||||
MNation = mNation;
|
||||
}
|
||||
public String getRecCert() {
|
||||
return recCert;
|
||||
}
|
||||
@ -225,5 +206,30 @@ public class KmcVO extends ComDefaultVO{
|
||||
public void setCertType(String certType) {
|
||||
this.certType = certType;
|
||||
}
|
||||
public String getReserve1() {
|
||||
return reserve1;
|
||||
}
|
||||
public void setReserve1(String reserve1) {
|
||||
this.reserve1 = reserve1;
|
||||
}
|
||||
public String getReserve2() {
|
||||
return reserve2;
|
||||
}
|
||||
public void setReserve2(String reserve2) {
|
||||
this.reserve2 = reserve2;
|
||||
}
|
||||
public String getReserve3() {
|
||||
return reserve3;
|
||||
}
|
||||
public void setReserve3(String reserve3) {
|
||||
this.reserve3 = reserve3;
|
||||
}
|
||||
public String getReserve4() {
|
||||
return reserve4;
|
||||
}
|
||||
public void setReserve4(String reserve4) {
|
||||
this.reserve4 = reserve4;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -945,24 +945,10 @@ public class MjonPayController {
|
||||
ModelMap model , @RequestParam Map<String, Object> commandMap,
|
||||
@ModelAttribute("searchVO") KmcVO kmcVO) throws Exception {
|
||||
|
||||
//kmc 본인인증 결과처리
|
||||
kmcVO = kmcCertChecker.authCertResult(request, response, model);
|
||||
//KMC 본인인증 로그 insert
|
||||
AuthCertVO certVO = new AuthCertVO();
|
||||
certVO.setMberId(kmcVO.getPlusInfo());
|
||||
certVO.setCertNum(kmcVO.getCertNum());
|
||||
certVO.setCertDate(kmcVO.getDate());
|
||||
certVO.setCertDi(kmcVO.getDI());
|
||||
certVO.setCertPhone(kmcVO.getPhoneNo());
|
||||
certVO.setCertNation(kmcVO.getNation());
|
||||
certVO.setCertName(kmcVO.getName());
|
||||
certVO.setCertResult(kmcVO.getResult());
|
||||
certVO.setCertType("KMC_회원가입 인증");
|
||||
certVO.setCertIpaddr(kmcVO.getIp());
|
||||
certVO.setBirthDay(kmcVO.getBirthDay());
|
||||
certVO.setSexdstnCode(kmcVO.getGender());
|
||||
|
||||
//디비 테이블에 저장하기
|
||||
mberManageService.insertCertInfoLog(certVO);
|
||||
//kmc 본인인증 로그 처리
|
||||
AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_회원가입 인증");
|
||||
|
||||
kmcVO.setIdx(certVO.getIdx()); //본인인증 로그 Idx - 로그 insert 후 idx selectKey
|
||||
model.addAttribute("kmcVO", kmcVO);
|
||||
@ -5937,297 +5923,5 @@ public class MjonPayController {
|
||||
return p_response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 회원가입 본인인증
|
||||
*
|
||||
* @param
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/web/cop/kmc/authRequestAjax_back.do")
|
||||
public String authRequestAjax_back(HttpServletRequest request, HttpSession session, HttpServletResponse response,
|
||||
ModelMap model , @RequestParam Map<String, Object> commandMap,
|
||||
@ModelAttribute("searchVO") KmcVO kmcVO) throws Exception {
|
||||
|
||||
//크롬 SameSite정책 방지 - 도메인이 다른 타사로 이동 시 크롬 정책에 의해 세션 유실이 일어나는 경우가 있는데, 이를 방지하기 위해 samesite 보안을 none처리
|
||||
response.setHeader("Set-Cookie", "mberSession=mberSession; Secure; SameSite=None");
|
||||
|
||||
System.out.println("++++++++++++ 세션체크 ::: "+ session.getAttribute("mberSession"));
|
||||
|
||||
String errMessage = ""; //에러메세지
|
||||
|
||||
String rec_cert = ""; // 결과값(암호화)
|
||||
String certNum = ""; // certNum
|
||||
|
||||
rec_cert = request.getParameter("rec_cert").trim();
|
||||
certNum = request.getParameter("certNum").trim();
|
||||
|
||||
kmcVO.setRecCert(rec_cert);
|
||||
kmcVO.setCertNum(certNum);
|
||||
// 파라미터 유효성 검증
|
||||
if( rec_cert.length() == 0 || certNum.length() == 0 ){
|
||||
errMessage = "비정상";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
|
||||
// 변수선언 --------------------------------------------------------------------------------------------------------
|
||||
String k_certNum = ""; // 파라미터로 수신한 요청번호
|
||||
k_certNum = certNum;
|
||||
String date = ""; // 요청일시
|
||||
String CI = ""; // 연계정보(CI)
|
||||
String DI = ""; // 중복가입확인정보(DI)
|
||||
String phoneNo = ""; // 휴대폰번호
|
||||
String phoneCorp = ""; // 이동통신사
|
||||
String birthDay = ""; // 생년월일
|
||||
String gender = ""; // 성별
|
||||
String nation = ""; // 내국인
|
||||
String name = ""; // 성명
|
||||
String M_name = ""; // 미성년자 성명
|
||||
String M_birthDay = ""; // 미성년자 생년월일
|
||||
String M_Gender = ""; // 미성년자 성별
|
||||
String M_nation = ""; // 미성년자 내외국인
|
||||
String result = ""; // 결과값
|
||||
|
||||
String certMet = ""; // 인증방법
|
||||
String ip = ""; // ip주소
|
||||
String plusInfo = "";
|
||||
|
||||
String encPara = "";
|
||||
String encMsg1 = "";
|
||||
String encMsg2 = "";
|
||||
String msgChk = "";
|
||||
|
||||
com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager();
|
||||
|
||||
//02. 1차 복호화
|
||||
//수신된 certNum를 이용하여 복호화
|
||||
rec_cert = seed.getDec(rec_cert, k_certNum);
|
||||
|
||||
//03. 1차 파싱
|
||||
int inf1 = rec_cert.indexOf("/",0);
|
||||
int inf2 = rec_cert.indexOf("/",inf1+1);
|
||||
|
||||
encPara = rec_cert.substring(0,inf1); //암호화된 통합 파라미터
|
||||
encMsg1 = rec_cert.substring(inf1+1,inf2); //암호화된 통합 파라미터의 Hash값
|
||||
|
||||
//04. 위변조 검증
|
||||
encMsg2 = seed.getMsg(encPara);
|
||||
kmcVO.setEncMsg2(encMsg2);
|
||||
if(encMsg2.equals(encMsg1)){
|
||||
msgChk="Y";
|
||||
}
|
||||
|
||||
if(!"Y".equals(msgChk)) {
|
||||
errMessage = "비정상접근입니다.";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
//05. 2차 복호화
|
||||
rec_cert = seed.getDec(encPara, k_certNum);
|
||||
kmcVO.setRecCert(rec_cert);
|
||||
//06. 2차 파싱
|
||||
int info1 = rec_cert.indexOf("/",0);
|
||||
int info2 = rec_cert.indexOf("/",info1+1);
|
||||
int info3 = rec_cert.indexOf("/",info2+1);
|
||||
int info4 = rec_cert.indexOf("/",info3+1);
|
||||
int info5 = rec_cert.indexOf("/",info4+1);
|
||||
int info6 = rec_cert.indexOf("/",info5+1);
|
||||
int info7 = rec_cert.indexOf("/",info6+1);
|
||||
int info8 = rec_cert.indexOf("/",info7+1);
|
||||
int info9 = rec_cert.indexOf("/",info8+1);
|
||||
int info10 = rec_cert.indexOf("/",info9+1);
|
||||
int info11 = rec_cert.indexOf("/",info10+1);
|
||||
int info12 = rec_cert.indexOf("/",info11+1);
|
||||
int info13 = rec_cert.indexOf("/",info12+1);
|
||||
int info14 = rec_cert.indexOf("/",info13+1);
|
||||
int info15 = rec_cert.indexOf("/",info14+1);
|
||||
int info16 = rec_cert.indexOf("/",info15+1);
|
||||
int info17 = rec_cert.indexOf("/",info16+1);
|
||||
int info18 = rec_cert.indexOf("/",info17+1);
|
||||
|
||||
certNum = rec_cert.substring(0,info1); kmcVO.setCertNum(certNum);
|
||||
date = rec_cert.substring(info1+1,info2); kmcVO.setDate(date);
|
||||
CI = rec_cert.substring(info2+1,info3); kmcVO.setCI(CI);
|
||||
phoneNo = rec_cert.substring(info3+1,info4); kmcVO.setPhoneNo(phoneNo);
|
||||
phoneCorp = rec_cert.substring(info4+1,info5); kmcVO.setPhoneCorp(phoneCorp);
|
||||
birthDay = rec_cert.substring(info5+1,info6); kmcVO.setBirthDay(birthDay);
|
||||
gender = rec_cert.substring(info6+1,info7); kmcVO.setGender(gender);
|
||||
nation = rec_cert.substring(info7+1,info8); kmcVO.setNation(nation);
|
||||
name = rec_cert.substring(info8+1,info9); kmcVO.setName(name);
|
||||
result = rec_cert.substring(info9+1,info10); kmcVO.setResult(result);
|
||||
certMet = rec_cert.substring(info10+1,info11); kmcVO.setCertMet(certMet);
|
||||
ip = rec_cert.substring(info11+1,info12); kmcVO.setIp(ip);
|
||||
M_name = rec_cert.substring(info12+1,info13); kmcVO.setMName(M_name);
|
||||
M_birthDay = rec_cert.substring(info13+1,info14); kmcVO.setMBirthDay(M_birthDay);
|
||||
M_Gender = rec_cert.substring(info14+1,info15); kmcVO.setMGender(M_Gender);
|
||||
M_nation = rec_cert.substring(info15+1,info16); kmcVO.setMNation(M_nation);
|
||||
plusInfo = rec_cert.substring(info16+1,info17); kmcVO.setPlusInfo(plusInfo);
|
||||
DI = rec_cert.substring(info17+1,info18); kmcVO.setDI(DI);
|
||||
|
||||
//07. CI, DI 복호화
|
||||
CI = seed.getDec(CI, k_certNum); kmcVO.setCI(CI);
|
||||
DI = seed.getDec(DI, k_certNum); kmcVO.setDI(DI);
|
||||
|
||||
if("Y".equals(result)) {
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
String regex = "";
|
||||
if( certNum.length() == 0 || certNum.length() > 40){
|
||||
errMessage = "요청번호 비정상.";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if( date.length() != 14 || !paramChk(regex, date) ){
|
||||
errMessage = "요청일시";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if( certMet.length() != 1 || !paramChk(regex, certMet) ){
|
||||
errMessage = "본인인증방법 비정상" + certMet;
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
|
||||
regex = "[0-9]*";
|
||||
if( (phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo) ){
|
||||
errMessage = "휴대폰번호 비정상" ;
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if( phoneCorp.length() != 3 || !paramChk(regex, phoneCorp) ){
|
||||
errMessage = "이동통신사 비정상";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if( birthDay.length() != 8 || !paramChk(regex, birthDay) ){
|
||||
errMessage = "생년월일 비정상";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if( gender.length() != 1 || !paramChk(regex, gender) ){
|
||||
errMessage = "성별 비정상";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if( nation.length() != 1 || !paramChk(regex, nation) ){
|
||||
errMessage = "내/외국인 비정상";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
regex = "[\\sA-Za-z가-<2D>R.,-]*";
|
||||
if( name.length() > 60 || !paramChk(regex, name) ){
|
||||
errMessage = "성명 비정상";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if( result.length() != 1 || !paramChk(regex, result) ){
|
||||
errMessage = "결과값 비정상";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
|
||||
regex = "[\\sA-Za-z가-?.,-]*";
|
||||
if( M_name.length() != 0 ){
|
||||
if( M_name.length() > 60 || !paramChk(regex, M_name) ){
|
||||
errMessage = "미성년자 성명 비정상";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if( M_birthDay.length() != 0 ){
|
||||
if( M_birthDay.length() != 8 || !paramChk(regex, M_birthDay) ){
|
||||
errMessage = "미성년자 생년월일 비정상";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if( M_Gender.length() != 0 ){
|
||||
if( M_Gender.length() != 1 || !paramChk(regex, M_Gender) ){
|
||||
errMessage = "미성년자 성별 비정상";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if( M_nation.length() != 0 ){
|
||||
if( M_nation.length() != 1 || !paramChk(regex, M_nation) ){
|
||||
errMessage = "미성년자 내/외국인 비정상";
|
||||
return returnPage(model , errMessage , kmcVO) ;
|
||||
}
|
||||
}
|
||||
|
||||
//본인인증 결과 내용 저장하기.
|
||||
/*System.out.println("+++++++++++++ getCertNum ::: "+kmcVO.getCertNum());
|
||||
System.out.println("+++++++++++++ getDate ::: "+kmcVO.getDate());
|
||||
System.out.println("+++++++++++++ getDI ::: "+kmcVO.getDI());
|
||||
System.out.println("+++++++++++++ getPhoneNo ::: "+kmcVO.getPhoneNo());
|
||||
System.out.println("+++++++++++++ getNation ::: "+kmcVO.getNation());
|
||||
System.out.println("+++++++++++++ getName ::: "+kmcVO.getName());
|
||||
System.out.println("+++++++++++++ getResult ::: "+kmcVO.getResult());
|
||||
System.out.println("+++++++++++++ getCertMet ::: "+kmcVO.getCertMet());
|
||||
System.out.println("+++++++++++++ getIp ::: "+kmcVO.getIp());*/
|
||||
|
||||
//KMC 본인인증 정보를 세션에 담아준다.
|
||||
/*AuthCertVO certVO = new AuthCertVO();
|
||||
certVO.setCertNum(kmcVO.getCertNum());
|
||||
certVO.setCertDate(kmcVO.getDate());
|
||||
certVO.setCertDi(kmcVO.getDI());
|
||||
certVO.setCertPhone(kmcVO.getPhoneNo());
|
||||
certVO.setCertNation(kmcVO.getNation());
|
||||
certVO.setCertName(kmcVO.getName());
|
||||
certVO.setCertResult(kmcVO.getResult());
|
||||
certVO.setCertType("KMC문자인증");
|
||||
certVO.setCertIpaddr(kmcVO.getIp());
|
||||
certVO.setBirthDay(kmcVO.getBirthDay());
|
||||
certVO.setSexdstnCode(kmcVO.getGender());*/
|
||||
|
||||
/*request.getSession().setAttribute("AuthKmcCertVO", certVO);*/
|
||||
|
||||
/*System.out.println("++++++++++++ 세션체크22 ::: "+(MberManageVO) session.getAttribute("mberSession"));*/
|
||||
|
||||
//KMC 본인인증 로그 insert
|
||||
AuthCertVO certVO = new AuthCertVO();
|
||||
certVO.setMberId(kmcVO.getPlusInfo());
|
||||
certVO.setCertNum(kmcVO.getCertNum());
|
||||
certVO.setCertDate(kmcVO.getDate());
|
||||
certVO.setCertDi(kmcVO.getDI());
|
||||
certVO.setCertPhone(kmcVO.getPhoneNo());
|
||||
certVO.setCertNation(kmcVO.getNation());
|
||||
certVO.setCertName(kmcVO.getName());
|
||||
certVO.setCertResult(kmcVO.getResult());
|
||||
certVO.setCertType("KMC_회원가입 인증");
|
||||
certVO.setCertIpaddr(kmcVO.getIp());
|
||||
certVO.setBirthDay(kmcVO.getBirthDay());
|
||||
certVO.setSexdstnCode(kmcVO.getGender());
|
||||
|
||||
//디비 테이블에 저장하기
|
||||
mberManageService.insertCertInfoLog(certVO);
|
||||
|
||||
kmcVO.setIdx(certVO.getIdx()); //본인인증 로그 Idx - 로그 insert 후 idx selectKey
|
||||
model.addAttribute("kmcVO", kmcVO);
|
||||
return "web/cop/kmc/authRequestAjax";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -121,5 +121,4 @@ public interface EgovLoginService {
|
||||
//비밀번호 실패 횟수 조회
|
||||
public LoginVO selectPassMiss(LoginVO vo) throws Exception;
|
||||
|
||||
public KmcVO kmcDecryption(HttpServletRequest request, KmcVO kmcVO);
|
||||
}
|
||||
|
||||
@ -17,6 +17,7 @@ import egovframework.rte.fdl.idgnr.EgovIdGnrService;
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
import itn.com.cmm.LoginVO;
|
||||
import itn.let.mjo.pay.service.KmcVO;
|
||||
import itn.let.uat.uia.service.AuthCertVO;
|
||||
import itn.let.uat.uia.service.EgovLoginService;
|
||||
import itn.let.uss.umt.service.UserManageVO;
|
||||
import itn.let.utl.fcc.service.EgovNumberUtil;
|
||||
@ -318,240 +319,6 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
||||
return loginDAO.selectPassMiss(vo);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public KmcVO kmcDecryption(HttpServletRequest request, KmcVO kmcVO) {
|
||||
|
||||
|
||||
|
||||
String rec_cert = request.getParameter("rec_cert").trim();
|
||||
String certNum = request.getParameter("certNum").trim();
|
||||
|
||||
kmcVO.setRecCert(rec_cert);
|
||||
kmcVO.setCertNum(certNum);
|
||||
// 파라미터 유효성 검증
|
||||
if (rec_cert.length() == 0 || certNum.length() == 0) {
|
||||
kmcVO.setErrMessage("비정상");
|
||||
return kmcVO;
|
||||
}
|
||||
// 변수선언
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
String k_certNum = ""; // 파라미터로 수신한 요청번호
|
||||
k_certNum = certNum;
|
||||
String date = ""; // 요청일시
|
||||
String CI = ""; // 연계정보(CI)
|
||||
String DI = ""; // 중복가입확인정보(DI)
|
||||
String phoneNo = ""; // 휴대폰번호
|
||||
String phoneCorp = ""; // 이동통신사
|
||||
String birthDay = ""; // 생년월일
|
||||
String gender = ""; // 성별
|
||||
String nation = ""; // 내국인
|
||||
String name = ""; // 성명
|
||||
String M_name = ""; // 미성년자 성명
|
||||
String M_birthDay = ""; // 미성년자 생년월일
|
||||
String M_Gender = ""; // 미성년자 성별
|
||||
String M_nation = ""; // 미성년자 내외국인
|
||||
String result = ""; // 결과값
|
||||
|
||||
String certMet = ""; // 인증방법
|
||||
String ip = ""; // ip주소
|
||||
String plusInfo = "";
|
||||
|
||||
String encPara = "";
|
||||
String encMsg1 = "";
|
||||
String encMsg2 = "";
|
||||
String msgChk = "";
|
||||
|
||||
IcertSecuManager seed = new IcertSecuManager();
|
||||
|
||||
// 02. 1차 복호화
|
||||
// 수신된 certNum를 이용하여 복호화
|
||||
rec_cert = seed.getDec(rec_cert, k_certNum);
|
||||
|
||||
// 03. 1차 파싱
|
||||
int inf1 = rec_cert.indexOf("/", 0);
|
||||
int inf2 = rec_cert.indexOf("/", inf1 + 1);
|
||||
|
||||
encPara = rec_cert.substring(0, inf1); // 암호화된 통합 파라미터
|
||||
encMsg1 = rec_cert.substring(inf1 + 1, inf2); // 암호화된 통합 파라미터의 Hash값
|
||||
|
||||
// 04. 위변조 검증
|
||||
encMsg2 = seed.getMsg(encPara);
|
||||
kmcVO.setEncMsg2(encMsg2);
|
||||
if (encMsg2.equals(encMsg1)) {
|
||||
msgChk = "Y";
|
||||
}
|
||||
|
||||
if (!"Y".equals(msgChk)) {
|
||||
kmcVO.setErrMessage("비정상접근입니다.");
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
// 05. 2차 복호화
|
||||
rec_cert = seed.getDec(encPara, k_certNum);
|
||||
kmcVO.setRecCert(rec_cert);
|
||||
// 06. 2차 파싱
|
||||
int info1 = rec_cert.indexOf("/", 0);
|
||||
int info2 = rec_cert.indexOf("/", info1 + 1);
|
||||
int info3 = rec_cert.indexOf("/", info2 + 1);
|
||||
int info4 = rec_cert.indexOf("/", info3 + 1);
|
||||
int info5 = rec_cert.indexOf("/", info4 + 1);
|
||||
int info6 = rec_cert.indexOf("/", info5 + 1);
|
||||
int info7 = rec_cert.indexOf("/", info6 + 1);
|
||||
int info8 = rec_cert.indexOf("/", info7 + 1);
|
||||
int info9 = rec_cert.indexOf("/", info8 + 1);
|
||||
int info10 = rec_cert.indexOf("/", info9 + 1);
|
||||
int info11 = rec_cert.indexOf("/", info10 + 1);
|
||||
int info12 = rec_cert.indexOf("/", info11 + 1);
|
||||
int info13 = rec_cert.indexOf("/", info12 + 1);
|
||||
int info14 = rec_cert.indexOf("/", info13 + 1);
|
||||
int info15 = rec_cert.indexOf("/", info14 + 1);
|
||||
int info16 = rec_cert.indexOf("/", info15 + 1);
|
||||
int info17 = rec_cert.indexOf("/", info16 + 1);
|
||||
int info18 = rec_cert.indexOf("/", info17 + 1);
|
||||
|
||||
certNum = rec_cert.substring(0, info1);
|
||||
kmcVO.setCertNum(certNum);
|
||||
date = rec_cert.substring(info1 + 1, info2);
|
||||
kmcVO.setDate(date);
|
||||
CI = rec_cert.substring(info2 + 1, info3);
|
||||
kmcVO.setCI(CI);
|
||||
phoneNo = rec_cert.substring(info3 + 1, info4);
|
||||
kmcVO.setPhoneNo(phoneNo);
|
||||
phoneCorp = rec_cert.substring(info4 + 1, info5);
|
||||
kmcVO.setPhoneCorp(phoneCorp);
|
||||
birthDay = rec_cert.substring(info5 + 1, info6);
|
||||
kmcVO.setBirthDay(birthDay);
|
||||
gender = rec_cert.substring(info6 + 1, info7);
|
||||
kmcVO.setGender(gender);
|
||||
nation = rec_cert.substring(info7 + 1, info8);
|
||||
kmcVO.setNation(nation);
|
||||
name = rec_cert.substring(info8 + 1, info9);
|
||||
kmcVO.setName(name);
|
||||
result = rec_cert.substring(info9 + 1, info10);
|
||||
kmcVO.setResult(result);
|
||||
certMet = rec_cert.substring(info10 + 1, info11);
|
||||
kmcVO.setCertMet(certMet);
|
||||
ip = rec_cert.substring(info11 + 1, info12);
|
||||
kmcVO.setIp(ip);
|
||||
M_name = rec_cert.substring(info12 + 1, info13);
|
||||
kmcVO.setMName(M_name);
|
||||
M_birthDay = rec_cert.substring(info13 + 1, info14);
|
||||
kmcVO.setMBirthDay(M_birthDay);
|
||||
M_Gender = rec_cert.substring(info14 + 1, info15);
|
||||
kmcVO.setMGender(M_Gender);
|
||||
M_nation = rec_cert.substring(info15 + 1, info16);
|
||||
kmcVO.setMNation(M_nation);
|
||||
plusInfo = rec_cert.substring(info16 + 1, info17);
|
||||
kmcVO.setPlusInfo(plusInfo);
|
||||
DI = rec_cert.substring(info17 + 1, info18);
|
||||
kmcVO.setDI(DI);
|
||||
|
||||
// 07. CI, DI 복호화
|
||||
CI = seed.getDec(CI, k_certNum);
|
||||
kmcVO.setCI(CI);
|
||||
DI = seed.getDec(DI, k_certNum);
|
||||
kmcVO.setDI(DI);
|
||||
|
||||
if ("Y".equals(result)) {
|
||||
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------
|
||||
String regex = "";
|
||||
if (certNum.length() == 0 || certNum.length() > 40) {
|
||||
kmcVO.setErrMessage("요청번호 비정상.");
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (date.length() != 14 || !this.paramChk(regex, date)) {
|
||||
kmcVO.setErrMessage("요청일시");
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if (certMet.length() != 1 || !this.paramChk(regex, certMet)) {
|
||||
kmcVO.setErrMessage("본인인증방법 비정상" + certMet);
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if ((phoneNo.length() != 10 && phoneNo.length() != 11) || !this.paramChk(regex, phoneNo)) {
|
||||
kmcVO.setErrMessage("휴대폰번호 비정상");
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if (phoneCorp.length() != 3 || !this.paramChk(regex, phoneCorp)) {
|
||||
kmcVO.setErrMessage("이동통신사 비정상");
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (birthDay.length() != 8 || !this.paramChk(regex, birthDay)) {
|
||||
kmcVO.setErrMessage("생년월일 비정상");
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (gender.length() != 1 || !this.paramChk(regex, gender)) {
|
||||
kmcVO.setErrMessage("성별 비정상");
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (nation.length() != 1 || !this.paramChk(regex, nation)) {
|
||||
kmcVO.setErrMessage("내/외국인 비정상");
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
regex = "[\\sA-Za-z가-<2D>R.,-]*";
|
||||
if (name.length() > 60 || !this.paramChk(regex, name)) {
|
||||
kmcVO.setErrMessage("성명 비정상");
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if (result.length() != 1 || !this.paramChk(regex, result)) {
|
||||
kmcVO.setErrMessage("결과값 비정상");
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
regex = "[\\sA-Za-z가-?.,-]*";
|
||||
if (M_name.length() != 0) {
|
||||
if (M_name.length() > 60 || !this.paramChk(regex, M_name)) {
|
||||
kmcVO.setErrMessage("미성년자 성명 비정상");
|
||||
return kmcVO;
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (M_birthDay.length() != 0) {
|
||||
if (M_birthDay.length() != 8 || !this.paramChk(regex, M_birthDay)) {
|
||||
kmcVO.setErrMessage("미성년자 생년월일 비정상");
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (M_Gender.length() != 0) {
|
||||
if (M_Gender.length() != 1 || !paramChk(regex, M_Gender)) {
|
||||
kmcVO.setErrMessage("미성년자 성별 비정상");
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (M_nation.length() != 0) {
|
||||
if (M_nation.length() != 1 || !this.paramChk(regex, M_nation)) {
|
||||
kmcVO.setErrMessage("미성년자 내/외국인 비정상");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
|
||||
public Boolean paramChk(String patn, String param) {
|
||||
Pattern pattern = Pattern.compile(patn);
|
||||
Matcher matcher = pattern.matcher(param);
|
||||
|
||||
@ -253,7 +253,7 @@ public class EgovLoginController {
|
||||
private CertIpService certIpService;
|
||||
|
||||
@Resource(name = "KmcCertChecker")
|
||||
private KmcCertChecker kmcCertCheck;
|
||||
private KmcCertChecker kmcCertChecker;
|
||||
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class);
|
||||
@ -336,7 +336,7 @@ public class EgovLoginController {
|
||||
|
||||
MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
|
||||
mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAjax.do");
|
||||
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
|
||||
AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request);
|
||||
|
||||
model.addAttribute("tr_cert", certVO.getTr_cert());
|
||||
model.addAttribute("tr_url", certVO.getTr_url());
|
||||
@ -385,7 +385,7 @@ public class EgovLoginController {
|
||||
mberCertPhoneVO.setNation(mberManageVO.getNationality());
|
||||
mberCertPhoneVO.setBirthDay(mberManageVO.getBirth());
|
||||
|
||||
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
|
||||
AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request);
|
||||
|
||||
// AuthCertVO certVO = kmcCertCheck.authCertCheckTwo(serverNm + "/web/cop/kmc/authRequestAjax.do",
|
||||
// mberManageVO.getMberNm(), mberManageVO.getMoblphonNo(), mberManageVO.getSexdstnCode(),
|
||||
@ -4035,7 +4035,7 @@ public class EgovLoginController {
|
||||
}
|
||||
mberCertPhoneVO.setPlusInfo(plusInfo);
|
||||
|
||||
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
|
||||
AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request);
|
||||
|
||||
modelAndView.addObject("tr_cert", certVO.getTr_cert());
|
||||
modelAndView.addObject("tr_url", certVO.getTr_url());
|
||||
@ -4060,22 +4060,26 @@ public class EgovLoginController {
|
||||
*/
|
||||
|
||||
@RequestMapping("/web/cop/kmc/authRequestFindIdPwAjax.do")
|
||||
public String authRequestFindIdPwAjax(HttpServletRequest request, ModelMap model,
|
||||
public String authRequestFindIdPwAjax(HttpServletRequest request, HttpServletResponse response, ModelMap model,
|
||||
@RequestParam Map<String, Object> commandMap, @ModelAttribute("searchVO") KmcVO kmcVO,
|
||||
RedirectAttributes redirectAttributes) throws Exception {
|
||||
|
||||
KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO);
|
||||
// KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO);
|
||||
//kmc 본인인증 결과처리
|
||||
kmcVO = kmcCertChecker.authCertResult(request, response, model);
|
||||
//kmc 본인인증 로그 처리
|
||||
AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_아이디패스워드찾기");
|
||||
|
||||
String msg = "";
|
||||
if (!findIdKmcCheck(kmcRVO.getDI(), kmcRVO.getName(), kmcRVO.getPhoneNo())) {
|
||||
if (!findIdKmcCheck(kmcVO.getDI(), kmcVO.getName(), kmcVO.getPhoneNo())) {
|
||||
msg = "일치하는 정보가 없습니다.";
|
||||
redirectAttributes.addFlashAttribute("message", msg);
|
||||
return "redirect:/web/user/findUserId.do";
|
||||
}
|
||||
|
||||
kmcRVO.setCertType("KMC_아이디패스워드찾기");
|
||||
// 디비 테이블에 저장하기
|
||||
mberManageService.insertCertInfoLogBn(kmcRVO);
|
||||
// kmcRVO.setCertType("KMC_아이디패스워드찾기");
|
||||
// // 디비 테이블에 저장하기
|
||||
// mberManageService.insertCertInfoLogBn(kmcRVO);
|
||||
|
||||
model.addAttribute("kmcVO", kmcVO);
|
||||
return "web/login/findUserIdKmcReqPage";
|
||||
@ -4092,18 +4096,24 @@ public class EgovLoginController {
|
||||
* @discription 관리자 로그인 DN 값 최초 등록
|
||||
*/
|
||||
@RequestMapping("/web/cop/kmc/authRequestSelfLoginAjax.do")
|
||||
public String authRequestSelfLoginAjax(HttpServletRequest request, ModelMap model,
|
||||
public String authRequestSelfLoginAjax(HttpServletRequest request, HttpServletResponse response, ModelMap model,
|
||||
@RequestParam Map<String, Object> commandMap, @ModelAttribute("searchVO") KmcVO kmcVO,
|
||||
RedirectAttributes redirectAttributes, HttpSession session) throws Exception {
|
||||
|
||||
UserManageVO userManageVO = new UserManageVO();
|
||||
|
||||
KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO);
|
||||
// KmcVO kmcRVO = loginService.kmcDecryption(request, kmcVO);
|
||||
|
||||
//kmc 본인인증 결과처리
|
||||
kmcVO = kmcCertChecker.authCertResult(request, response, model);
|
||||
//kmc 본인인증 로그 처리
|
||||
AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "KMC_아이디패스워드찾기");
|
||||
|
||||
|
||||
userManageVO.setCrtfcDnValue(kmcRVO.getDI());
|
||||
userManageVO.setEmplyrNm(kmcRVO.getName());
|
||||
userManageVO.setEmplyrId(kmcRVO.getPlusInfo().split(",,,")[0]);
|
||||
userManageVO.setPassword(kmcRVO.getPlusInfo().split(",,,")[1]);
|
||||
userManageVO.setCrtfcDnValue(kmcVO.getDI());
|
||||
userManageVO.setEmplyrNm(kmcVO.getName());
|
||||
userManageVO.setEmplyrId(kmcVO.getPlusInfo().split(",,,")[0]);
|
||||
userManageVO.setPassword(kmcVO.getPlusInfo().split(",,,")[1]);
|
||||
|
||||
userManageService.updateCrtfcDnValue(userManageVO);
|
||||
|
||||
@ -4121,20 +4131,20 @@ public class EgovLoginController {
|
||||
e.printStackTrace();
|
||||
// TODO: handle exception
|
||||
}
|
||||
kmcRVO.setCertType("KMC_관리자미인증IP접속인증");
|
||||
// 디비 테이블에 저장하기
|
||||
|
||||
try {
|
||||
mberManageService.insertCertInfoLogBn(kmcRVO);
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println("!!!!!!!!!!!!!!!!!");
|
||||
e.printStackTrace();
|
||||
// TODO: handle exception
|
||||
}
|
||||
// kmcRVO.setCertType("KMC_관리자미인증IP접속인증");
|
||||
// // 디비 테이블에 저장하기
|
||||
//
|
||||
// try {
|
||||
// mberManageService.insertCertInfoLogBn(kmcRVO);
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// System.out.println("!!!!!!!!!!!!!!!!!");
|
||||
// e.printStackTrace();
|
||||
// // TODO: handle exception
|
||||
// }
|
||||
|
||||
|
||||
model.addAttribute("kmcVO", kmcRVO);
|
||||
model.addAttribute("kmcVO", kmcVO);
|
||||
|
||||
System.out.println("======================================");
|
||||
model.addAttribute("userManageVO", userManageVO);
|
||||
@ -5425,7 +5435,7 @@ public class EgovLoginController {
|
||||
mberCertPhoneVO.setNation(KMCInfoVO.getNationality());
|
||||
mberCertPhoneVO.setPlusInfo(loginVO.getId());
|
||||
|
||||
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
|
||||
AuthCertVO certVO = kmcCertChecker.authCertCheck(mberCertPhoneVO, request);
|
||||
|
||||
modelAndView.addObject("tr_cert", certVO.getTr_cert());
|
||||
modelAndView.addObject("tr_url", certVO.getTr_url());
|
||||
@ -5446,245 +5456,19 @@ public class EgovLoginController {
|
||||
*
|
||||
*/
|
||||
@RequestMapping("/web/cop/kmc/insertIPAjax.do")
|
||||
public String insertIPAjax(HttpServletRequest request, ModelMap model, @RequestParam Map<String, Object> commandMap,
|
||||
public String insertIPAjax(HttpServletRequest request, HttpServletResponse response, ModelMap model, @RequestParam Map<String, Object> commandMap,
|
||||
@ModelAttribute("searchVO") KmcVO kmcVO) throws Exception {
|
||||
|
||||
String errMessage = ""; // 에러메세지
|
||||
|
||||
String rec_cert = ""; // 결과값(암호화)
|
||||
String certNum = ""; // certNum
|
||||
|
||||
rec_cert = request.getParameter("rec_cert").trim();
|
||||
certNum = request.getParameter("certNum").trim();
|
||||
|
||||
kmcVO.setRecCert(rec_cert);
|
||||
kmcVO.setCertNum(certNum);
|
||||
// 파라미터 유효성 검증
|
||||
if (rec_cert.length() == 0 || certNum.length() == 0) {
|
||||
errMessage = "비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
// 변수선언
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
String k_certNum = ""; // 파라미터로 수신한 요청번호
|
||||
k_certNum = certNum;
|
||||
String date = ""; // 요청일시
|
||||
String CI = ""; // 연계정보(CI)
|
||||
String DI = ""; // 중복가입확인정보(DI)
|
||||
String phoneNo = ""; // 휴대폰번호
|
||||
String phoneCorp = ""; // 이동통신사
|
||||
String birthDay = ""; // 생년월일
|
||||
String gender = ""; // 성별
|
||||
String nation = ""; // 내국인
|
||||
String name = ""; // 성명
|
||||
String M_name = ""; // 미성년자 성명
|
||||
String M_birthDay = ""; // 미성년자 생년월일
|
||||
String M_Gender = ""; // 미성년자 성별
|
||||
String M_nation = ""; // 미성년자 내외국인
|
||||
String result = ""; // 결과값
|
||||
|
||||
String certMet = ""; // 인증방법
|
||||
String ip = ""; // ip주소
|
||||
String plusInfo = "";
|
||||
|
||||
String encPara = "";
|
||||
String encMsg1 = "";
|
||||
String encMsg2 = "";
|
||||
String msgChk = "";
|
||||
|
||||
com.icert.comm.secu.IcertSecuManager seed = new com.icert.comm.secu.IcertSecuManager();
|
||||
|
||||
// 02. 1차 복호화
|
||||
// 수신된 certNum를 이용하여 복호화
|
||||
rec_cert = seed.getDec(rec_cert, k_certNum);
|
||||
|
||||
// 03. 1차 파싱
|
||||
int inf1 = rec_cert.indexOf("/", 0);
|
||||
int inf2 = rec_cert.indexOf("/", inf1 + 1);
|
||||
|
||||
encPara = rec_cert.substring(0, inf1); // 암호화된 통합 파라미터
|
||||
encMsg1 = rec_cert.substring(inf1 + 1, inf2); // 암호화된 통합 파라미터의 Hash값
|
||||
|
||||
// 04. 위변조 검증
|
||||
encMsg2 = seed.getMsg(encPara);
|
||||
kmcVO.setEncMsg2(encMsg2);
|
||||
if (encMsg2.equals(encMsg1)) {
|
||||
msgChk = "Y";
|
||||
}
|
||||
|
||||
if (!"Y".equals(msgChk)) {
|
||||
errMessage = "비정상접근입니다.";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
// 05. 2차 복호화
|
||||
rec_cert = seed.getDec(encPara, k_certNum);
|
||||
kmcVO.setRecCert(rec_cert);
|
||||
// 06. 2차 파싱
|
||||
int info1 = rec_cert.indexOf("/", 0);
|
||||
int info2 = rec_cert.indexOf("/", info1 + 1);
|
||||
int info3 = rec_cert.indexOf("/", info2 + 1);
|
||||
int info4 = rec_cert.indexOf("/", info3 + 1);
|
||||
int info5 = rec_cert.indexOf("/", info4 + 1);
|
||||
int info6 = rec_cert.indexOf("/", info5 + 1);
|
||||
int info7 = rec_cert.indexOf("/", info6 + 1);
|
||||
int info8 = rec_cert.indexOf("/", info7 + 1);
|
||||
int info9 = rec_cert.indexOf("/", info8 + 1);
|
||||
int info10 = rec_cert.indexOf("/", info9 + 1);
|
||||
int info11 = rec_cert.indexOf("/", info10 + 1);
|
||||
int info12 = rec_cert.indexOf("/", info11 + 1);
|
||||
int info13 = rec_cert.indexOf("/", info12 + 1);
|
||||
int info14 = rec_cert.indexOf("/", info13 + 1);
|
||||
int info15 = rec_cert.indexOf("/", info14 + 1);
|
||||
int info16 = rec_cert.indexOf("/", info15 + 1);
|
||||
int info17 = rec_cert.indexOf("/", info16 + 1);
|
||||
int info18 = rec_cert.indexOf("/", info17 + 1);
|
||||
|
||||
certNum = rec_cert.substring(0, info1);
|
||||
kmcVO.setCertNum(certNum);
|
||||
date = rec_cert.substring(info1 + 1, info2);
|
||||
kmcVO.setDate(date);
|
||||
CI = rec_cert.substring(info2 + 1, info3);
|
||||
kmcVO.setCI(CI);
|
||||
phoneNo = rec_cert.substring(info3 + 1, info4);
|
||||
kmcVO.setPhoneNo(phoneNo);
|
||||
phoneCorp = rec_cert.substring(info4 + 1, info5);
|
||||
kmcVO.setPhoneCorp(phoneCorp);
|
||||
birthDay = rec_cert.substring(info5 + 1, info6);
|
||||
kmcVO.setBirthDay(birthDay);
|
||||
gender = rec_cert.substring(info6 + 1, info7);
|
||||
kmcVO.setGender(gender);
|
||||
nation = rec_cert.substring(info7 + 1, info8);
|
||||
kmcVO.setNation(nation);
|
||||
name = rec_cert.substring(info8 + 1, info9);
|
||||
kmcVO.setName(name);
|
||||
result = rec_cert.substring(info9 + 1, info10);
|
||||
kmcVO.setResult(result);
|
||||
certMet = rec_cert.substring(info10 + 1, info11);
|
||||
kmcVO.setCertMet(certMet);
|
||||
ip = rec_cert.substring(info11 + 1, info12);
|
||||
kmcVO.setIp(ip);
|
||||
M_name = rec_cert.substring(info12 + 1, info13);
|
||||
kmcVO.setMName(M_name);
|
||||
M_birthDay = rec_cert.substring(info13 + 1, info14);
|
||||
kmcVO.setMBirthDay(M_birthDay);
|
||||
M_Gender = rec_cert.substring(info14 + 1, info15);
|
||||
kmcVO.setMGender(M_Gender);
|
||||
M_nation = rec_cert.substring(info15 + 1, info16);
|
||||
kmcVO.setMNation(M_nation);
|
||||
plusInfo = rec_cert.substring(info16 + 1, info17);
|
||||
kmcVO.setPlusInfo(plusInfo);
|
||||
DI = rec_cert.substring(info17 + 1, info18);
|
||||
kmcVO.setDI(DI);
|
||||
|
||||
// 07. CI, DI 복호화
|
||||
CI = seed.getDec(CI, k_certNum);
|
||||
kmcVO.setCI(CI);
|
||||
DI = seed.getDec(DI, k_certNum);
|
||||
kmcVO.setDI(DI);
|
||||
|
||||
if ("Y".equals(result)) {
|
||||
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------
|
||||
String regex = "";
|
||||
if (certNum.length() == 0 || certNum.length() > 40) {
|
||||
errMessage = "요청번호 비정상.";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (date.length() != 14 || !paramChk(regex, date)) {
|
||||
errMessage = "요청일시";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if (certMet.length() != 1 || !paramChk(regex, certMet)) {
|
||||
errMessage = "본인인증방법 비정상" + certMet;
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if ((phoneNo.length() != 10 && phoneNo.length() != 11) || !paramChk(regex, phoneNo)) {
|
||||
errMessage = "휴대폰번호 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if (phoneCorp.length() != 3 || !paramChk(regex, phoneCorp)) {
|
||||
errMessage = "이동통신사 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (birthDay.length() != 8 || !paramChk(regex, birthDay)) {
|
||||
errMessage = "생년월일 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (gender.length() != 1 || !paramChk(regex, gender)) {
|
||||
errMessage = "성별 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (nation.length() != 1 || !paramChk(regex, nation)) {
|
||||
errMessage = "내/외국인 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[\\sA-Za-z가-<2D>R.,-]*";
|
||||
if (name.length() > 60 || !paramChk(regex, name)) {
|
||||
errMessage = "성명 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[A-Z]*";
|
||||
if (result.length() != 1 || !paramChk(regex, result)) {
|
||||
errMessage = "결과값 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
|
||||
regex = "[\\sA-Za-z가-?.,-]*";
|
||||
if (M_name.length() != 0) {
|
||||
if (M_name.length() > 60 || !paramChk(regex, M_name)) {
|
||||
errMessage = "미성년자 성명 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (M_birthDay.length() != 0) {
|
||||
if (M_birthDay.length() != 8 || !paramChk(regex, M_birthDay)) {
|
||||
errMessage = "미성년자 생년월일 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (M_Gender.length() != 0) {
|
||||
if (M_Gender.length() != 1 || !paramChk(regex, M_Gender)) {
|
||||
errMessage = "미성년자 성별 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
}
|
||||
|
||||
regex = "[0-9]*";
|
||||
if (M_nation.length() != 0) {
|
||||
if (M_nation.length() != 1 || !paramChk(regex, M_nation)) {
|
||||
errMessage = "미성년자 내/외국인 비정상";
|
||||
return returnPage(model, errMessage, kmcVO);
|
||||
}
|
||||
}
|
||||
//kmc 본인인증 결과처리
|
||||
kmcVO = kmcCertChecker.authCertResult(request, response, model);
|
||||
//kmc 본인인증 로그 처리
|
||||
AuthCertVO certVO = kmcCertChecker.insertCertLog(kmcVO, "IP등록");
|
||||
|
||||
LoginVO loginVO = new LoginVO();
|
||||
loginVO.setId(plusInfo);
|
||||
loginVO.setId(kmcVO.getPlusInfo());
|
||||
|
||||
loginVO = loginService.selectKMCInfo(loginVO);
|
||||
String userIp = EgovClntInfo.getClntIP(request);
|
||||
loginVO.setIp(ip);
|
||||
loginVO.setIp(kmcVO.getIp());
|
||||
|
||||
loginService.insertMberIp(loginVO);
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -29,12 +29,16 @@ import itn.let.cert.phone.service.CertPhoneService;
|
||||
import itn.let.cert.phone.service.MberCertPhoneVO;
|
||||
import itn.let.mjo.pay.service.KmcVO;
|
||||
import itn.let.uat.uia.service.AuthCertVO;
|
||||
import itn.let.uss.umt.service.EgovMberManageService;
|
||||
|
||||
@Component("KmcCertChecker")
|
||||
public class KmcCertChecker {
|
||||
|
||||
@Resource(name = "CertPhoneService")
|
||||
private CertPhoneService certPhoneService;
|
||||
|
||||
@Resource(name = "mberManageService")
|
||||
private EgovMberManageService mberManageService;
|
||||
|
||||
//회원가입 시 인증수단을 휴대폰 본인인증만 했을 경우 사용
|
||||
public AuthCertVO authCertCheck(
|
||||
@ -80,8 +84,8 @@ public class KmcCertChecker {
|
||||
|
||||
//02. 1차 암호화 (tr_cert 데이터변수 조합 후 암호화)
|
||||
String enc_tr_cert = "";
|
||||
// tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
|
||||
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"///////"+ plusInfo +"/"+ extendVar;
|
||||
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
|
||||
// tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"///////"+ plusInfo +"/"+ extendVar;
|
||||
enc_tr_cert = seed.getEnc(tr_cert, "");
|
||||
|
||||
//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
|
||||
@ -299,7 +303,7 @@ public class KmcCertChecker {
|
||||
}
|
||||
|
||||
//02. 1차 복호화
|
||||
rec_cert = seed.getDec(rec_cert, k_certNum);
|
||||
rec_cert = seed.getDec(rec_cert, "");
|
||||
|
||||
//03. 1차 파싱
|
||||
int inf1 = rec_cert.indexOf("/",0);
|
||||
@ -343,28 +347,30 @@ public class KmcCertChecker {
|
||||
int info17 = rec_cert.indexOf("/",info16+1);
|
||||
int info18 = rec_cert.indexOf("/",info17+1);
|
||||
|
||||
certNum = rec_cert.substring(0,info1);
|
||||
date = rec_cert.substring(info1+1,info2);
|
||||
CI = rec_cert.substring(info2+1,info3);
|
||||
phoneNo = rec_cert.substring(info3+1,info4);
|
||||
phoneCorp = rec_cert.substring(info4+1,info5);
|
||||
birth = rec_cert.substring(info5+1,info6);
|
||||
gender = rec_cert.substring(info6+1,info7);
|
||||
nation = rec_cert.substring(info7+1,info8);
|
||||
name = rec_cert.substring(info8+1,info9);
|
||||
result = rec_cert.substring(info9+1,info10);
|
||||
certMet = rec_cert.substring(info10+1,info11);
|
||||
ip = rec_cert.substring(info11+1,info12);
|
||||
reserve1 = rec_cert.substring(info12+1,info13);
|
||||
reserve2 = rec_cert.substring(info13+1,info14);
|
||||
reserve3 = rec_cert.substring(info14+1,info15);
|
||||
reserve4 = rec_cert.substring(info15+1,info16);
|
||||
plusInfo = rec_cert.substring(info16+1,info17);
|
||||
DI = rec_cert.substring(info17+1,info18);
|
||||
kmcVO.setCertNum (rec_cert.substring(0,info1));
|
||||
kmcVO.setDate (rec_cert.substring(info1+1,info2));
|
||||
//CI 복호화
|
||||
kmcVO.setCI (seed.getDec(rec_cert.substring(info2+1,info3), ""));
|
||||
kmcVO.setPhoneNo (rec_cert.substring(info3+1,info4));
|
||||
kmcVO.setPhoneCorp (rec_cert.substring(info4+1,info5));
|
||||
kmcVO.setBirthDay (rec_cert.substring(info5+1,info6));
|
||||
kmcVO.setGender (rec_cert.substring(info6+1,info7));
|
||||
kmcVO.setNation (rec_cert.substring(info7+1,info8));
|
||||
kmcVO.setName (rec_cert.substring(info8+1,info9));
|
||||
kmcVO.setResult (rec_cert.substring(info9+1,info10));
|
||||
kmcVO.setCertMet (rec_cert.substring(info10+1,info11));
|
||||
kmcVO.setIp (rec_cert.substring(info11+1,info12));
|
||||
kmcVO.setReserve1 (rec_cert.substring(info12+1,info13));
|
||||
kmcVO.setReserve2 (rec_cert.substring(info13+1,info14));
|
||||
kmcVO.setReserve3 (rec_cert.substring(info14+1,info15));
|
||||
kmcVO.setReserve4 (rec_cert.substring(info15+1,info16));
|
||||
kmcVO.setPlusInfo (rec_cert.substring(info16+1,info17));
|
||||
//DI 복호화
|
||||
kmcVO.setDI (seed.getDec(rec_cert.substring(info17+1,info18), ""));
|
||||
|
||||
//07. CI, DI 복호화
|
||||
CI = seed.getDec(CI, "");
|
||||
DI = seed.getDec(DI, "");
|
||||
// CI = seed.getDec(CI, "");
|
||||
// DI = seed.getDec(DI, "");
|
||||
|
||||
// ----------------------------------------------------------------------------------
|
||||
|
||||
@ -386,7 +392,27 @@ public class KmcCertChecker {
|
||||
return kmcVO;
|
||||
}
|
||||
|
||||
|
||||
public AuthCertVO insertCertLog(KmcVO kmcVO, String msg) throws Exception {
|
||||
//KMC 본인인증 로그 insert
|
||||
AuthCertVO certVO = new AuthCertVO();
|
||||
certVO.setMberId(kmcVO.getPlusInfo());
|
||||
certVO.setCertNum(kmcVO.getCertNum());
|
||||
certVO.setCertDate(kmcVO.getDate());
|
||||
certVO.setCertDi(kmcVO.getDI());
|
||||
certVO.setCertPhone(kmcVO.getPhoneNo());
|
||||
certVO.setCertNation(kmcVO.getNation());
|
||||
certVO.setCertName(kmcVO.getName());
|
||||
certVO.setCertResult(kmcVO.getResult());
|
||||
certVO.setCertType(msg);
|
||||
certVO.setCertIpaddr(kmcVO.getIp());
|
||||
certVO.setBirthDay(kmcVO.getBirthDay());
|
||||
certVO.setSexdstnCode(kmcVO.getGender());
|
||||
|
||||
//디비 테이블에 저장하기
|
||||
mberManageService.insertCertInfoLog(certVO);
|
||||
|
||||
return certVO;
|
||||
}
|
||||
|
||||
private String getDomain(HttpServletRequest request) {
|
||||
String serverNm = request.getScheme() + "://" + request.getServerName();
|
||||
|
||||
@ -344,6 +344,7 @@
|
||||
<input type="hidden" name="tr_cert" value = "<%=tr_cert%>">
|
||||
<input type="hidden" name="tr_url" value = "<%=tr_url%>">
|
||||
<input type="hidden" name="tr_add" value = "<%=tr_add%>">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
<input type="submit" value="본인인증서비스 요청" onclick= "javascript:openKMCISWindow();">
|
||||
</form>
|
||||
<BR>
|
||||
|
||||
@ -904,5 +904,6 @@ function listAddrTransHistAjax(pageNo) {
|
||||
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
||||
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
||||
<input type="hidden" name="mberId" id="mberId" value= "${userId}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
|
||||
|
||||
@ -1883,6 +1883,7 @@ function actionLogin_end(){
|
||||
<input type="hidden" name="tr_cert" id="tr_certHeader" value = "">
|
||||
<input type="hidden" name="tr_url" id="tr_urlHeader" value = "">
|
||||
<input type="hidden" name="tr_add" id="tr_addHeader" value = "">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
|
||||
<form name="cmpChangeForm" id="cmpChangeForm" method="post" action="#">
|
||||
|
||||
@ -90,6 +90,7 @@ function openMberSecessionInfo(key){
|
||||
<input type="hidden" id="tr_url" name="tr_url" value = "${certVO.tr_url}">
|
||||
<input type="hidden" id="tr_add" name="tr_add" value = "${certVO.tr_add}">
|
||||
<input type="hidden" id="tr_cert" name="tr_cert" value = "${certVO.tr_cert}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
|
||||
<!-- ars 본인인증 Form -->
|
||||
|
||||
@ -821,5 +821,6 @@ function listAddrTransHistAjax(pageNo) {
|
||||
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
||||
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
||||
<input type="hidden" name="mberId" id="mberId" value= "${userId}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
|
||||
|
||||
@ -860,6 +860,7 @@ function fnAddUserView() {
|
||||
<input type="hidden" name="tr_cert" id="tr_cert" value = "${tr_cert}">
|
||||
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
||||
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
<input type="hidden" name="mberNm" id="mberNm" value="">
|
||||
<input type="hidden" name="moblphonNo" id="moblphonNo" value="">
|
||||
<input type="hidden" name="mberId" id="mberId" value="">
|
||||
|
||||
@ -129,6 +129,7 @@ function fnAddUserView() {
|
||||
<input type="hidden" name="tr_cert" id="tr_cert" value = "${tr_cert}">
|
||||
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
||||
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
<input type="hidden" name="mberNm" id="mberNm" value="">
|
||||
<input type="hidden" name="moblphonNo" id="moblphonNo" value="">
|
||||
<input type="hidden" name="mberId" id="mberId" value="">
|
||||
|
||||
@ -644,6 +644,7 @@
|
||||
<input type="hidden" name="tr_cert" id="tr_cert" value = "${tr_cert}">
|
||||
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
||||
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
<form name="arsForm" method="post" action="#">
|
||||
<input type="hidden" id="phoneNumber" name="phoneNumber" value = "">
|
||||
|
||||
@ -707,6 +707,7 @@
|
||||
<input type="hidden" name="tr_cert" id="tr_cert" value = "${tr_cert}">
|
||||
<input type="hidden" name="tr_url" id="tr_url" value = "${tr_url}">
|
||||
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
<form name="arsForm" method="post" action="#">
|
||||
<input type="hidden" id="phoneNumber" name="phoneNumber" value = "">
|
||||
|
||||
@ -505,6 +505,7 @@ function changeValueWork(obj){
|
||||
<input type="hidden" name="tr_cert" id="tr_cert" value="">
|
||||
<input type="hidden" name="tr_url" id="tr_url" value="">
|
||||
<input type="hidden" name="tr_add" id="tr_add" value="">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
|
||||
<!-- 마이페이지 - 회원정보 변경 -->
|
||||
|
||||
@ -218,6 +218,7 @@ function updateUserInfo(){
|
||||
<input type="hidden" name="tr_cert" id="tr_cert" value="">
|
||||
<input type="hidden" name="tr_url" id="tr_url" value="">
|
||||
<input type="hidden" name="tr_add" id="tr_add" value="">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
|
||||
<!-- 마이페이지 - 회원정보 변경 -->
|
||||
|
||||
@ -304,6 +304,7 @@ function callTo() {
|
||||
<input type="hidden" id="tr_url" name="tr_url" value = "${certVO.tr_url}">
|
||||
<input type="hidden" id="tr_add" name="tr_add" value = "${certVO.tr_add}">
|
||||
<input type="hidden" id="tr_cert" name="tr_cert" value = "${certVO.tr_cert}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
|
||||
<form id="levelForm" name="levelForm" method="post">
|
||||
|
||||
@ -97,6 +97,7 @@ function openMberSecessionInfo(key){
|
||||
<input type="hidden" id="tr_url" name="tr_url" value = "${certVO.tr_url}">
|
||||
<input type="hidden" id="tr_add" name="tr_add" value = "${certVO.tr_add}">
|
||||
<input type="hidden" id="tr_cert" name="tr_cert" value = "${certVO.tr_cert}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
|
||||
<!-- ars 본인인증 Form -->
|
||||
|
||||
@ -704,6 +704,7 @@ function linkPage(pageNo){
|
||||
<input type="hidden" id="tr_url" name="tr_url" value = "${certVO.tr_url}">
|
||||
<input type="hidden" id="tr_add" name="tr_add" value = "${certVO.tr_add}">
|
||||
<input type="hidden" id="tr_cert" name="tr_cert" value = "${certVO.tr_cert}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
<form name="listForm" action="<c:url value='/web/user/mberSecureLogin.do'/>" method="post">
|
||||
<input name="pageIndex" type="hidden" value="<c:out value='${mberCertLoginLogVO.pageIndex}'/>"/>
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<br><br>
|
||||
<%-- <br><br>
|
||||
[복호화 후 수신값] <br>
|
||||
<br>
|
||||
<table cellpadding=1 cellspacing=1>
|
||||
@ -120,6 +120,6 @@
|
||||
rec_cert : ${kmcVO.recCert}<br>
|
||||
<br>
|
||||
<br>
|
||||
<a href="http://www.munjaon.co.kr/publish/kmc/kmcis_web_sample_step01.jsp">[다시 테스트]</a>
|
||||
<a href="http://www.munjaon.co.kr/publish/kmc/kmcis_web_sample_step01.jsp">[다시 테스트]</a> --%>
|
||||
</body>
|
||||
</html>
|
||||
@ -863,6 +863,7 @@ function nameChk(target){
|
||||
<input type="hidden" id="tr_url" name="tr_url" value = "${tr_url}">
|
||||
<input type="hidden" id="tr_add" name="tr_add" value = "${tr_add}">
|
||||
<input type="hidden" id="tr_cert" name="tr_cert" value = "${tr_cert}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
|
||||
<!-- ars 본인인증 Form -->
|
||||
|
||||
@ -408,6 +408,7 @@ function guideTab(obj){
|
||||
<input type="hidden" id="tr_url" name="tr_url" value = "${tr_url}">
|
||||
<input type="hidden" id="tr_add" name="tr_add" value = "${tr_add}">
|
||||
<input type="hidden" id="tr_cert" name="tr_cert" value = "${tr_cert}">
|
||||
<input type="hidden" name="tr_ver" value = "V2">
|
||||
</form>
|
||||
|
||||
<!-- ars 본인인증 Form -->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user