웹서버 교체, 세션서버 추가, 본인인증 수정

- http1.1 -> http2.0 웹서버 교체
 - valkey 추가
 - 본인인증 모듈화
This commit is contained in:
leejunho 2025-07-21 11:08:40 +09:00
parent a68d957162
commit 5bd4c8ba37
35 changed files with 688 additions and 856 deletions

53
pom.xml
View File

@ -54,28 +54,8 @@
<repositories> <repositories>
<repository> <repository>
<id>mvn2</id> <id>maven-public</id>
<url>https://repo1.maven.org/maven2/</url> <url>http://nexus.iten.co.kr:9999/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>egovframe</id>
<url>https://www.egovframe.go.kr/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>egovframe2</id>
<url>http://maven.egovframe.kr:8080/maven/</url>
<releases> <releases>
<enabled>true</enabled> <enabled>true</enabled>
</releases> </releases>
@ -83,12 +63,6 @@
<enabled>false</enabled> <enabled>false</enabled>
</snapshots> </snapshots>
</repository> </repository>
<!-- Komoran 형태소분석기 -->
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<!-- Komoran 형태소분석기 -->
</repositories> </repositories>
<dependencies> <dependencies>
@ -568,7 +542,28 @@
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!-- Komoran 형태소 분석기 -->
<!-- valkey -->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.8.11.RELEASE</version>
</dependency>
<!-- valkey -->
</dependencies> </dependencies>
<build> <build>

View File

@ -0,0 +1,39 @@
package itn.com.cmm.session;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800) // 세션 timeout 설정
public class HttpSessionConfig {
@Value("#{globalSettings['Globals.valkey.ip']}")
private String ip;
@Value("#{globalSettings['Globals.valkey.port']}")
private int port;
@Value("#{globalSettings['Globals.valkey.password']}")
private String password;
@Bean
public JedisConnectionFactory connectionFactory() {
JedisConnectionFactory factory = new JedisConnectionFactory();
factory.setHostName(this.ip);
factory.setPort(this.port);
factory.setPassword(this.password);
factory.afterPropertiesSet();
return factory;
}
@Bean
public RedisTemplate<Object, Object> redisTemplate() {
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(connectionFactory());
return template;
}
}

View File

@ -2,7 +2,10 @@ package itn.let.cert.phone.service;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletRequest;
import itn.let.mail.service.StatusResponse; import itn.let.mail.service.StatusResponse;
import itn.let.uat.uia.service.AuthCertVO;
import itn.let.uat.uia.web.SendLogVO; import itn.let.uat.uia.web.SendLogVO;
public interface CertPhoneService { public interface CertPhoneService {
@ -34,9 +37,9 @@ public interface CertPhoneService {
public StatusResponse selectSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO); public StatusResponse selectSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO);
public MberCertPhoneVO selectCertUrlCode(MberCertPhoneVO mberCertPhoneVO) throws Exception;
public StatusResponse insertCertLog(HttpServletRequest request) throws Exception;

View File

@ -34,8 +34,17 @@ public class MberCertPhoneVO extends UserDefaultVO{
private String checkNo; private String checkNo;
private String trUrl;
private String urlCode;
private String url;
private String host;
private String name = "";
private String phoneNo = "";
private String phoneCorp = "";
private String birthDay = "";
private String gender = "";
private String nation = "0";
private String plusInfo = "";
public String getMberId() { public String getMberId() {
@ -74,6 +83,76 @@ public class MberCertPhoneVO extends UserDefaultVO{
public void setCheckNo(String checkNo) { public void setCheckNo(String checkNo) {
this.checkNo = checkNo; this.checkNo = checkNo;
} }
public String getUrlCode() {
return urlCode;
}
public void setUrlCode(String urlCode) {
this.urlCode = urlCode;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhoneNo() {
return phoneNo;
}
public void setPhoneNo(String phoneNo) {
this.phoneNo = phoneNo;
}
public String getPhoneCorp() {
return phoneCorp;
}
public void setPhoneCorp(String phoneCorp) {
this.phoneCorp = phoneCorp;
}
public String getBirthDay() {
return birthDay;
}
public void setBirthDay(String birthDay) {
this.birthDay = birthDay;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getNation() {
return nation;
}
public void setNation(String nation) {
this.nation = nation;
}
public String getPlusInfo() {
return plusInfo;
}
public void setPlusInfo(String plusInfo) {
this.plusInfo = plusInfo;
}
public String getTrUrl() {
return trUrl;
}
public void setTrUrl(String trUrl) {
this.trUrl = trUrl;
}

View File

@ -6,6 +6,7 @@ import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO; import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import itn.let.cert.phone.service.MberCertPhoneVO; import itn.let.cert.phone.service.MberCertPhoneVO;
import itn.let.uat.uia.service.AuthCertVO;
@Repository("CertPhoneDAO") @Repository("CertPhoneDAO")
public class CertPhoneDAO extends EgovAbstractDAO { public class CertPhoneDAO extends EgovAbstractDAO {
@ -38,4 +39,12 @@ public class CertPhoneDAO extends EgovAbstractDAO {
public int countSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO) { public int countSysMsgLogCheck(MberCertPhoneVO mberCertPhoneVO) {
return (int) select("mberCertPhoneVO.countSysMsgLogCheck", mberCertPhoneVO); return (int) select("mberCertPhoneVO.countSysMsgLogCheck", mberCertPhoneVO);
} }
public MberCertPhoneVO selectCertUrlCode(MberCertPhoneVO mberCertPhoneVO) {
return (MberCertPhoneVO) select("certPhoneDAO.selectCertUrlCode", mberCertPhoneVO);
}
public void insertCertLog(AuthCertVO authCertVO) throws Exception {
insert("certPhoneDAO.insertCertLog", authCertVO);
}
} }

View File

@ -1,17 +1,25 @@
package itn.let.cert.phone.service.impl; package itn.let.cert.phone.service.impl;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
import java.util.List; import java.util.List;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import itn.com.cmm.LoginVO;
import itn.com.cmm.util.IpUtil;
import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.cert.phone.service.CertPhoneService; import itn.let.cert.phone.service.CertPhoneService;
import itn.let.cert.phone.service.MberCertPhoneVO; import itn.let.cert.phone.service.MberCertPhoneVO;
import itn.let.mail.service.StatusResponse; import itn.let.mail.service.StatusResponse;
import itn.let.uat.uia.service.AuthCertVO;
@Service("CertPhoneService") @Service("CertPhoneService")
public class CertPhoneServiceImpl extends EgovAbstractServiceImpl implements CertPhoneService { public class CertPhoneServiceImpl extends EgovAbstractServiceImpl implements CertPhoneService {
@ -99,6 +107,35 @@ public class CertPhoneServiceImpl extends EgovAbstractServiceImpl implements Cer
return new StatusResponse(HttpStatus.OK, "", LocalDateTime.now()); return new StatusResponse(HttpStatus.OK, "", LocalDateTime.now());
} }
@Override
public MberCertPhoneVO selectCertUrlCode(MberCertPhoneVO mberCertPhoneVO) {
return certPhoneDAO.selectCertUrlCode(mberCertPhoneVO);
}
@Override
public StatusResponse insertCertLog(HttpServletRequest request) throws Exception {
try {
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
//KMC 본인인증 로그 insert
AuthCertVO authCertVO = new AuthCertVO();
authCertVO.setMberId(userId);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
authCertVO.setCertDate(sdf.format(new Date()));
authCertVO.setCertType("본인인증 시도");
authCertVO.setCertIpaddr(IpUtil.getClientIP(request));
certPhoneDAO.insertCertLog(authCertVO);
} catch (Exception e) {
System.out.println("본인인증 시도 로그 실패");
}
return new StatusResponse(HttpStatus.OK, "", LocalDateTime.now());
}
} }

View File

@ -0,0 +1,45 @@
package itn.let.cert.phone.web;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import itn.com.cmm.LoginVO;
import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.cert.phone.service.CertPhoneService;
import itn.let.cert.phone.service.MberCertPhoneVO;
import itn.let.mail.service.StatusResponse;
import itn.let.mjo.msg.service.MjonMsgVO;
import itn.let.mjo.msgdata.service.MjonMsgDataService;
import itn.let.mjo.msgdata.service.MjonMsgReturnVO;
import itn.let.uat.uia.service.AuthCertVO;
import itn.let.uat.uia.web.SendLogVO;
@Controller
public class CertPhoneWebController {
@Resource(name = "CertPhoneService")
private CertPhoneService certPhoneService;
@RequestMapping(value = {"/web/cert/log/insertCertLog.do"})
public ResponseEntity<StatusResponse> insertCertLog(HttpServletRequest request) throws Exception {
return ResponseEntity.ok().body(new StatusResponse(HttpStatus.OK, certPhoneService.insertCertLog(request), LocalDateTime.now()));
}
}

View File

@ -21,6 +21,7 @@ import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import itn.com.cmm.EgovMessageSource; import itn.com.cmm.EgovMessageSource;
import itn.com.cmm.LoginVO; import itn.com.cmm.LoginVO;
import itn.com.utl.fcc.service.EgovStringUtil; import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.cert.phone.service.MberCertPhoneVO;
import itn.let.fax.addr.service.FaxAddrGroupService; import itn.let.fax.addr.service.FaxAddrGroupService;
import itn.let.fax.addr.service.FaxAddrGroupVO; import itn.let.fax.addr.service.FaxAddrGroupVO;
import itn.let.fax.addr.service.FaxAddrService; import itn.let.fax.addr.service.FaxAddrService;
@ -52,6 +53,9 @@ public class FaxAddrGroupController {
@Resource(name = "mberManageService") @Resource(name = "mberManageService")
private EgovMberManageService mberManageService; private EgovMberManageService mberManageService;
@Resource(name = "KmcCertChecker")
private KmcCertChecker kmcCertCheck;
/** /**
* 팩스 주소록 그룹 리스트 * 팩스 주소록 그룹 리스트
@ -544,21 +548,25 @@ public class FaxAddrGroupController {
modelAndView.setViewName("jsonView"); modelAndView.setViewName("jsonView");
try { try {
KmcCertChecker kmcCertCheck = new KmcCertChecker(); // KmcCertChecker kmcCertCheck = new KmcCertChecker();
//
// mberId null일경우 "" // // mberId null일경우 ""
mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId())); // mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
//
// kmc 본인인증 /개발 서버 구분 // // kmc 본인인증 /개발 서버 구분
String serverNm = ""; // String serverNm = "";
if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) { // if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
serverNm = request.getScheme() + "://219.240.88.15:8095"; // serverNm = request.getScheme() + "://219.240.88.15:8095";
} else { // } else {
serverNm = request.getScheme() + "://www.munjaon.co.kr"; // serverNm = request.getScheme() + "://www.munjaon.co.kr";
} // }
AuthCertVO certVO = kmcCertCheck.authCertCheckEight(serverNm + "/web/cop/kmc/authRequestAddrSubmitAjax.do",
mberManageVO.getMberId()); MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAddrSubmitAjax.do");
mberCertPhoneVO.setPlusInfo(mberManageVO.getMberId());
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
modelAndView.addObject("tr_cert", certVO.getTr_cert()); modelAndView.addObject("tr_cert", certVO.getTr_cert());
modelAndView.addObject("tr_url", certVO.getTr_url()); modelAndView.addObject("tr_url", certVO.getTr_url());

View File

@ -25,6 +25,7 @@ import itn.com.cmm.EgovMessageSource;
import itn.com.cmm.LoginVO; import itn.com.cmm.LoginVO;
import itn.com.cmm.util.RedirectUrlMaker; import itn.com.cmm.util.RedirectUrlMaker;
import itn.com.utl.fcc.service.EgovStringUtil; import itn.com.utl.fcc.service.EgovStringUtil;
import itn.let.cert.phone.service.MberCertPhoneVO;
import itn.let.mjo.addr.service.AddrGroupService; import itn.let.mjo.addr.service.AddrGroupService;
import itn.let.mjo.addr.service.AddrGroupVO; import itn.let.mjo.addr.service.AddrGroupVO;
import itn.let.mjo.addr.service.AddrService; import itn.let.mjo.addr.service.AddrService;
@ -72,6 +73,9 @@ public class AddrGroupController {
@Resource(name = "mberManageService") @Resource(name = "mberManageService")
private EgovMberManageService mberManageService; private EgovMberManageService mberManageService;
@Resource(name = "KmcCertChecker")
private KmcCertChecker kmcCertCheck;
/** /**
* 주소록 그룹 리스트 * 주소록 그룹 리스트
* @param addrGroupVO * @param addrGroupVO
@ -933,21 +937,24 @@ public class AddrGroupController {
modelAndView.setViewName("jsonView"); modelAndView.setViewName("jsonView");
try { try {
KmcCertChecker kmcCertCheck = new KmcCertChecker(); // KmcCertChecker kmcCertCheck = new KmcCertChecker();
//
// mberId null일경우 "" // // mberId null일경우 ""
mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId())); // mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
//
// kmc 본인인증 /개발 서버 구분 // // kmc 본인인증 /개발 서버 구분
String serverNm = ""; // String serverNm = "";
if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) { // if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
serverNm = request.getScheme() + "://219.240.88.15:8095"; // serverNm = request.getScheme() + "://219.240.88.15:8095";
} else { // } else {
serverNm = request.getScheme() + "://www.munjaon.co.kr"; // serverNm = request.getScheme() + "://www.munjaon.co.kr";
} // }
AuthCertVO certVO = kmcCertCheck.authCertCheckEight(serverNm + "/web/cop/kmc/authRequestAddrSubmitAjax.do", MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
mberManageVO.getMberId()); mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAddrSubmitAjax.do");
mberCertPhoneVO.setPlusInfo(mberManageVO.getMberId());
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
modelAndView.addObject("tr_cert", certVO.getTr_cert()); modelAndView.addObject("tr_cert", certVO.getTr_cert());
modelAndView.addObject("tr_url", certVO.getTr_url()); modelAndView.addObject("tr_url", certVO.getTr_url());

View File

@ -894,11 +894,11 @@ public class TestController {
serverNm = request.getScheme() + "://munjaon.co.kr"; serverNm = request.getScheme() + "://munjaon.co.kr";
} }
AuthCertVO certVO = kmcCertCheck.authCertCheck(serverNm + "/web/cop/kmc/authRequestAjax.do"); // AuthCertVO certVO = kmcCertCheck.authCertCheck(serverNm + "/web/cop/kmc/authRequestAjax.do");
model.addAttribute("tr_cert", certVO.getTr_cert()); // model.addAttribute("tr_cert", certVO.getTr_cert());
model.addAttribute("tr_url", certVO.getTr_url()); // model.addAttribute("tr_url", certVO.getTr_url());
model.addAttribute("tr_add", certVO.getTr_add()); // model.addAttribute("tr_add", certVO.getTr_add());
} }

View File

@ -252,6 +252,10 @@ public class EgovLoginController {
@Resource(name = "CertIpService") @Resource(name = "CertIpService")
private CertIpService certIpService; private CertIpService certIpService;
@Resource(name = "KmcCertChecker")
private KmcCertChecker kmcCertCheck;
private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class); private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class);
/* 문자온 사용자 로그인 시작 */ /* 문자온 사용자 로그인 시작 */
@ -319,21 +323,21 @@ public class EgovLoginController {
// 핸드폰인증만 사용할 // 핸드폰인증만 사용할
if (joinSettingVO.getJoinCertType().equals("M")) { if (joinSettingVO.getJoinCertType().equals("M")) {
KmcCertChecker kmcCertCheck = new KmcCertChecker(); // KmcCertChecker kmcCertCheck = new KmcCertChecker();
//
// kmc 본인인증 /개발 서버 구분 // String serverNm = request.getScheme() + "://" + request.getServerName();
String serverNm = ""; // if(request.getServerPort() != 80
if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) { // && request.getServerPort() != 443) {
serverNm = request.getScheme() + "://219.240.88.15:8095"; // serverNm += ":" + request.getServerPort();
}else if(request.getRequestURL().toString().contains("www.")){ // }
serverNm = request.getScheme() + "://www.munjaon.co.kr"; //
} // AuthCertVO certVO = kmcCertCheck.authCertCheck(serverNm + "/web/cop/kmc/authRequestAjax.do");
else { //
serverNm = request.getScheme() + "://munjaon.co.kr";
} MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAjax.do");
AuthCertVO certVO = kmcCertCheck.authCertCheck(serverNm + "/web/cop/kmc/authRequestAjax.do"); AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
model.addAttribute("tr_cert", certVO.getTr_cert()); model.addAttribute("tr_cert", certVO.getTr_cert());
model.addAttribute("tr_url", certVO.getTr_url()); model.addAttribute("tr_url", certVO.getTr_url());
model.addAttribute("tr_add", certVO.getTr_add()); model.addAttribute("tr_add", certVO.getTr_add());
@ -363,19 +367,29 @@ public class EgovLoginController {
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView"); modelAndView.setViewName("jsonView");
KmcCertChecker kmcCertCheck = new KmcCertChecker(); // KmcCertChecker kmcCertCheck = new KmcCertChecker();
// kmc 본인인증 /개발 서버 구분 // kmc 본인인증 /개발 서버 구분
String serverNm = ""; // String serverNm = "";
if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) { // if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
serverNm = request.getScheme() + "://219.240.88.15:8095"; // serverNm = request.getScheme() + "://219.240.88.15:8095";
} else { // } else {
serverNm = request.getScheme() + "://www.munjaon.co.kr"; // serverNm = request.getScheme() + "://www.munjaon.co.kr";
} // }
MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAjax.do");
mberCertPhoneVO.setName(mberManageVO.getMberNm());
mberCertPhoneVO.setPhoneNo(mberManageVO.getMoblphonNo());
mberCertPhoneVO.setGender(mberManageVO.getSexdstnCode());
mberCertPhoneVO.setNation(mberManageVO.getNationality());
mberCertPhoneVO.setBirthDay(mberManageVO.getBirth());
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
AuthCertVO certVO = kmcCertCheck.authCertCheckTwo(serverNm + "/web/cop/kmc/authRequestAjax.do", // AuthCertVO certVO = kmcCertCheck.authCertCheckTwo(serverNm + "/web/cop/kmc/authRequestAjax.do",
mberManageVO.getMberNm(), mberManageVO.getMoblphonNo(), mberManageVO.getSexdstnCode(), // mberManageVO.getMberNm(), mberManageVO.getMoblphonNo(), mberManageVO.getSexdstnCode(),
mberManageVO.getNationality(), mberManageVO.getBirth()); // mberManageVO.getNationality(), mberManageVO.getBirth());
System.out.println("++++++++++++ 세션체크222 ::: " + (MberManageVO) session.getAttribute("mberSession")); System.out.println("++++++++++++ 세션체크222 ::: " + (MberManageVO) session.getAttribute("mberSession"));
@ -3991,26 +4005,42 @@ public class EgovLoginController {
// modelAndView.addObject("status", "fail"); // modelAndView.addObject("status", "fail");
try { try {
KmcCertChecker kmcCertCheck = new KmcCertChecker(); // KmcCertChecker kmcCertCheck = new KmcCertChecker();
//
// mberId null일경우 "" // // mberId null일경우 ""
mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId())); // mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
//
// kmc 본인인증 /개발 서버 구분 // // kmc 본인인증 /개발 서버 구분
String serverNm = ""; // String serverNm = "";
if (request.getServerName().contains("119.193.215.98") || request.getServerName().contains("localhost")) { // if (request.getServerName().contains("119.193.215.98") || request.getServerName().contains("localhost")) {
serverNm = request.getScheme() + "://119.193.215.98:8095"; // serverNm = request.getScheme() + "://119.193.215.98:8095";
} else { // } else {
serverNm = request.getScheme() + "://www.munjaon.co.kr"; // serverNm = request.getScheme() + "://www.munjaon.co.kr";
} // }
String authRUrl = serverNm + mberManageVO.getAuthRUrl(); // String authRUrl = serverNm + mberManageVO.getAuthRUrl();
//
// AuthCertVO certVO = kmcCertCheck.authCertCheckThree(authRUrl, mberManageVO);
//
//
MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestFindIdPwAjax.do");
mberCertPhoneVO.setName(mberManageVO.getMberNm());
mberCertPhoneVO.setPhoneNo(mberManageVO.getMoblphonNo());
String plusInfo = "";
plusInfo += mberManageVO.getMberId();
if(StringUtils.isNotEmpty(mberManageVO.getPassword()))
{
plusInfo = plusInfo + ",,," + mberManageVO.getPassword();
}
mberCertPhoneVO.setPlusInfo(plusInfo);
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
AuthCertVO certVO = kmcCertCheck.authCertCheckThree(authRUrl, mberManageVO);
modelAndView.addObject("tr_cert", certVO.getTr_cert()); modelAndView.addObject("tr_cert", certVO.getTr_cert());
modelAndView.addObject("tr_url", certVO.getTr_url()); modelAndView.addObject("tr_url", certVO.getTr_url());
modelAndView.addObject("tr_add", certVO.getTr_add()); modelAndView.addObject("tr_add", certVO.getTr_add());
modelAndView.addObject("result", "success"); modelAndView.addObject("result", "success");
} catch (Exception e) { } catch (Exception e) {
@ -5386,28 +5416,16 @@ public class EgovLoginController {
// 팝업에 넣을 이름과 핸드폰번호 조회 // 팝업에 넣을 이름과 핸드폰번호 조회
LoginVO KMCInfoVO = loginService.selectKMCInfo(loginVO); LoginVO KMCInfoVO = loginService.selectKMCInfo(loginVO);
// KMC 팝업 오픈 준비 MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
KmcCertChecker kmcCertCheck = new KmcCertChecker(); mberCertPhoneVO.setTrUrl("/web/cop/kmc/insertIPAjax.do");
String mberNm = KMCInfoVO.getMberNm(); mberCertPhoneVO.setName("c".equals(KMCInfoVO.getDept()) ? KMCInfoVO.getManagerNm() : KMCInfoVO.getMberNm());
if ("c".equals(KMCInfoVO.getDept())) { mberCertPhoneVO.setBirthDay(KMCInfoVO.getBirth());
mberNm = KMCInfoVO.getManagerNm(); mberCertPhoneVO.setPhoneNo(KMCInfoVO.getMoblphonNo());
} mberCertPhoneVO.setGender(KMCInfoVO.getSexdstnCode());
String birth = KMCInfoVO.getBirth(); mberCertPhoneVO.setNation(KMCInfoVO.getNationality());
String moblphonNo = KMCInfoVO.getMoblphonNo(); mberCertPhoneVO.setPlusInfo(loginVO.getId());
String sexdstnCode = KMCInfoVO.getSexdstnCode();
String nationality = KMCInfoVO.getNationality(); AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
String id = loginVO.getId();
// kmc 본인인증 /개발 서버 구분
String serverNm = "";
if (request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
serverNm = request.getScheme() + "://219.240.88.15:8095";
} else {
serverNm = request.getScheme() + "://www.munjaon.co.kr";
}
AuthCertVO certVO = kmcCertCheck.authCertCheckFour(serverNm + "/web/cop/kmc/insertIPAjax.do", mberNm,
moblphonNo, sexdstnCode, nationality, birth, id);
modelAndView.addObject("tr_cert", certVO.getTr_cert()); modelAndView.addObject("tr_cert", certVO.getTr_cert());
modelAndView.addObject("tr_url", certVO.getTr_url()); modelAndView.addObject("tr_url", certVO.getTr_url());
@ -6121,7 +6139,7 @@ public class EgovLoginController {
modelAndView.addObject("msg", msg); modelAndView.addObject("msg", msg);
return modelAndView; return modelAndView;
} }

View File

@ -48,6 +48,7 @@ import itn.let.cert.ip.service.CertIpService;
import itn.let.cert.ip.service.CertLoginLogService; import itn.let.cert.ip.service.CertLoginLogService;
import itn.let.cert.ip.service.MberCertIpVO; import itn.let.cert.ip.service.MberCertIpVO;
import itn.let.cert.ip.service.MberCertLoginLogVO; import itn.let.cert.ip.service.MberCertLoginLogVO;
import itn.let.cert.phone.service.MberCertPhoneVO;
import itn.let.fax.user.service.FaxGroupDataVO; import itn.let.fax.user.service.FaxGroupDataVO;
import itn.let.fax.user.service.FaxService; import itn.let.fax.user.service.FaxService;
import itn.let.kakao.user.sent.service.KakaoSentService; import itn.let.kakao.user.sent.service.KakaoSentService;
@ -181,6 +182,9 @@ public class EgovMypageController {
@Resource(name = "CertIpService") @Resource(name = "CertIpService")
private CertIpService certIpService; private CertIpService certIpService;
@Resource(name = "KmcCertChecker")
private KmcCertChecker kmcCertCheck;
/** /**
* 마이페이지 비밀번호 변경 * 마이페이지 비밀번호 변경
*/ */
@ -1447,17 +1451,21 @@ public class EgovMypageController {
// 요청페이지가 개인정보 변경 펴이지 일경우 // 요청페이지가 개인정보 변경 펴이지 일경우
if(userManageVO.getUserTy().equals("userInfoCh")){ if(userManageVO.getUserTy().equals("userInfoCh")){
//System.out.println("휴대폰 인증 ***********************************************"); //System.out.println("휴대폰 인증 ***********************************************");
KmcCertChecker kmcCertCheck = new KmcCertChecker(); // KmcCertChecker kmcCertCheck = new KmcCertChecker();
//
// //kmc 본인인증 /개발 서버 구분
// String serverNm = "";
// if(request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
// serverNm = request.getScheme() + "://219.240.88.15:8095";
// }else{
// serverNm = request.getScheme() + "://www.munjaon.co.kr";
// }
//kmc 본인인증 /개발 서버 구분 MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
String serverNm = ""; mberCertPhoneVO.setTrUrl("/web/user/selectKmcMberInfoAjax.do");
if(request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) { mberCertPhoneVO.setPlusInfo(loginVO.getId());
serverNm = request.getScheme() + "://219.240.88.15:8095";
}else{
serverNm = request.getScheme() + "://www.munjaon.co.kr";
}
AuthCertVO certVO = kmcCertCheck.authCertCheckFive(serverNm + "/web/user/selectKmcMberInfoAjax.do", loginVO.getId()); AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
modelAndView.addObject("certVO", certVO); modelAndView.addObject("certVO", certVO);
} }
@ -1912,18 +1920,26 @@ public class EgovMypageController {
name = loginVO.getManagerNm(); name = loginVO.getManagerNm();
} }
KmcCertChecker kmcCertCheck = new KmcCertChecker(); // KmcCertChecker kmcCertCheck = new KmcCertChecker();
//
//kmc 본인인증 /개발 서버 구분 // //kmc 본인인증 /개발 서버 구분
String serverNm = ""; // String serverNm = "";
if(request.getServerName().contains("119.193.215.98") || request.getServerName().contains("localhost")) { // if(request.getServerName().contains("119.193.215.98") || request.getServerName().contains("localhost")) {
serverNm = request.getScheme() + "://119.193.215.98:8882"; // serverNm = request.getScheme() + "://119.193.215.98:8882";
}else{ // }else{
serverNm = request.getScheme() + "://www.munjaon.co.kr"; // serverNm = request.getScheme() + "://www.munjaon.co.kr";
} // }
//AuthCertVO certVO = kmcCertCheck.authCertCheckSix(serverNm + "/web/user/insertPhoneSendNumber.do", mjonMsgVO.getUserId(), mjonMsgVO.getCallFrom(), name); //AuthCertVO certVO = kmcCertCheck.authCertCheckSix(serverNm + "/web/user/insertPhoneSendNumber.do", mjonMsgVO.getUserId(), mjonMsgVO.getCallFrom(), name);
AuthCertVO certVO = kmcCertCheck.authCertCheckSix(serverNm + "/web/user/selectPhoneNumberCertChkAjax.do", mjonMsgVO.getUserId(), mjonMsgVO.getCallFrom(), "", mjonMsgVO.getMyNameFlag());
MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
mberCertPhoneVO.setTrUrl("/web/user/selectPhoneNumberCertChkAjax.do");
mberCertPhoneVO.setName("");
mberCertPhoneVO.setPhoneNo(mjonMsgVO.getCallFrom());
mberCertPhoneVO.setPlusInfo(mjonMsgVO.getUserId()+ "§" + mjonMsgVO.getMyNameFlag());
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
modelAndView.addObject("certVO", certVO); modelAndView.addObject("certVO", certVO);
/*}else if(mjonMsgVO.getPhmAuthType().equals("02") || mjonMsgVO.getPhmAuthType() == "02") { // ARS /*}else if(mjonMsgVO.getPhmAuthType().equals("02") || mjonMsgVO.getPhmAuthType() == "02") { // ARS
@ -2923,17 +2939,21 @@ public class EgovMypageController {
name = userInfo.getManagerNm(); name = userInfo.getManagerNm();
} }
KmcCertChecker kmcCertCheck = new KmcCertChecker(); // KmcCertChecker kmcCertCheck = new KmcCertChecker();
//
// //kmc 본인인증 /개발 서버 구분
// String serverNm = "";
// if(request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) {
// serverNm = request.getScheme() + "://219.240.88.15:8095";
// }else{
// serverNm = request.getScheme() + "://www.munjaon.co.kr";
// }
//kmc 본인인증 /개발 서버 구분 MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
String serverNm = ""; mberCertPhoneVO.setTrUrl("/web/user/selectMberSecessionAjax.do");
if(request.getServerName().contains("219.240.88.15") || request.getServerName().contains("localhost")) { mberCertPhoneVO.setName(name);
serverNm = request.getScheme() + "://219.240.88.15:8095";
}else{
serverNm = request.getScheme() + "://www.munjaon.co.kr";
}
AuthCertVO certVO = kmcCertCheck.authCertCheckSeven(serverNm + "/web/user/selectMberSecessionAjax.do", name); AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
model.addAttribute("certVO", certVO); model.addAttribute("certVO", certVO);
return "web/user/mberSecession"; return "web/user/mberSecession";
@ -3018,18 +3038,24 @@ public class EgovMypageController {
* 보안인증 본인인증 기능추가 * 보안인증 본인인증 기능추가
* 20241120 원영현 과장 추가 * 20241120 원영현 과장 추가
* */ * */
KmcCertChecker kmcCertCheck = new KmcCertChecker(); // KmcCertChecker kmcCertCheck = new KmcCertChecker();
//
// //kmc 본인인증 /개발 서버 구분
// String serverNm = "";
// if(request.getServerName().contains("192.168.0.60") || request.getServerName().contains("localhost")) {
// serverNm = request.getScheme() + "://192.168.0.60:8085";
// }else{
// serverNm = request.getScheme() + "://www.munjaon.co.kr";
// }
//
// System.out.println("@@@ serverNm : " + serverNm);
//kmc 본인인증 /개발 서버 구분 MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
String serverNm = ""; mberCertPhoneVO.setTrUrl("/web/user/selectSecurityAuthn.do");
if(request.getServerName().contains("192.168.0.60") || request.getServerName().contains("localhost")) { mberCertPhoneVO.setPlusInfo(loginVO.getId());
serverNm = request.getScheme() + "://192.168.0.60:8085";
}else{ AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
serverNm = request.getScheme() + "://www.munjaon.co.kr";
}
System.out.println("@@@ serverNm : " + serverNm);
AuthCertVO certVO = kmcCertCheck.authCertCheckNine(serverNm + "/web/user/selectSecurityAuthn.do", loginVO.getId());
model.addAttribute("certVO", certVO); model.addAttribute("certVO", certVO);
} }

View File

@ -2,663 +2,147 @@ package itn.let.uat.uia.web;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Map;
import java.util.Random; import java.util.Random;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import org.springframework.ui.ModelMap;
import com.icert.comm.secu.IcertSecuManager; import com.icert.comm.secu.IcertSecuManager;
import itn.let.cert.phone.service.CertPhoneService;
import itn.let.cert.phone.service.MberCertPhoneVO;
import itn.let.uat.uia.service.AuthCertVO; import itn.let.uat.uia.service.AuthCertVO;
import itn.let.uss.umt.service.MberManageVO; import itn.let.uss.umt.service.MberManageVO;
@Component("KmcCertChecker")
public class KmcCertChecker { public class KmcCertChecker {
@Resource(name = "CertPhoneService")
private CertPhoneService certPhoneService;
//회원가입 인증수단을 휴대폰 본인인증만 했을 경우 사용 //회원가입 인증수단을 휴대폰 본인인증만 했을 경우 사용
public AuthCertVO authCertCheck(String trUrl) { public AuthCertVO authCertCheck(
MberCertPhoneVO mberCertPhoneVO
AuthCertVO certVO = new AuthCertVO(); , HttpServletRequest request
) {
//url 세팅
mberCertPhoneVO = setMberCertPhoneVO(request, mberCertPhoneVO);
//kmc step 01 데이터 //kmc step 01 데이터
//날짜 생성 //reqNum은 최대 40byte 까지 사용 가능
Calendar today = Calendar.getInstance(); String reqNum = getDay() + getRanNum(); //요청번호
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime()); String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = mberCertPhoneVO.getUrlCode(); // URL코드
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (-시퀀스번호) )
String date = getDay(); // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
// String name = ""; // 성명
String name = mberCertPhoneVO.getName(); // 성명
String phoneNo = mberCertPhoneVO.getPhoneNo(); // 휴대폰번호
String phoneCorp = mberCertPhoneVO.getPhoneCorp(); // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = mberCertPhoneVO.getBirthDay(); // 생년월일
String gender = mberCertPhoneVO.getGender(); // 성별
if(gender == null) gender = "";
String nation = mberCertPhoneVO.getNation(); // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = mberCertPhoneVO.getPlusInfo(); // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
Random ran = new Random(); String tr_url = getDomain(request) + mberCertPhoneVO.getTrUrl();// // 본인인증서비스 결과수신 POPUP URL
//랜덤 문자 길이 String tr_add = "N"; // IFrame사용여부
int numLength = 6;
String randomStr = ""; //01. 한국모바일인증() 암호화 모듈 선언
IcertSecuManager seed = new IcertSecuManager();
for (int i = 0; i < numLength; i++) { //02. 1차 암호화 (tr_cert 데이터변수 조합 암호화)
//0 ~ 9 랜덤 숫자 생성 String enc_tr_cert = "";
randomStr += ran.nextInt(10); tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
} enc_tr_cert = seed.getEnc(tr_cert, "");
//reqNum은 최대 40byte 까지 사용 가능 //03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
String reqNum = day + randomStr; //요청번호 String hmacMsg = "";
hmacMsg = seed.getMsg(enc_tr_cert);
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001003"; // URL코드
//kmc 본인인증 /개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005001";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = ""; // 성명
String phoneNo = ""; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = "0"; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = ""; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL //04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 암호화)
String tr_add = "N"; // IFrame사용여부 tr_cert = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
//01. 한국모바일인증() 암호화 모듈 선언 AuthCertVO authCertVO = new AuthCertVO();
IcertSecuManager seed = new IcertSecuManager();
authCertVO.setTr_cert(tr_cert);
//02. 1차 암호화 (tr_cert 데이터변수 조합 암호화) authCertVO.setTr_url(tr_url);
String enc_tr_cert = ""; authCertVO.setTr_add(tr_add);
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
enc_tr_cert = seed.getEnc(tr_cert, ""); return authCertVO;
//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
String hmacMsg = "";
hmacMsg = seed.getMsg(enc_tr_cert);
//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 암호화)
tr_cert = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
} }
//회원가입 인증수단을 ARS, 휴대폰 본인인증 했을 경우 사용
public AuthCertVO authCertCheckTwo(String trUrl, String mberNm, String moblphonNo, String sexdstnCode, String nationality, String birth) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001003"; // URL코드
//kmc 본인인증 /개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "004001";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = mberNm; // 성명
String phoneNo = moblphonNo; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = birth; // 생년월일
String gender = sexdstnCode; // 성별
if(gender == null) gender = "";
String nation = nationality; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = ""; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증() 암호화 모듈 선언
IcertSecuManager seed = new IcertSecuManager();
//02. 1차 암호화 (tr_cert 데이터변수 조합 암호화)
String enc_tr_cert = "";
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
enc_tr_cert = seed.getEnc(tr_cert, "");
//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
String hmacMsg = "";
hmacMsg = seed.getMsg(enc_tr_cert);
//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 암호화)
tr_cert = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
//아이디 패스워드 찾기 본인인증 private String getDomain(HttpServletRequest request) {
public AuthCertVO authCertCheckThree(String trUrl, MberManageVO mberManageVO) { String serverNm = request.getScheme() + "://" + request.getServerName();
if(request.getServerPort() != 80
AuthCertVO certVO = new AuthCertVO(); && request.getServerPort() != 443) {
serverNm += ":" + request.getServerPort();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = mberManageVO.getAuthRUrlCode(); // URL 인증 코드
//kmc 본인인증 /개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005002";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = mberManageVO.getMberNm(); // 성명
String phoneNo = mberManageVO.getMoblphonNo(); // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = "0"; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = mberManageVO.getMberId(); // 추가DATA정보
if(StringUtils.isNotEmpty(mberManageVO.getPassword()))
{
plusInfo = plusInfo + ",,," + mberManageVO.getPassword();
}
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증() 암호화 모듈 선언
IcertSecuManager seed = new IcertSecuManager();
//02. 1차 암호화 (tr_cert 데이터변수 조합 암호화)
String enc_tr_cert = "";
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
enc_tr_cert = seed.getEnc(tr_cert, "");
//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
String hmacMsg = "";
hmacMsg = seed.getMsg(enc_tr_cert);
//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 암호화)
tr_cert = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
//IP 체크해주기
public AuthCertVO authCertCheckFour(String trUrl, String mberNm, String moblphonNo, String sexdstnCode, String nationality, String birth, String id) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001006"; // URL코드
//kmc 본인인증 /개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005003";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = mberNm; // 성명
String phoneNo = moblphonNo; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = birth; // 생년월일
String gender = sexdstnCode; // 성별
if(gender == null) gender = "";
String nation = nationality; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = id; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증() 암호화 모듈 선언
IcertSecuManager seed = new IcertSecuManager();
//02. 1차 암호화 (tr_cert 데이터변수 조합 암호화)
String enc_tr_cert = "";
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
enc_tr_cert = seed.getEnc(tr_cert, "");
//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
String hmacMsg = "";
hmacMsg = seed.getMsg(enc_tr_cert);
//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 암호화)
tr_cert = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
//마이페이지 휴대폰 변경 기능 본인인증에 사용
public AuthCertVO authCertCheckFive(String trUrl, String id) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001009"; // URL코드
//kmc 본인인증 /개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005005";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = ""; // 성명
String phoneNo = ""; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = ""; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = id; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증() 암호화 모듈 선언
IcertSecuManager seed = new IcertSecuManager();
//02. 1차 암호화 (tr_cert 데이터변수 조합 암호화)
String enc_tr_cert = "";
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
enc_tr_cert = seed.getEnc(tr_cert, "");
//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
String hmacMsg = "";
hmacMsg = seed.getMsg(enc_tr_cert);
//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 암호화)
tr_cert = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
// 마이페이지 발신번호 관리 > 발신번호 등록 사용
public AuthCertVO authCertCheckSix(String trUrl, String id, String moblphonNo, String mberNm, String myNameFlag) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001007"; // URL코드
//kmc 본인인증 /개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "006005";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = mberNm; // 성명
String phoneNo = moblphonNo; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = ""; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = id + "§" + myNameFlag; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증() 암호화 모듈 선언
IcertSecuManager seed = new IcertSecuManager();
//02. 1차 암호화 (tr_cert 데이터변수 조합 암호화)
String enc_tr_cert = "";
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
enc_tr_cert = seed.getEnc(tr_cert, "");
//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
String hmacMsg = "";
hmacMsg = seed.getMsg(enc_tr_cert);
//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 암호화)
tr_cert = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
//마이패이지 회원탈퇴 > 본인인증으로 회원탈퇴에 사용
public AuthCertVO authCertCheckSeven(String trUrl, String mberNm) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001010"; // URL코드
//kmc 본인인증 /개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005006";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = mberNm; // 성명
String phoneNo = ""; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = ""; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = ""; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증() 암호화 모듈 선언
IcertSecuManager seed = new IcertSecuManager();
//02. 1차 암호화 (tr_cert 데이터변수 조합 암호화)
String enc_tr_cert = "";
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
enc_tr_cert = seed.getEnc(tr_cert, "");
//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
String hmacMsg = "";
hmacMsg = seed.getMsg(enc_tr_cert);
//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 암호화)
tr_cert = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
}
//아이디 패스워드 찾기 본인인증
public AuthCertVO authCertCheckEight(String trUrl, String idParam) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001012"; // URL코드
//kmc 본인인증 /개발 서버 구분
if(trUrl.contains("119.193.215.98") || trUrl.contains("localhost")) {
urlCode = "005008";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = ""; // 성명
String phoneNo = ""; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = "0"; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = idParam; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증() 암호화 모듈 선언
IcertSecuManager seed = new IcertSecuManager();
//02. 1차 암호화 (tr_cert 데이터변수 조합 암호화)
String enc_tr_cert = "";
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
enc_tr_cert = seed.getEnc(tr_cert, "");
//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
String hmacMsg = "";
hmacMsg = seed.getMsg(enc_tr_cert);
//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 암호화)
tr_cert = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
} }
return serverNm;
// 마이페이지 보안인증
public AuthCertVO authCertCheckNine(String trUrl, String id) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
//reqNum은 최대 40byte 까지 사용 가능
String reqNum = day + randomStr; //요청번호
String tr_cert = "";
String cpId = "MJOM1001"; // 회원사ID
String urlCode = "001014"; // URL코드
//kmc 본인인증 /개발 서버 구분
System.out.println("@@@@@ trUrl : " + trUrl);
if(trUrl.contains("192.168.0.60") || trUrl.contains("localhost")) {
urlCode = "010001";
}
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (-시퀀스번호) )
String date = day; // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = ""; // 성명
String phoneNo = ""; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
if(gender == null) gender = "";
String nation = ""; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = id; // 추가DATA정보
String extendVar = "0000000000000000"; // 확장변수
//End-tr_cert 데이터 변수 선언 ---------------------------------------------------------------
String tr_url = trUrl;//"http://www.munjaon.co.kr/web/cop/kmc/authRequestAjax.do"; // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증() 암호화 모듈 선언
IcertSecuManager seed = new IcertSecuManager();
//02. 1차 암호화 (tr_cert 데이터변수 조합 암호화)
String enc_tr_cert = "";
tr_cert = cpId +"/"+ urlCode +"/"+ certNum +"/"+ date +"/"+ certMet +"/"+ birthDay +"/"+ gender +"/"+ name +"/"+ phoneNo +"/"+ phoneCorp +"/"+ nation +"/"+ plusInfo +"/"+ extendVar;
enc_tr_cert = seed.getEnc(tr_cert, "");
//03. 1차 암호화 데이터에 대한 위변조 검증값 생성 (HMAC)
String hmacMsg = "";
hmacMsg = seed.getMsg(enc_tr_cert);
//04. 2차 암호화 (1차 암호화 데이터, HMAC 데이터, extendVar 조합 암호화)
tr_cert = seed.getEnc(enc_tr_cert + "/" + hmacMsg + "/" + extendVar, "");
certVO.setTr_cert(tr_cert);
certVO.setTr_url(tr_url);
certVO.setTr_add(tr_add);
return certVO;
} }
private String getDay() {
Calendar today = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String day = sdf.format(today.getTime());
return day;
}
private String getRanNum() {
Random ran = new Random();
//랜덤 문자 길이
int numLength = 6;
String randomStr = "";
for (int i = 0; i < numLength; i++) {
//0 ~ 9 랜덤 숫자 생성
randomStr += ran.nextInt(10);
}
return randomStr;
}
private MberCertPhoneVO setMberCertPhoneVO(
HttpServletRequest request
, MberCertPhoneVO mberCertPhoneVO
) {
mberCertPhoneVO.setUrl(mberCertPhoneVO.getTrUrl());
mberCertPhoneVO.setHost(getDomain(request));
MberCertPhoneVO tmpMberCertPhoneVO = new MberCertPhoneVO();
try {
tmpMberCertPhoneVO = certPhoneService.selectCertUrlCode(mberCertPhoneVO);
} catch (Exception e) {
System.out.println(e.getMessage());
}
if(tmpMberCertPhoneVO != null) {
mberCertPhoneVO.setUrl(tmpMberCertPhoneVO.getUrl());
mberCertPhoneVO.setHost(tmpMberCertPhoneVO.getHost());
mberCertPhoneVO.setUrlCode(tmpMberCertPhoneVO.getUrlCode());
}
return mberCertPhoneVO;
}
} }

View File

@ -27,14 +27,11 @@ Globals.Env = dev
# mysql # mysql
Globals.DriverClassName=com.mysql.jdbc.Driver Globals.DriverClassName=org.mariadb.jdbc.Driver
Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon Globals.Url=jdbc:mariadb://192.168.0.60:3396/mjon_advc
Globals.UserName= mjonUr
Globals.Password= itntest123
#Globals.Url=jdbc:mysql://192.168.0.125:3306/mjon
#Globals.Url=jdbc:mysql://139.150.73.12:3306/mjon #Globals.Url=jdbc:mysql://139.150.73.12:3306/mjon
#Globals.UserName= mjonUr Globals.UserName= mjonUr
#Globals.Password= mjon!@#$ Globals.Password= mjon!@#$
# mysql-prod # mysql-prod
#Globals.DriverClassName=com.mysql.jdbc.Driver #Globals.DriverClassName=com.mysql.jdbc.Driver
@ -121,3 +118,8 @@ Globals.pay.kgm.mobile.payMode=00
#Slack #Slack
Globals.slack.hooks.url=https://hooks.slack.com/services/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 Globals.slack.hooks.url=https://hooks.slack.com/services/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
Globals.slack.channel.name=\ud14c\uc2a4\ud2b8_mjon\uba54\uc2dc\uc9c0 Globals.slack.channel.name=\ud14c\uc2a4\ud2b8_mjon\uba54\uc2dc\uc9c0
#valkey
Globals.valkey.ip=192.168.0.60
Globals.valkey.port=6379
Globals.valkey.password=itntest123

View File

@ -28,7 +28,7 @@ Globals.Env = local
# mysql # mysql
Globals.DriverClassName=com.mysql.jdbc.Driver Globals.DriverClassName=com.mysql.jdbc.Driver
Globals.Url=jdbc:mysql://192.168.0.125:3306/mjon Globals.Url=jdbc:mysql://192.168.0.125:3306/mjon_advc
#Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon #Globals.Url=jdbc:mysql://192.168.0.60:3308/mjon
Globals.UserName= mjonUr Globals.UserName= mjonUr
Globals.Password= mjon!@#$ Globals.Password= mjon!@#$
@ -124,3 +124,8 @@ Globals.pay.kgm.mobile.payMode=00
#Slack #Slack
Globals.slack.hooks.url=https://hooks.slack.com/services/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 Globals.slack.hooks.url=https://hooks.slack.com/services/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
Globals.slack.channel.name=\ud14c\uc2a4\ud2b8_mjon\uba54\uc2dc\uc9c0 Globals.slack.channel.name=\ud14c\uc2a4\ud2b8_mjon\uba54\uc2dc\uc9c0
#valkey
Globals.valkey.ip=192.168.0.60
Globals.valkey.port=6379
Globals.valkey.password=itntest123

View File

@ -105,4 +105,9 @@ Globals.pay.kgm.mobile.payMode=10
#Slack #Slack
Globals.slack.hooks.url=https://hooks.slack.com/services/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 Globals.slack.hooks.url=https://hooks.slack.com/services/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
Globals.slack.channel.name=mjon\uba54\uc2dc\uc9c0 Globals.slack.channel.name=mjon\uba54\uc2dc\uc9c0
#valkey
Globals.valkey.ip=10.12.107.9
Globals.valkey.port=6379
Globals.valkey.password=itntest123

View File

@ -6,7 +6,7 @@
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="MjonCertPhone"> <sqlMap namespace="MjonCertPhone">
<typeAlias alias="mberCertPhoneVO" type="itn.let.cert.phone.service.MberCertPhoneVO"/> <typeAlias alias="mberCertPhoneVO" type="itn.let.cert.phone.service.MberCertPhoneVO"/>
<typeAlias alias="AuthCertVO" type="itn.let.uat.uia.service.AuthCertVO"/>
<select id="mberCertPhoneVO.selectMberCertPhoneList" parameterClass="String" resultClass="mberCertPhoneVO"> <select id="mberCertPhoneVO.selectMberCertPhoneList" parameterClass="String" resultClass="mberCertPhoneVO">
/* mberCertPhoneVO.selectMberCertPhoneList */ /* mberCertPhoneVO.selectMberCertPhoneList */
@ -131,4 +131,39 @@
</select> </select>
<select id="certPhoneDAO.selectCertUrlCode" parameterClass="mberCertPhoneVO" resultClass="mberCertPhoneVO">
SELECT
URL_CODE as urlCode
, URL as url
, HOST as host
FROM
MJ_CERT_SETTING
WHERE
URL = #url#
AND HOST = #host#
</select>
<insert id="certPhoneDAO.insertCertLog" parameterClass="AuthCertVO">
insert into mj_cert_log
(
MBER_ID
, CERT_DATE
, CERT_TYPE
, CERT_IPADDR
, REGDATE
)
values (
#mberId#
, #certDate#
, #certType#
, #certIpaddr#
, now()
);
</insert>
</sqlMap> </sqlMap>

View File

@ -633,7 +633,9 @@ function listAddrTransHistAjax(pageNo) {
var KMCIS_window; var KMCIS_window;
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/

View File

@ -12,7 +12,9 @@
window.name = "kmcis_web_sample"; window.name = "kmcis_web_sample";
var KMCIS_window; var KMCIS_window;
//휴대폰 인증팝업 열기 //휴대폰 인증팝업 열기
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/
// 모바일일 경우 (변동사항 있을경우 추가 필요) // 모바일일 경우 (변동사항 있을경우 추가 필요)

View File

@ -548,7 +548,9 @@ function listAddrTransHistAjax(pageNo) {
var KMCIS_window; var KMCIS_window;
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/

View File

@ -622,7 +622,9 @@ function fnAddUserView() {
var KMCIS_window; var KMCIS_window;
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/

View File

@ -60,7 +60,9 @@ function humanAuthenticated(){
}); });
} }
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/
// 모바일일 경우 (변동사항 있을경우 추가 필요) // 모바일일 경우 (변동사항 있을경우 추가 필요)

View File

@ -373,7 +373,9 @@
var KMCIS_window; var KMCIS_window;
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/

View File

@ -310,30 +310,7 @@
return false; return false;
} }
//KMC팝업에 정보 미리 삽입 openKMCISWindow();
var kmcPopUpForm = $("form[name=kmcPopUpForm]").serialize() ;
$.ajax({
url : "<c:url value='/web/user/login/kmcPopupAjax.do' />",
type : 'POST',
data : kmcPopUpForm,
dataType:'json',
success : function(returnData, status){
if(status == "success") {
$("#tr_cert").val(returnData.tr_cert);
$("#tr_url").val(returnData.tr_url);
$("#tr_add").val(returnData.tr_add);
openKMCISWindow();
}else{ alert("실패");return;}
},
error : function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
} }
@ -384,7 +361,9 @@
var KMCIS_window; var KMCIS_window;
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/
@ -419,7 +398,6 @@
} }
</script> </script>
</head> </head>
<body> <body>
<form id="termsForm" name="termsForm" method="get"> <form id="termsForm" name="termsForm" method="get">
@ -652,7 +630,7 @@
<input type="hidden" id="idx" name="idx" value="" /> <input type="hidden" id="idx" name="idx" value="" />
<input type="hidden" name="blineCode" value="" /> <input type="hidden" name="blineCode" value="" />
</form> </form>
<form name="reqKMCISForm" method="post" action="#"> <<form name="reqKMCISForm" method="post" action="#">
<input type="hidden" name="tr_cert" id="tr_cert" value = "${tr_cert}"> <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_url" id="tr_url" value = "${tr_url}">
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}"> <input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
@ -773,4 +751,5 @@
</form> </form>
</c:if> </c:if>
<!--// 본인인증(step2) 팝업 --> <!--// 본인인증(step2) 팝업 -->
</body></html> </body></html>

View File

@ -476,7 +476,9 @@
var KMCIS_window; var KMCIS_window;
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/

View File

@ -194,7 +194,9 @@ window.name = "kmcis_web_sample";
var KMCIS_window; var KMCIS_window;
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/
// 모바일일 경우 (변동사항 있을경우 추가 필요) // 모바일일 경우 (변동사항 있을경우 추가 필요)

View File

@ -102,7 +102,9 @@ window.name = "kmcis_web_sample";
var KMCIS_window; var KMCIS_window;
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/
// 모바일일 경우 (변동사항 있을경우 추가 필요) // 모바일일 경우 (변동사항 있을경우 추가 필요)

View File

@ -267,7 +267,9 @@ function getMberGrdChk() {
window.name = "kmcis_web_sample"; window.name = "kmcis_web_sample";
var KMCIS_window; var KMCIS_window;
//휴대폰 인증팝업 열기 //휴대폰 인증팝업 열기
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/
// 모바일일 경우 (변동사항 있을경우 추가 필요) // 모바일일 경우 (변동사항 있을경우 추가 필요)

View File

@ -9,7 +9,9 @@
window.name = "kmcis_web_sample"; window.name = "kmcis_web_sample";
var KMCIS_window; var KMCIS_window;
//휴대폰 인증팝업 열기 //휴대폰 인증팝업 열기
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/
// 모바일일 경우 (변동사항 있을경우 추가 필요) // 모바일일 경우 (변동사항 있을경우 추가 필요)

View File

@ -626,7 +626,9 @@ function deleteRow(p_ip){
window.name = "kmcis_web_sample"; window.name = "kmcis_web_sample";
var KMCIS_window; var KMCIS_window;
//휴대폰 인증팝업 열기 //휴대폰 인증팝업 열기
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/
// 모바일일 경우 (변동사항 있을경우 추가 필요) // 모바일일 경우 (변동사항 있을경우 추가 필요)

View File

@ -394,7 +394,9 @@ function kmcCertCheck(){
window.name = "kmcis_web_sample"; window.name = "kmcis_web_sample";
var KMCIS_window; var KMCIS_window;
//휴대폰 인증팝업 열기 //휴대폰 인증팝업 열기
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/
// 모바일일 경우 (변동사항 있을경우 추가 필요) // 모바일일 경우 (변동사항 있을경우 추가 필요)

View File

@ -122,7 +122,9 @@ function selectSendNumberAjax(phmAuthType){
window.name = "kmcis_web_sample"; window.name = "kmcis_web_sample";
var KMCIS_window; var KMCIS_window;
//휴대폰 인증팝업 열기 //휴대폰 인증팝업 열기
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/
// 모바일일 경우 (변동사항 있을경우 추가 필요) // 모바일일 경우 (변동사항 있을경우 추가 필요)

View File

@ -69,7 +69,15 @@
<url-pattern>/*</url-pattern> <url-pattern>/*</url-pattern>
</filter-mapping> </filter-mapping>
<!-- spring session filter -->
<filter>
<filter-name>springSessionRepositoryFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSessionRepositoryFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- security start --> <!-- security start -->
<filter> <filter>

View File

@ -133,3 +133,21 @@ var isInternetExplorer = false;
if( navigator.appName == 'Netscape' && navigator.userAgent.search('Trident') != -1 || (cCommonUserAgent.indexOf("msie") != -1)) { if( navigator.appName == 'Netscape' && navigator.userAgent.search('Trident') != -1 || (cCommonUserAgent.indexOf("msie") != -1)) {
isInternetExplorer = true; isInternetExplorer = true;
} }
function certAccessLog(){
$.ajax({
url : '/web/cert/log/insertCertLog.do',
type : 'POST',
/* data : arsForm, */
dataType:'json',
success : function(returnData, status){
if(status == "success") {
}else{ console.log('본인인증 시도로그 실패');}
},
error : function(request , status, error){
console.log("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}

View File

@ -232,7 +232,9 @@
var KMCIS_window; var KMCIS_window;
function openKMCISWindow(){ function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent; var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/ /* 모바일 접근 체크*/