This commit is contained in:
subsub 2025-07-22 14:37:55 +09:00
commit 9de39bf5ec
37 changed files with 715 additions and 861 deletions

53
pom.xml
View File

@ -54,18 +54,8 @@
<repositories>
<repository>
<id>mvn2</id>
<url>https://repo1.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>egovframe</id>
<url>https://www.egovframe.go.kr/maven/</url>
<id>maven-public</id>
<url>http://nexus.iten.co.kr:9999/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
@ -73,22 +63,6 @@
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>egovframe2</id>
<url>http://maven.egovframe.kr:8080/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- Komoran 형태소분석기 -->
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<!-- Komoran 형태소분석기 -->
</repositories>
<dependencies>
@ -568,7 +542,28 @@
<scope>provided</scope>
</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>
<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 javax.servlet.http.HttpServletRequest;
import itn.let.mail.service.StatusResponse;
import itn.let.uat.uia.service.AuthCertVO;
import itn.let.uat.uia.web.SendLogVO;
public interface CertPhoneService {
@ -34,9 +37,9 @@ public interface CertPhoneService {
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 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() {
@ -74,6 +83,76 @@ public class MberCertPhoneVO extends UserDefaultVO{
public void setCheckNo(String 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 itn.let.cert.phone.service.MberCertPhoneVO;
import itn.let.uat.uia.service.AuthCertVO;
@Repository("CertPhoneDAO")
public class CertPhoneDAO extends EgovAbstractDAO {
@ -38,4 +39,12 @@ public class CertPhoneDAO extends EgovAbstractDAO {
public int countSysMsgLogCheck(MberCertPhoneVO 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;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
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.MberCertPhoneVO;
import itn.let.mail.service.StatusResponse;
import itn.let.uat.uia.service.AuthCertVO;
@Service("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());
}
@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.LoginVO;
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.FaxAddrGroupVO;
import itn.let.fax.addr.service.FaxAddrService;
@ -52,6 +53,9 @@ public class FaxAddrGroupController {
@Resource(name = "mberManageService")
private EgovMberManageService mberManageService;
@Resource(name = "KmcCertChecker")
private KmcCertChecker kmcCertCheck;
/**
* 팩스 주소록 그룹 리스트
@ -544,21 +548,25 @@ public class FaxAddrGroupController {
modelAndView.setViewName("jsonView");
try {
KmcCertChecker kmcCertCheck = new KmcCertChecker();
// KmcCertChecker kmcCertCheck = new KmcCertChecker();
//
// // mberId null일경우 ""
// mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
//
// // 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";
// }
// mberId null일경우 ""
mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
// 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";
}
MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAddrSubmitAjax.do");
mberCertPhoneVO.setPlusInfo(mberManageVO.getMberId());
AuthCertVO certVO = kmcCertCheck.authCertCheckEight(serverNm + "/web/cop/kmc/authRequestAddrSubmitAjax.do",
mberManageVO.getMberId());
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
modelAndView.addObject("tr_cert", certVO.getTr_cert());
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.util.RedirectUrlMaker;
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.AddrGroupVO;
import itn.let.mjo.addr.service.AddrService;
@ -72,6 +73,9 @@ public class AddrGroupController {
@Resource(name = "mberManageService")
private EgovMberManageService mberManageService;
@Resource(name = "KmcCertChecker")
private KmcCertChecker kmcCertCheck;
/**
* 주소록 그룹 리스트
* @param addrGroupVO
@ -933,21 +937,24 @@ public class AddrGroupController {
modelAndView.setViewName("jsonView");
try {
KmcCertChecker kmcCertCheck = new KmcCertChecker();
// KmcCertChecker kmcCertCheck = new KmcCertChecker();
//
// // mberId null일경우 ""
// mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
//
// // 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";
// }
// mberId null일경우 ""
mberManageVO.setMberId(EgovStringUtil.isNullToString(mberManageVO.getMberId()));
MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
mberCertPhoneVO.setTrUrl("/web/cop/kmc/authRequestAddrSubmitAjax.do");
mberCertPhoneVO.setPlusInfo(mberManageVO.getMberId());
// 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.authCertCheckEight(serverNm + "/web/cop/kmc/authRequestAddrSubmitAjax.do",
mberManageVO.getMberId());
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
modelAndView.addObject("tr_cert", certVO.getTr_cert());
modelAndView.addObject("tr_url", certVO.getTr_url());

View File

@ -894,11 +894,11 @@ public class TestController {
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_url", certVO.getTr_url());
model.addAttribute("tr_add", certVO.getTr_add());
// model.addAttribute("tr_cert", certVO.getTr_cert());
// model.addAttribute("tr_url", certVO.getTr_url());
// model.addAttribute("tr_add", certVO.getTr_add());
}

View File

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

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.MberCertIpVO;
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.FaxService;
import itn.let.kakao.user.sent.service.KakaoSentService;
@ -181,6 +182,9 @@ public class EgovMypageController {
@Resource(name = "CertIpService")
private CertIpService certIpService;
@Resource(name = "KmcCertChecker")
private KmcCertChecker kmcCertCheck;
/**
* 마이페이지 비밀번호 변경
*/
@ -1447,17 +1451,21 @@ public class EgovMypageController {
// 요청페이지가 개인정보 변경 펴이지 일경우
if(userManageVO.getUserTy().equals("userInfoCh")){
//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 본인인증 /개발 서버 구분
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";
}
MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
mberCertPhoneVO.setTrUrl("/web/user/selectKmcMberInfoAjax.do");
mberCertPhoneVO.setPlusInfo(loginVO.getId());
AuthCertVO certVO = kmcCertCheck.authCertCheckFive(serverNm + "/web/user/selectKmcMberInfoAjax.do", loginVO.getId());
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
modelAndView.addObject("certVO", certVO);
}
@ -1912,18 +1920,26 @@ public class EgovMypageController {
name = loginVO.getManagerNm();
}
KmcCertChecker kmcCertCheck = new KmcCertChecker();
//kmc 본인인증 /개발 서버 구분
String serverNm = "";
if(request.getServerName().contains("119.193.215.98") || request.getServerName().contains("localhost")) {
serverNm = request.getScheme() + "://119.193.215.98:8882";
}else{
serverNm = request.getScheme() + "://www.munjaon.co.kr";
}
// KmcCertChecker kmcCertCheck = new KmcCertChecker();
//
// //kmc 본인인증 /개발 서버 구분
// String serverNm = "";
// if(request.getServerName().contains("119.193.215.98") || request.getServerName().contains("localhost")) {
// serverNm = request.getScheme() + "://119.193.215.98:8882";
// }else{
// 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/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);
/*}else if(mjonMsgVO.getPhmAuthType().equals("02") || mjonMsgVO.getPhmAuthType() == "02") { // ARS
@ -2923,17 +2939,21 @@ public class EgovMypageController {
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 본인인증 /개발 서버 구분
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";
}
MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
mberCertPhoneVO.setTrUrl("/web/user/selectMberSecessionAjax.do");
mberCertPhoneVO.setName(name);
AuthCertVO certVO = kmcCertCheck.authCertCheckSeven(serverNm + "/web/user/selectMberSecessionAjax.do", name);
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
model.addAttribute("certVO", certVO);
return "web/user/mberSecession";
@ -3018,18 +3038,24 @@ public class EgovMypageController {
* 보안인증 본인인증 기능추가
* 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 본인인증 /개발 서버 구분
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";
}
MberCertPhoneVO mberCertPhoneVO = new MberCertPhoneVO();
mberCertPhoneVO.setTrUrl("/web/user/selectSecurityAuthn.do");
mberCertPhoneVO.setPlusInfo(loginVO.getId());
AuthCertVO certVO = kmcCertCheck.authCertCheck(mberCertPhoneVO, request);
System.out.println("@@@ serverNm : " + serverNm);
AuthCertVO certVO = kmcCertCheck.authCertCheckNine(serverNm + "/web/user/selectSecurityAuthn.do", loginVO.getId());
model.addAttribute("certVO", certVO);
}
@ -3880,20 +3906,29 @@ public class EgovMypageController {
//본인 명의만 번호 변경 가능하게
if(mblDn.equals(DI)) {
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
MberManageVO mberManageVO = new MberManageVO();
mberManageVO.setSecuLoginFlag("N");
mberManageVO.setMberId(userId);
mberManageVO.setLastUpdusrId(userId);
mberManageService.updateSecureLoginFlag(mberManageVO);
model.addAttribute("msg", "변경이 완료되었습니다.");
}else {
model.addAttribute("msg", "가입자 본인 명의의 휴대폰으로만 해제가 가능합니다.");
}
return "web/user/securityAuthnPage";
}
@RequestMapping(value="/web/user/mberSecureLoginAjax.do")
public ResponseEntity<?> mberSecureLoginAjax(MberManageVO mberManageVO, @RequestBody Map<String, String> params){
public ResponseEntity<?> mberSecureLoginAjax(MberManageVO mberManageVO){
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
if("Y".equals(params.get("secuLoginFlag"))) {
mberManageVO.setSecuLoginFlag("N");
}else {
mberManageVO.setSecuLoginFlag("Y");
}
mberManageVO.setMberId(userId);
mberManageVO.setLastUpdusrId(userId);

View File

@ -2,66 +2,65 @@ package itn.let.uat.uia.web;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Map;
import java.util.Random;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import org.springframework.ui.ModelMap;
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.uss.umt.service.MberManageVO;
@Component("KmcCertChecker")
public class KmcCertChecker {
@Resource(name = "CertPhoneService")
private CertPhoneService certPhoneService;
//회원가입 인증수단을 휴대폰 본인인증만 했을 경우 사용
public AuthCertVO authCertCheck(String trUrl) {
AuthCertVO certVO = new AuthCertVO();
public AuthCertVO authCertCheck(
MberCertPhoneVO mberCertPhoneVO
, HttpServletRequest request
) {
//url 세팅
mberCertPhoneVO = setMberCertPhoneVO(request, mberCertPhoneVO);
//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 reqNum = getDay() + getRanNum(); //요청번호
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 urlCode = mberCertPhoneVO.getUrlCode(); // URL코드
String certNum = reqNum; // 요청번호 ( 본인인증 요청시 중복되지 않게 생성해야함. (-시퀀스번호) )
String date = day; // 요청일시
String date = getDay(); // 요청일시
String certMet = "M"; // 본인인증방법 - M:휴대폰 본인인증, C:신용카드인증, P:공인인증서 인증
String name = ""; // 성명
String phoneNo = ""; // 휴대폰번호
String phoneCorp = ""; // 이동통신사
// String name = ""; // 성명
String name = mberCertPhoneVO.getName(); // 성명
String phoneNo = mberCertPhoneVO.getPhoneNo(); // 휴대폰번호
String phoneCorp = mberCertPhoneVO.getPhoneCorp(); // 이동통신사
if(phoneCorp == null) phoneCorp = "";
String birthDay = ""; // 생년월일
String gender = ""; // 성별
String birthDay = mberCertPhoneVO.getBirthDay(); // 생년월일
String gender = mberCertPhoneVO.getGender(); // 성별
if(gender == null) gender = "";
String nation = "0"; // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = ""; // 추가DATA정보
String nation = mberCertPhoneVO.getNation(); // 내외국인 구분 - 0:내국인, 1:외국인
String plusInfo = mberCertPhoneVO.getPlusInfo(); // 추가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_url = getDomain(request) + mberCertPhoneVO.getTrUrl();// // 본인인증서비스 결과수신 POPUP URL
String tr_add = "N"; // IFrame사용여부
//01. 한국모바일인증() 암호화 모듈 선언
@ -79,24 +78,36 @@ public class KmcCertChecker {
//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);
AuthCertVO authCertVO = new AuthCertVO();
return certVO;
authCertVO.setTr_cert(tr_cert);
authCertVO.setTr_url(tr_url);
authCertVO.setTr_add(tr_add);
return authCertVO;
}
//회원가입 인증수단을 ARS, 휴대폰 본인인증 했을 경우 사용
public AuthCertVO authCertCheckTwo(String trUrl, String mberNm, String moblphonNo, String sexdstnCode, String nationality, String birth) {
AuthCertVO certVO = new AuthCertVO();
//kmc step 01 데이터
//날짜 생성
private String getDomain(HttpServletRequest request) {
String serverNm = request.getScheme() + "://" + request.getServerName();
if(request.getServerPort() != 80
&& request.getServerPort() != 443) {
serverNm += ":" + request.getServerPort();
}
return serverNm;
}
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;
@ -107,558 +118,31 @@ public class KmcCertChecker {
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;
return randomStr;
}
//아이디 패스워드 찾기 본인인증
public AuthCertVO authCertCheckThree(String trUrl, MberManageVO mberManageVO) {
private MberCertPhoneVO setMberCertPhoneVO(
HttpServletRequest request
, MberCertPhoneVO mberCertPhoneVO
) {
mberCertPhoneVO.setUrl(mberCertPhoneVO.getTrUrl());
mberCertPhoneVO.setHost(getDomain(request));
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);
MberCertPhoneVO tmpMberCertPhoneVO = new MberCertPhoneVO();
try {
tmpMberCertPhoneVO = certPhoneService.selectCertUrlCode(mberCertPhoneVO);
} catch (Exception e) {
System.out.println(e.getMessage());
}
//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;
if(tmpMberCertPhoneVO != null) {
mberCertPhoneVO.setUrl(tmpMberCertPhoneVO.getUrl());
mberCertPhoneVO.setHost(tmpMberCertPhoneVO.getHost());
mberCertPhoneVO.setUrlCode(tmpMberCertPhoneVO.getUrlCode());
}
//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 mberCertPhoneVO;
}
// 마이페이지 보안인증
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;
}
}

View File

@ -118,3 +118,8 @@ Globals.pay.kgm.mobile.payMode=00
#Slack
Globals.slack.hooks.url=https://hooks.slack.com/services/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
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

@ -124,3 +124,8 @@ Globals.pay.kgm.mobile.payMode=00
#Slack
Globals.slack.hooks.url=https://hooks.slack.com/services/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
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

@ -106,3 +106,8 @@ Globals.pay.kgm.mobile.payMode=10
#Slack
Globals.slack.hooks.url=https://hooks.slack.com/services/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
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">
<sqlMap namespace="MjonCertPhone">
<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">
/* mberCertPhoneVO.selectMberCertPhoneList */
@ -131,4 +131,39 @@
</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>

View File

@ -38,7 +38,7 @@
<script type="text/javascript" src="/publish/js/jquery-3.5.0.js"></script>
<script type="text/javascript" src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script>
<script type="text/javascript" src="/publish/js/common.js"></script>
<script type="text/javascript" src="/publish/js/common.js?date=202507210001"></script>
<!--
20240704 이호영 추가 /cmnDateAndChk.js
-->

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -310,30 +310,7 @@
return false;
}
//KMC팝업에 정보 미리 삽입
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);
}
});
}
@ -385,6 +362,8 @@
var KMCIS_window;
function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/
@ -419,7 +398,6 @@
}
</script>
</head>
<body>
<form id="termsForm" name="termsForm" method="get">
@ -652,7 +630,7 @@
<input type="hidden" id="idx" name="idx" value="" />
<input type="hidden" name="blineCode" value="" />
</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_url" id="tr_url" value = "${tr_url}">
<input type="hidden" name="tr_add" id="tr_add" value = "${tr_add}">
@ -773,4 +751,5 @@
</form>
</c:if>
<!--// 본인인증(step2) 팝업 -->
</body></html>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -70,7 +70,7 @@ $(document).ready(function(){
} else {
$(this).find("a.on").removeClass("on").siblings("a").addClass("on");
$(this).removeClass("off").addClass("on");
callTo()
callTo();
}
}
@ -627,6 +627,8 @@ window.name = "kmcis_web_sample";
var KMCIS_window;
//휴대폰 인증팝업 열기
function openKMCISWindow(){
//본인인증시도 로그
certAccessLog();
var UserAgent = navigator.userAgent;
/* 모바일 접근 체크*/
// 모바일일 경우 (변동사항 있을경우 추가 필요)
@ -653,10 +655,10 @@ function callTo() {
$.ajax({
url: '/web/user/mberSecureLoginAjax.do',
type: 'POST',
contentType: 'application/json',
/*contentType: 'application/json',
data: JSON.stringify({
secuLoginFlag: '${mberManageVO.secuLoginFlag}'
}),
}), */
success: function(response) {
if(response === 'success'){
alert('변경이 완료되었습니다.');
@ -673,6 +675,15 @@ function callTo() {
});
}
//자식창에서 호출
function callToTwo(msg, winRef) {
if (winRef) {
winRef.close();
}
alert(msg);
localtion.reload();
}
function fn_phonePopClean(){
console.log('ddd')

View File

@ -20,8 +20,9 @@
<meta name="robots" content="noindex">
<script language=javascript>
opener.callTo();
self.close();
/* opener.callToTwo('${msg}'); */
opener.callToTwo('${msg}', window);
/* self.close(); */
</script>
</head>
<body>

View File

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

View File

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

View File

@ -69,7 +69,15 @@
<url-pattern>/*</url-pattern>
</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 -->
<filter>

View File

@ -133,3 +133,21 @@ var isInternetExplorer = false;
if( navigator.appName == 'Netscape' && navigator.userAgent.search('Trident') != -1 || (cCommonUserAgent.indexOf("msie") != -1)) {
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

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