181 lines
6.7 KiB
Plaintext
181 lines
6.7 KiB
Plaintext
<%@ page contentType="text/html;charset=euc-kr" %>
|
|
<%@ page language="java" import="Kisinfo.Check.IPINClient" %>
|
|
|
|
<%
|
|
/********************************************************************************************************************************************
|
|
NICE평가정보 Copyright(c) KOREA INFOMATION SERVICE INC. ALL RIGHTS RESERVED
|
|
|
|
서비스명 : 가상주민번호서비스 (IPIN) 서비스
|
|
페이지명 : 가상주민번호서비스 (IPIN) 결과 페이지
|
|
*********************************************************************************************************************************************/
|
|
|
|
String sSiteCode = "DR69"; // IPIN 서비스 사이트 코드 (NICE평가정보에서 발급한 사이트코드)
|
|
String sSitePw = "kictgis1357!!"; // IPIN 서비스 사이트 패스워드 (NICE평가정보에서 발급한 사이트패스워드)
|
|
|
|
|
|
// 사용자 정보 및 CP 요청번호를 암호화한 데이타입니다.
|
|
String sResponseData = requestReplace(request.getParameter("enc_data"), "encodeData");
|
|
|
|
// CP 요청번호 : ipin_main.jsp 에서 세션 처리한 데이타
|
|
String sCPRequest = (String)session.getAttribute("CPREQUEST");
|
|
|
|
|
|
// 객체 생성
|
|
IPINClient pClient = new IPINClient();
|
|
|
|
|
|
/*
|
|
┌ 복호화 함수 설명 ──────────────────────────────────────────────────────────
|
|
Method 결과값(iRtn)에 따라, 프로세스 진행여부를 파악합니다.
|
|
|
|
fnResponse 함수는 결과 데이타를 복호화 하는 함수이며,
|
|
'sCPRequest'값을 추가로 보내시면 CP요청번호 일치여부도 확인하는 함수입니다. (세션에 넣은 sCPRequest 데이타로 검증)
|
|
|
|
따라서 귀사에서 원하는 함수로 이용하시기 바랍니다.
|
|
└────────────────────────────────────────────────────────────────────
|
|
*/
|
|
int iRtn = pClient.fnResponse(sSiteCode, sSitePw, sResponseData);
|
|
//int iRtn = pClient.fnResponse(sSiteCode, sSitePw, sResponseData, sCPRequest);
|
|
|
|
String sRtnMsg = ""; // 처리결과 메세지
|
|
String sVNumber = pClient.getVNumber(); // 가상주민번호 (13자리이며, 숫자 또는 문자 포함)
|
|
String sName = pClient.getName(); // 이름
|
|
String sDupInfo = pClient.getDupInfo(); // 중복가입 확인값 (DI - 64 byte 고유값)
|
|
String sAgeCode = pClient.getAgeCode(); // 연령대 코드 (개발 가이드 참조)
|
|
String sGenderCode = pClient.getGenderCode(); // 성별 코드 (개발 가이드 참조)
|
|
String sBirthDate = pClient.getBirthDate(); // 생년월일 (YYYYMMDD)
|
|
String sNationalInfo = pClient.getNationalInfo(); // 내/외국인 정보 (개발 가이드 참조)
|
|
String sCPRequestNum = pClient.getCPRequestNO(); // CP 요청번호
|
|
|
|
// Method 결과값에 따른 처리사항
|
|
if (iRtn == 1)
|
|
{
|
|
/*
|
|
다음과 같이 사용자 정보를 추출할 수 있습니다.
|
|
사용자에게 보여주는 정보는, '이름' 데이타만 노출 가능합니다.
|
|
|
|
사용자 정보를 다른 페이지에서 이용하실 경우에는
|
|
보안을 위하여 암호화 데이타(sResponseData)를 통신하여 복호화 후 이용하실것을 권장합니다. (현재 페이지와 같은 처리방식)
|
|
|
|
만약, 복호화된 정보를 통신해야 하는 경우엔 데이타가 유출되지 않도록 주의해 주세요. (세션처리 권장)
|
|
form 태그의 hidden 처리는 데이타 유출 위험이 높으므로 권장하지 않습니다.
|
|
*/
|
|
|
|
// 사용자 인증정보에 대한 변수
|
|
|
|
out.println("가상주민번호 : " + sVNumber + "<BR>");
|
|
out.println("이름 : " + sName + "<BR>");
|
|
out.println("중복가입 확인값 (DI) : " + sDupInfo + "<BR>");
|
|
out.println("연령대 코드 : " + sAgeCode + "<BR>");
|
|
out.println("성별 코드 : " + sGenderCode + "<BR>");
|
|
out.println("생년월일 : " + sBirthDate + "<BR>");
|
|
out.println("내/외국인 정보 : " + sNationalInfo + "<BR>");
|
|
out.println("CP 요청번호 : " + sCPRequestNum + "<BR>");
|
|
out.println("***** 복호화 된 정보가 정상인지 확인해 주시기 바랍니다.<BR><BR><BR><BR>");
|
|
|
|
sRtnMsg = "정상 처리되었습니다.";
|
|
|
|
}
|
|
else if (iRtn == -1 || iRtn == -4)
|
|
{
|
|
sRtnMsg = "iRtn 값, 서버 환경정보를 정확히 확인하여 주시기 바랍니다.";
|
|
}
|
|
else if (iRtn == -6)
|
|
{
|
|
sRtnMsg = "당사는 한글 charset 정보를 euc-kr 로 처리하고 있으니, euc-kr 에 대해서 허용해 주시기 바랍니다.<BR>" +
|
|
"한글 charset 정보가 명확하다면 ..<BR><B>iRtn 값, 서버 환경정보를 정확히 확인하여 메일로 요청해 주시기 바랍니다.</B>";
|
|
}
|
|
else if (iRtn == -9)
|
|
{
|
|
sRtnMsg = "입력값 오류 : fnResponse 함수 처리시, 필요한 파라미터값의 정보를 정확하게 입력해 주시기 바랍니다.";
|
|
}
|
|
else if (iRtn == -12)
|
|
{
|
|
sRtnMsg = "CP 비밀번호 불일치 : IPIN 서비스 사이트 패스워드를 확인해 주시기 바랍니다.";
|
|
}
|
|
else if (iRtn == -13)
|
|
{
|
|
sRtnMsg = "CP 요청번호 불일치 : 세션에 넣은 sCPRequest 데이타를 확인해 주시기 바랍니다.";
|
|
}
|
|
else
|
|
{
|
|
sRtnMsg = "iRtn 값 확인 후, NICE평가정보 전산 담당자에게 문의해 주세요.";
|
|
}
|
|
|
|
%>
|
|
<%!
|
|
public String requestReplace (String paramValue, String gubun) {
|
|
String result = "";
|
|
|
|
if (paramValue != null) {
|
|
|
|
paramValue = paramValue.replaceAll("<", "<").replaceAll(">", ">");
|
|
|
|
paramValue = paramValue.replaceAll("\\*", "");
|
|
paramValue = paramValue.replaceAll("\\?", "");
|
|
paramValue = paramValue.replaceAll("\\[", "");
|
|
paramValue = paramValue.replaceAll("\\{", "");
|
|
paramValue = paramValue.replaceAll("\\(", "");
|
|
paramValue = paramValue.replaceAll("\\)", "");
|
|
paramValue = paramValue.replaceAll("\\^", "");
|
|
paramValue = paramValue.replaceAll("\\$", "");
|
|
paramValue = paramValue.replaceAll("'", "");
|
|
paramValue = paramValue.replaceAll("@", "");
|
|
paramValue = paramValue.replaceAll("%", "");
|
|
paramValue = paramValue.replaceAll(";", "");
|
|
paramValue = paramValue.replaceAll(":", "");
|
|
paramValue = paramValue.replaceAll("-", "");
|
|
paramValue = paramValue.replaceAll("#", "");
|
|
paramValue = paramValue.replaceAll("--", "");
|
|
paramValue = paramValue.replaceAll("-", "");
|
|
paramValue = paramValue.replaceAll(",", "");
|
|
|
|
if(gubun != "encodeData"){
|
|
paramValue = paramValue.replaceAll("\\+", "");
|
|
paramValue = paramValue.replaceAll("/", "");
|
|
paramValue = paramValue.replaceAll("=", "");
|
|
}
|
|
|
|
result = paramValue;
|
|
|
|
}
|
|
return result;
|
|
}
|
|
%>
|
|
|
|
<html>
|
|
<head>
|
|
<title>NICE평가정보 가상주민번호 서비스</title>
|
|
<style type="text/css">
|
|
BODY
|
|
{
|
|
COLOR: #7f7f7f;
|
|
FONT-FAMILY: "Dotum","DotumChe","Arial";
|
|
BACKGROUND-COLOR: #ffffff;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
iRtn : <%= iRtn %> - <%= sRtnMsg %><br><br>
|
|
|
|
<!-- 사용자 정보는 '이름' 외에는 화면에 노출하시면 안됩니다.
|
|
사용자 정보를 통신해야 하는 경우엔, 아래와 같이 암호화 정보로 통신 후 복호화하여 이용하시기 바랍니다.
|
|
만약, 복호화 된 데이타를 통신해야 하는 경우에는 정보보안을 위하여 주의해 주시기 바랍니다. -->
|
|
|
|
<table border="0">
|
|
<tr>
|
|
<td>이름 : <%= sName %></td>
|
|
</tr>
|
|
|
|
<%
|
|
requestReplace(sResponseData, "");
|
|
%>
|
|
|
|
<form name="user" method="post">
|
|
<input type="hidden" name="enc_data" value="<%= sResponseData %>"><br>
|
|
</form>
|
|
</table>
|
|
|
|
</body>
|
|
</html> |