Merge branch 'master_tolag3'

This commit is contained in:
leejunho 2025-11-20 14:36:19 +09:00
commit 9932a1eb0e
16 changed files with 333 additions and 2971 deletions

View File

@ -56,9 +56,6 @@ public class EgovFileDownloadController {
@Resource(name = "EgovFileMngService") @Resource(name = "EgovFileMngService")
private EgovFileMngService fileService; private EgovFileMngService fileService;
@Value("#{globalSettings['Globals.pdf.makepath.out']}")
private String pdfMakepathOut; //c:/usr/local/tomcat/file/sht/out
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileDownloadController.class); private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileDownloadController.class);
/** /**
@ -231,7 +228,7 @@ public class EgovFileDownloadController {
String s_path = (String) commandMap.get("path"); String s_path = (String) commandMap.get("path");
String s_file = (String) commandMap.get("file"); String s_file = (String) commandMap.get("file");
File uFile = new File(pdfMakepathOut + "/" + s_path, s_file); File uFile = new File("/usr/local/tomcat/file/sht/out/" + s_path, s_file);
String mimetype = "application/x-msdownload"; String mimetype = "application/x-msdownload";

View File

@ -39,9 +39,6 @@ public class pdfViewerSampleController {
/** 로그설정 */ /** 로그설정 */
private static final Logger LOGGER = LoggerFactory.getLogger(pdfViewerSampleController.class); private static final Logger LOGGER = LoggerFactory.getLogger(pdfViewerSampleController.class);
@Value("#{globalSettings['Globals.pdf.webpath']}")
private String pdfWebpath; // /pdf/out/
@Resource(name="adjstIncidentService") @Resource(name="adjstIncidentService")
private AdjstIncidentService adjstIncidentService; private AdjstIncidentService adjstIncidentService;
@ -83,11 +80,11 @@ public class pdfViewerSampleController {
//compare session & register_userid //compare session & register_userid
if (loginVO.getUniqId().equals(master.getFrstRegisterId())) { if (loginVO.getUniqId().equals(master.getFrstRegisterId())) {
model.addAttribute("file", pdfWebpath + s_webFile + "/pdf/"+s_time_dir+"/"+s_bookmark_name); model.addAttribute("file", "/pdf/out/" + s_webFile + "/pdf/"+s_time_dir+"/"+s_bookmark_name);
}else { }else {
//model.addAttribute("file", ""); //model.addAttribute("file", "");
model.addAttribute("file", pdfWebpath + s_webFile + "/pdf/"+s_time_dir+"/"+s_bookmark_name); model.addAttribute("file", "/pdf/out/" + s_webFile + "/pdf/"+s_time_dir+"/"+s_bookmark_name);
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,48 +0,0 @@
package kcc.let.uat.uia.web;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class SsoAgentInfo {
//SSO agent 관련 설정
private static String ssoUri;
private static String clientId;
private static String clientSecret;
private static String scope;
@Value("#{globalSettings['Globals.sso.ssoUri']}")
public void setSsoUri(String ssoUri) {
SsoAgentInfo.ssoUri = ssoUri;
}
@Value("#{globalSettings['Globals.sso.clientId']}")
public void setClientId(String clientId) {
SsoAgentInfo.clientId = clientId;
}
@Value("#{globalSettings['Globals.sso.clientSecret']}")
public void setClientSecret(String clientSecret) {
SsoAgentInfo.clientSecret = clientSecret;
}
@Value("#{globalSettings['Globals.sso.scope']}")
public void setScope(String scope) {
SsoAgentInfo.scope = scope;
}
public String getSsoUri() {
return ssoUri;
}
public String getClientId() {
return clientId;
}
public String getClientSecret() {
return clientSecret;
}
public String getScope() {
return scope;
}
}

View File

@ -1,156 +0,0 @@
package kcc.let.uat.uia.web;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.bandi.oauth.BandiSSOAgent;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
public class SsoLogin {
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class);
//실서버 적용시 변경
// agent 관련 설정
/*private static String ssoUri = "https://devsso.copyright.or.kr/oauth2/token.do"; // 개발서버 URL
private static String clientId = "해당 시스템의 클라이언트 아이디";
private static String clientId = "30354835c3684ff79e7fb1bfd3a768f6";
private static String clientSecret = "해당 시스템의 클라이언트 시크릿";
private static String clientSecret = "1ueil5ee05wr0t1gjy1ppt212";
private static String scope = "http://sso.copyright.or.kr"; // 고정
*/
// 1 : id/pw 로그인, 2 : hp/pw 로그인, 3 : seq/ci 로그인
private static String type = "1";
public static String SsoLogin(String Id, String Password, HttpServletRequest request) throws Exception {
SsoAgentInfo ssoagentinfo = new SsoAgentInfo();
// SSO 로그인 연계 "BandiSSOAgent 생성" 참조
/*BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);*/
BandiSSOAgent agent = new BandiSSOAgent(ssoagentinfo.getSsoUri(), ssoagentinfo.getClientId(), ssoagentinfo.getClientSecret(), ssoagentinfo.getScope());
// 사용자 접속 ip
// agent.getLocalServerIp(request);
String client_ip = "127.0.0.1";
// https://devoneid.copyright.or.kr 에서 가입함 ID/PW 입력
/*String user_id = "itn0801@gmail.com";*/
String user_id = Id;
/*String user_pwd = "itntest123$";*/
String user_pwd = Password;
SsoLoginVO ssoLoginVO = new SsoLoginVO();
// SSO 로그인 연계 "accessToken 함수 요청" "accessToken 함수 결과" 참조
HashMap<String, String> login = agent.accessToken(user_id, user_pwd, client_ip, type);
/*에러코드*/
String error = login.get("error");
/*에러 메시지*/
String error_message = login.get("error_message");
/*에러 콘솔 로거*/
LOGGER.debug("error : ", error);
LOGGER.debug("error_message : ", error_message);
// try {
if(login.get("error").equals("0000") || login.get("error").equals("VL-3130")) {
String access_token = login.get("access_token");
String refresh_token = login.get("refresh_token");
/*쿠키유지시간*/
String expires_in = login.get("expires_in");
// userInfo의 type은 무조건 1을 입력한다.
// SSO 로그인 연계 "userInfo 함수 요청" "userInfo 함수 결과" 참조
HashMap<String, String> userInfo = agent.userInfo(access_token, client_ip, type);
//법인회원 정보 처리
if(userInfo.get("corpUserInfo") != null) {
List<Map<String, String>> info = new Gson().fromJson(String.valueOf(userInfo.get("corpUserInfo")),
new TypeToken<List<Map<String, Object>>>(){}.getType());
for (Map<String, String> userInfo2 : info) {
userInfo.put("compAddr", userInfo2.get("compAddr"));
userInfo.put("mangCelnum", userInfo2.get("mangCelnum"));
userInfo.put("membEmail", userInfo2.get("membEmail"));
userInfo.put("membType", userInfo2.get("membType"));
userInfo.put("membDivis", userInfo2.get("membDivis"));
userInfo.put("compZipcd", userInfo2.get("compZipcd"));
userInfo.put("compDetAddr", userInfo2.get("compDetAddr"));
userInfo.put("membBuisnRegnum", userInfo2.get("membBuisnRegnum"));
userInfo.put("membCorpnum", userInfo2.get("membCorpnum"));
userInfo.put("mangName", userInfo2.get("mangName"));
}
}
userInfo.remove("corpUserInfo");
//map -> vo 매칭
ObjectMapper test = new ObjectMapper();
ssoLoginVO = test.convertValue(userInfo, SsoLoginVO.class);
//통합회원 SSO연동 유효성 체크를 위한 토큰값 set
ssoLoginVO.setAccess_token(access_token);
ssoLoginVO.setRefresh_token(refresh_token);
if(userInfo.get("error").equals("0000")) {
// "userInfo 함수 결과" 필드를 기준으로 맵핑
/*Object[] keys = (Object[]) userInfo.keySet().toArray();
for(int i=0;i<userInfo.size();i++) {
System.out.println("["+keys[i]+"] "+userInfo.get(keys[i]));
}*/
// 세션에 access_token, refresh_token 저장
// 통합회원 연동시 유효성 검증을 위해 필요
/*SsoLoginVO생성 해서 SsoLoginVo를 세션에 저장*/
/* 컨트롤러에 미리 선언 -> HttpServletRequest request*/
HttpSession session = request.getSession();
session.setMaxInactiveInterval(Integer.parseInt(expires_in));
//SSOLoginVO세션 생성
ssoLoginVO.setOtherUser("N");
session.setAttribute("SSOLoginVO", ssoLoginVO);
// **중요(필요시)
// 연동 완료시 저장한 개별사이트의 통함회원 아이디와 SSO로그인시 취득한 통합회원 아이디가 다른경우에는 개별사이트의 통합회원 아이디를 SSO로그인시 취득한 통합외원 아이디로 갱신 필요
return "sucess";
} else {
// 사용자 정보 조회 오류
System.out.println("[getUserInfo error] "+userInfo.get("error"));
System.out.println("[getUserInfo error_message] "+userInfo.get("error_message"));
return "fail";
}
} else {
// 로그인 실패
// 사용자 정보 조회 오류
System.out.println("[login error] "+login.get("error"));
System.out.println("[login error_message] "+login.get("error_message"));
return "fail";
}
// } catch (Exception e) {
// e.getStackTrace();
// throw new BaseException("시퀀스관리 조회 오류") ;
// }
// return "sucess";
}
}

View File

@ -1,135 +0,0 @@
package kcc.let.uat.uia.web;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.bandi.oauth.BandiSSOAgent;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
public class SsoTokenLogin {
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class);
/*//실서버 적용시 변경
// agent 관련 설정
private static String ssoUri = "https://devsso.copyright.or.kr/oauth2/token.do"; // 개발서버 URL
private static String clientId = "해당 시스템의 클라이언트 아이디";
private static String clientId = "30354835c3684ff79e7fb1bfd3a768f6";
private static String clientSecret = "해당 시스템의 클라이언트 시크릿";
private static String clientSecret = "1ueil5ee05wr0t1gjy1ppt212";
private static String scope = "http://sso.copyright.or.kr"; // 고정
*/
// 1 : id/pw 로그인, 2 : hp/pw 로그인, 3 : seq/ci 로그인
private static String type = "1";
public static String SsoTokenLogin(String access_token, String refresh_token, HttpServletRequest request) throws Exception {
SsoAgentInfo ssoagentinfo = new SsoAgentInfo();
// SSO 로그인 연계 "BandiSSOAgent 생성" 참조
/*BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);*/
BandiSSOAgent agent = new BandiSSOAgent(ssoagentinfo.getSsoUri(), ssoagentinfo.getClientId(), ssoagentinfo.getClientSecret(), ssoagentinfo.getScope());
// 사용자 접속 ip
// agent.getLocalServerIp(request);
String client_ip = "127.0.0.1";
SsoLoginVO ssoLoginVO = new SsoLoginVO();
// try {
HashMap<String, String> tokenValid = agent.tokenValid(access_token, client_ip);
if(tokenValid.get("error").equals("0000")) {
/*쿠키유지시간*/
// String expires_in = login.get("expires_in");
// userInfo의 type은 무조건 1을 입력한다.
// SSO 로그인 연계 "userInfo 함수 요청" "userInfo 함수 결과" 참조
HashMap<String, String> userInfo = agent.userInfo(access_token, client_ip, type);
//법인회원 정보 처리
if(userInfo.get("corpUserInfo") != null) {
List<Map<String, String>> info = new Gson().fromJson(String.valueOf(userInfo.get("corpUserInfo")),
new TypeToken<List<Map<String, Object>>>(){}.getType());
for (Map<String, String> userInfo2 : info) {
userInfo.put("compAddr", userInfo2.get("compAddr"));
userInfo.put("mangCelnum", userInfo2.get("mangCelnum"));
userInfo.put("membEmail", userInfo2.get("membEmail"));
userInfo.put("membType", userInfo2.get("membType"));
userInfo.put("membDivis", userInfo2.get("membDivis"));
userInfo.put("compZipcd", userInfo2.get("compZipcd"));
userInfo.put("compDetAddr", userInfo2.get("compDetAddr"));
userInfo.put("membBuisnRegnum", userInfo2.get("membBuisnRegnum"));
userInfo.put("membCorpnum", userInfo2.get("membCorpnum"));
userInfo.put("mangName", userInfo2.get("mangName"));
}
}
userInfo.remove("corpUserInfo");
//map -> vo 매칭
ObjectMapper test = new ObjectMapper();
ssoLoginVO = test.convertValue(userInfo, SsoLoginVO.class);
//통합회원 SSO연동 유효성 체크를 위한 토큰값 set
ssoLoginVO.setAccess_token(access_token);
ssoLoginVO.setRefresh_token(refresh_token);
if(userInfo.get("error").equals("0000")) {
// "userInfo 함수 결과" 필드를 기준으로 맵핑
Object[] keys = (Object[]) userInfo.keySet().toArray();
for(int i=0;i<userInfo.size();i++) {
System.out.println("["+keys+"] "+userInfo.get(keys[i]));
}
// 세션에 access_token, refresh_token 저장
// 통합회원 연동시 유효성 검증을 위해 필요
/*SsoLoginVO생성 해서 SsoLoginVo를 세션에 저장*/
/* 컨트롤러에 미리 선언 -> HttpServletRequest request*/
HttpSession session = request.getSession();
session.setMaxInactiveInterval(Integer.parseInt("7200"));
//SSOLoginVO세션 생성
ssoLoginVO.setOtherUser("N");
session.setAttribute("SSOLoginVO", ssoLoginVO);
// **중요(필요시)
// 연동 완료시 저장한 개별사이트의 통함회원 아이디와 SSO로그인시 취득한 통합회원 아이디가 다른경우에는 개별사이트의 통합회원 아이디를 SSO로그인시 취득한 통합외원 아이디로 갱신 필요
return "sucess";
} else {
// 사용자 정보 조회 오류
System.out.println("[getUserInfo error] "+userInfo.get("error"));
System.out.println("[getUserInfo error_message] "+userInfo.get("error_message"));
return "fail";
}
} else {
// 로그인 실패
// 사용자 정보 조회 오류
// System.out.println("[login error] "+login.get("error"));
// System.out.println("[login error_message] "+login.get("error_message"));
return "fail";
}
// } catch (Exception e) {
// System.out.println("Exception Error");
// }
// return "sucess";
}
}

View File

@ -21,8 +21,6 @@ public class VeSendMail {
private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class); private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class);
@Value("#{globalSettings['Globals.edu.mail.template']}")
private String TEMPLATE_URI;
//================================================================ //================================================================
//찾교 메일 발송 계정 ID, PW 넣는 부분 //찾교 메일 발송 계정 ID, PW 넣는 부분

View File

@ -0,0 +1,81 @@
package kcc.ve.cmm.crt;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class CertPhoneInfo {
private static String cryptoUrl;
private static String reqNo;
private static String id;
private static String clientId;
private static String srvNo;
private static String retUrl;
private static String accessToken;
private static String stosUrl;
@Value("#{globalSettings['globals.certPhone.cryptoUrl']}")
public void setCryptoUrl(String value) {
CertPhoneInfo.cryptoUrl = value;
}
public String getCryptoUrl() {
return cryptoUrl;
}
@Value("#{globalSettings['globals.certPhone.reqNo']}")
public void setReqNo(String value) {
CertPhoneInfo.reqNo = value;
}
public String getReqNo() {
return reqNo;
}
@Value("#{globalSettings['globals.certPhone.id']}")
public void setId(String value) {
CertPhoneInfo.id = value;
}
public String getId() {
return id;
}
@Value("#{globalSettings['globals.certPhone.clientId']}")
public void setClientId(String value) {
CertPhoneInfo.clientId = value;
}
public String getClientId() {
return clientId;
}
@Value("#{globalSettings['globals.certPhone.srvNo']}")
public void setSrvNo(String value) {
CertPhoneInfo.srvNo = value;
}
public String getSrvNo() {
return srvNo;
}
@Value("#{globalSettings['globals.certPhone.retUrl']}")
public void setRetUrl(String value) {
CertPhoneInfo.retUrl = value;
}
public String getRetUrl() {
return retUrl;
}
@Value("#{globalSettings['globals.certPhone.accessToken']}")
public void setAccessToken(String value) {
CertPhoneInfo.accessToken = value;
}
public String getAccessToken() {
return accessToken;
}
@Value("#{globalSettings['globals.certPhone.stosUrl']}")
public void setStosUrl(String value) {
CertPhoneInfo.stosUrl = value;
}
public String getStosUrl() {
return stosUrl;
}
}

View File

@ -1,21 +1,157 @@
package kcc.ve.cmm.crt; package kcc.ve.cmm.crt;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser; import org.json.simple.parser.JSONParser;
import org.springframework.http.*;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.ModelAndView;
import javax.crypto.Cipher; import javax.crypto.*;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;
import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.Base64; import java.util.Base64;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Service(value = "certPhoneRequestUtill") @Service(value = "certPhoneRequestUtill")
public class CertPhoneRequestUtill { public class CertPhoneRequestUtill {
public String getEncReqData( String key, String iv, String reqData ) throws Exception { public String requestResult( HttpServletRequest request, ModelAndView modelAndView ) throws Exception {
String result = "fail";
CertPhoneInfo certPhoneInfo = new CertPhoneInfo();
String url = certPhoneInfo.getCryptoUrl();
String reqNo = certPhoneInfo.getReqNo();
String id = certPhoneInfo.getId();
String clientId = certPhoneInfo.getClientId();
String srvNo = certPhoneInfo.getSrvNo();
String retUrl = certPhoneInfo.getRetUrl() + "web/cmm/crt/certPhoneReturn.do";
String accessToken = certPhoneInfo.getAccessToken();
Date currentDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String reqDate = sdf.format(currentDate);
RestTemplate restTemplate = new RestTemplate();
// 1. Header 설정
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Authorization", "bearer " + accessToken);
// 2. Body 생성
Map<String, Object> dataHeader = new HashMap<>();
dataHeader.put("lang_code", "kr");
Map<String, Object> dataBody = new HashMap<>();
dataBody.put("client_id", clientId);
dataBody.put("req_date", reqDate);
dataBody.put("req_no", reqNo);
dataBody.put("enc_mode", "1");
Map<String, Object> requestJson = new HashMap<>();
requestJson.put("dataHeader", dataHeader);
requestJson.put("dataBody", dataBody);
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(requestJson, headers);
// 3. POST 요청 호출
ResponseEntity<String> response = restTemplate.exchange(
url,
HttpMethod.POST,
entity,
String.class
);
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> json = mapper.readValue(response.getBody(), Map.class);
Map<String, Object> resDataBody = (Map<String, Object>) json.get("dataBody");
String cryptoTokenId = (String) resDataBody.get("crypto_token_id");
String cryptoToken = (String) resDataBody.get("crypto_token");
String reqInfo = getReqData(id
, srvNo
, reqNo
, "72" + retUrl
, reqDate
, "H"); //4번시트 5 본인확인 서비스 요청데이터 암호화 항목참조
String symmetricKey = createSymmetricKey(reqDate, reqNo, cryptoToken);
String key = symmetricKey.substring(0, 16);
String iv = symmetricKey.substring(symmetricKey.length() - 16, symmetricKey.length());
request.getSession().setAttribute("reqkey", key);
request.getSession().setAttribute("reqiv", iv);
reqInfo = getEncReqData(key, iv, reqInfo);
String hmacKey = symmetricKey.substring(0, 32);
byte[] hmacSha256 = hmac256(hmacKey.getBytes(), reqInfo.getBytes());
String integrityValue = Base64.getEncoder().encodeToString(hmacSha256);
String baseEncStr = Base64.getEncoder().encodeToString(hmacSha256);
result = "success";
modelAndView.addObject("reqInfo", reqInfo);
modelAndView.addObject("cryptoTokenId", cryptoTokenId);
modelAndView.addObject("integrityValue", integrityValue);
modelAndView.addObject("verSion", "3");
return result;
}
public ModelAndView devLogin( HttpServletRequest request ) throws Exception{
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
// 1. 클라이언트에서 넘어온 평문 JSON 문자열
String retInfo = request.getParameter("retInfo");
// 2. 세션에서 /IV 가져오기
String reqkey = request.getSession().getAttribute("reqkey").toString();
String reqiv = request.getSession().getAttribute("reqiv").toString();
// 3. AES 암호화 설정
SecretKeySpec secureKey = new SecretKeySpec(reqkey.getBytes("UTF-8"), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secureKey, new IvParameterSpec(reqiv.getBytes("UTF-8")));
// 4. 평문 JSON 문자열을 바이트로 변환 암호화
byte[] plainBytes = retInfo.getBytes("UTF-8");
byte[] cipherBytes = cipher.doFinal(plainBytes);
// 5. 암호문을 Base64 인코딩해서 최종 문자열로 변환
String encRetInfo = Base64.getEncoder().encodeToString(cipherBytes);
// 필요하다면 응답에 포함
modelAndView.addObject("result", "success");
modelAndView.addObject("encRetInfo", encRetInfo);
return modelAndView;
}
///////// private Function
private String getEncReqData( String key, String iv, String reqData ) throws Exception {
String reqInfo = ""; String reqInfo = "";
try { try {
SecretKey secureKey = new SecretKeySpec(key.getBytes(), "AES"); SecretKey secureKey = new SecretKeySpec(key.getBytes(), "AES");
@ -32,7 +168,7 @@ public class CertPhoneRequestUtill {
return reqInfo; return reqInfo;
} }
public String createSymmetricKey( String req_dtim, String req_no, String token_val ) throws Exception { private String createSymmetricKey( String req_dtim, String req_no, String token_val ) throws Exception {
String symmetricKey = ""; String symmetricKey = "";
String value = req_dtim.trim() + req_no.trim() + token_val.trim(); String value = req_dtim.trim() + req_no.trim() + token_val.trim();
MessageDigest md; MessageDigest md;
@ -49,7 +185,7 @@ public class CertPhoneRequestUtill {
return symmetricKey; return symmetricKey;
} }
public byte[] hmac256( byte[] secretKey, byte[] message ) throws Exception { private byte[] hmac256( byte[] secretKey, byte[] message ) throws Exception {
byte[] hmac256 = null; byte[] hmac256 = null;
try { try {
Mac mac = Mac.getInstance("HmacSHA256"); Mac mac = Mac.getInstance("HmacSHA256");
@ -64,7 +200,7 @@ public class CertPhoneRequestUtill {
} }
} }
public String getReqData( String id, String srvNo, String reqNum, String retUrl, String certDate, String certGb ) { private String getReqData( String id, String srvNo, String reqNum, String retUrl, String certDate, String certGb ) {
JSONObject msgMap = new JSONObject(); JSONObject msgMap = new JSONObject();
msgMap.put("id", id); msgMap.put("id", id);
@ -79,7 +215,7 @@ public class CertPhoneRequestUtill {
} }
//복호화 //복호화
public JSONObject getResData( String req_info, String key, String iv ) throws Exception { private JSONObject getResData( String req_info, String key, String iv ) throws Exception {
SecretKey secureKey = new SecretKeySpec(key.getBytes(), "AES"); SecretKey secureKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher c; Cipher c;
String resData = ""; String resData = "";
@ -99,4 +235,6 @@ public class CertPhoneRequestUtill {
return jsonResData; return jsonResData;
} }
} }

View File

@ -28,34 +28,26 @@ import java.util.Map;
@Service(value = "certPhoneResultUtill") @Service(value = "certPhoneResultUtill")
public class CertPhoneResultUtill { public class CertPhoneResultUtill {
public String createCryptoTokenUrl = "https://sciapi.siren24.com:52099/authentication/api/v1.0/common/crypto/token";
public String access_token = "994b5d96-3788-4239-a5b0-a0ba2e0cf089 ";
public String client_id = "5a2a72e2-16ce-420c-8816-57b3dda0e231";
public CertPhoneResultUtill() throws Exception { CertPhoneInfo certPhoneInfo = new CertPhoneInfo();
}
public String createCryptoTokenUrl = certPhoneInfo.getCryptoUrl();
public String access_token = certPhoneInfo.getAccessToken();
public String client_id = certPhoneInfo.getClientId();
public String certResult( HttpServletRequest request ) throws Exception { public String certResult( HttpServletRequest request ) throws Exception {
String reqcryptotokenid = request.getParameter("crypto_token_id"); String reqcryptotokenid = request.getParameter("crypto_token_id");
String integrity_value = request.getParameter("integrity_value"); String integrity_value = request.getParameter("integrity_value");
System.out.println("crypto_token_id -> " + reqcryptotokenid);
System.out.println("integrity_value -> " + integrity_value);
String id = "SKIP001"; String id = certPhoneInfo.getId();
String url = "https://pcc.siren24.com/servlet/StoS"; String url = certPhoneInfo.getStosUrl();
// String reqInfo = certPhoneResultUtill.getReqData(id, crypto_token_id);
//
// String key = request.getSession().getAttribute("certPhoneKey").toString();
// String iv = request.getSession().getAttribute("certPhoneIv").toString();
// reqInfo = certPhoneResultUtill.getEncReqData(key, iv, reqInfo);
//암호화키 얻기 //암호화키 얻기
Date currentDate = new Date(); Date currentDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String reqDate = sdf.format(currentDate); String reqDate = sdf.format(currentDate);
String reqNo = "koipa_edu";
String reqNo = certPhoneInfo.getReqNo();
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
String cryptoToken = callCreateCryptoTokenAPI(currentDate, reqNo); String cryptoToken = callCreateCryptoTokenAPI(currentDate, reqNo);
@ -109,7 +101,6 @@ public class CertPhoneResultUtill {
String.class String.class
); );
System.out.println("Response: " + response.getBody());
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
@ -129,12 +120,8 @@ public class CertPhoneResultUtill {
// Base64 디코딩 복호화 수행 // Base64 디코딩 복호화 수행
byte[] cipherEnc = Base64.getDecoder().decode(retInfo); byte[] cipherEnc = Base64.getDecoder().decode(retInfo);
String resData = new String(cipher.doFinal(cipherEnc), "UTF-8"); String resData = new String(cipher.doFinal(cipherEnc), "UTF-8");
/* /*
===== 복호화된 결과 ===== ===== 복호화된 결과 =====
Commid = KTM Commid = KTM
@ -223,7 +210,6 @@ public class CertPhoneResultUtill {
req_info = Base64.getEncoder().encodeToString(encrypted); req_info = Base64.getEncoder().encodeToString(encrypted);
} catch(Exception e) { } catch(Exception e) {
System.out.println(String.format("(APICERT)(ERR) getEncReqData Exception : %s", e.getMessage())); System.out.println(String.format("(APICERT)(ERR) getEncReqData Exception : %s", e.getMessage()));
e.printStackTrace();
throw e; throw e;
} }
return req_info; return req_info;
@ -239,7 +225,6 @@ public class CertPhoneResultUtill {
return hmac256; return hmac256;
} catch(Exception e) { } catch(Exception e) {
System.out.println(String.format("(APICERT)(ERR) hmac256 Exception : %s", e.getMessage())); System.out.println(String.format("(APICERT)(ERR) hmac256 Exception : %s", e.getMessage()));
e.printStackTrace();
throw e; throw e;
} }
} }
@ -255,7 +240,6 @@ public class CertPhoneResultUtill {
symmetricKey = Base64.getEncoder().encodeToString(arrHashValue); symmetricKey = Base64.getEncoder().encodeToString(arrHashValue);
} catch(Exception e) { } catch(Exception e) {
System.out.println(String.format("(APICERT)(ERR) createSymmetricKey Exception : %s", e.getMessage())); System.out.println(String.format("(APICERT)(ERR) createSymmetricKey Exception : %s", e.getMessage()));
e.printStackTrace();
throw e; throw e;
} }
return symmetricKey; return symmetricKey;
@ -272,7 +256,6 @@ public class CertPhoneResultUtill {
isFail = false; isFail = false;
} catch(Exception e) { } catch(Exception e) {
System.out.println(String.format("(APICERT)(ERR) send Exception : %s", e.getMessage())); System.out.println(String.format("(APICERT)(ERR) send Exception : %s", e.getMessage()));
e.printStackTrace();
throw e; throw e;
} finally { } finally {
if(bufferedWriter != null) { if(bufferedWriter != null) {
@ -308,7 +291,6 @@ public class CertPhoneResultUtill {
receiveMsg = stringBuilder.toString(); receiveMsg = stringBuilder.toString();
} catch(Exception e) { } catch(Exception e) {
System.out.println(String.format("(APICERT)(ERR) receive Exception : %s", e.getMessage())); System.out.println(String.format("(APICERT)(ERR) receive Exception : %s", e.getMessage()));
e.printStackTrace();
throw e; throw e;
} finally { } finally {
if(bufferedReader != null) { if(bufferedReader != null) {
@ -333,20 +315,16 @@ public class CertPhoneResultUtill {
return connection; return connection;
} catch(Exception e) { } catch(Exception e) {
System.out.println(String.format("(APICERT)(ERR) getURLConnection Exception : %s", e.getMessage())); System.out.println(String.format("(APICERT)(ERR) getURLConnection Exception : %s", e.getMessage()));
e.printStackTrace();
throw e; throw e;
} finally { } finally {
} }
} }
public String getReqData( String id, String reqcryptotokenid ) { public String getReqData( String id, String reqcryptotokenid ) {
JSONObject msgMap = new JSONObject(); JSONObject msgMap = new JSONObject();
msgMap.put("id", id); msgMap.put("id", id);
msgMap.put("reqcryptotokenid", reqcryptotokenid); msgMap.put("reqcryptotokenid", reqcryptotokenid);
String reqData = msgMap.toJSONString(); String reqData = msgMap.toJSONString();
return reqData; return reqData;

View File

@ -11,9 +11,6 @@ import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Base64; import java.util.Base64;
@ -32,10 +29,6 @@ public class CertPhoneWebController {
@Resource(name = "certPhoneResultUtill") @Resource(name = "certPhoneResultUtill")
private CertPhoneResultUtill certPhoneResultUtill; private CertPhoneResultUtill certPhoneResultUtill;
//로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
/** /**
* 본인인증 * 본인인증
*/ */
@ -45,100 +38,14 @@ public class CertPhoneWebController {
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView"); modelAndView.setViewName("jsonView");
String result = "fail"; String result = certPhoneRequestUtill.requestResult(request, modelAndView);
try {
String url = "https://sciapi.siren24.com:52099/authentication/api/v1.0/common/crypto/token";
Date currentDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String reqDate = sdf.format(currentDate);
String reqNo = "koipa_edu";
String id = "SKIP001";
String clientId = "5a2a72e2-16ce-420c-8816-57b3dda0e231";
String srvNo = "001003";
String retUrl = "https://dev-ipedu-cert.iten.co.kr/ipedu/web/cmm/crt/certPhoneReturn.do";
// String retUrl = "https://dev-ipedu-cert.iten.co.kr/ipedu/web/user/login/actionSecurityLogin.do";
String accessToken = "994b5d96-3788-4239-a5b0-a0ba2e0cf089";
RestTemplate restTemplate = new RestTemplate();
// 1. Header 설정
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Authorization", "bearer " + accessToken);
// 2. Body 생성
Map<String, Object> dataHeader = new HashMap<>();
dataHeader.put("lang_code", "kr");
Map<String, Object> dataBody = new HashMap<>();
dataBody.put("client_id", clientId);
dataBody.put("req_date", reqDate);
dataBody.put("req_no", reqNo);
dataBody.put("enc_mode", "1");
Map<String, Object> requestJson = new HashMap<>();
requestJson.put("dataHeader", dataHeader);
requestJson.put("dataBody", dataBody);
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(requestJson, headers);
// 3. POST 요청 호출
ResponseEntity<String> response = restTemplate.exchange(
url,
HttpMethod.POST,
entity,
String.class
);
System.out.println("Response: " + response.getBody());
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> json = mapper.readValue(response.getBody(), Map.class);
Map<String, Object> resDataBody = (Map<String, Object>) json.get("dataBody");
String cryptoTokenId = (String) resDataBody.get("crypto_token_id");
String cryptoToken = (String) resDataBody.get("crypto_token");
String reqInfo = certPhoneRequestUtill.getReqData(id
, srvNo
, reqNo
, "72" + retUrl
, reqDate
, "H"); //4번시트 5 본인확인 서비스 요청데이터 암호화 항목참조
String symmetricKey = certPhoneRequestUtill.createSymmetricKey(reqDate, reqNo, cryptoToken);
String key = symmetricKey.substring(0, 16);
String iv = symmetricKey.substring(symmetricKey.length() - 16, symmetricKey.length());
request.getSession().setAttribute("reqkey", key);
request.getSession().setAttribute("reqiv", iv);
reqInfo = certPhoneRequestUtill.getEncReqData(key, iv, reqInfo);
String hmacKey = symmetricKey.substring(0, 32);
byte[] hmacSha256 = certPhoneRequestUtill.hmac256(hmacKey.getBytes(), reqInfo.getBytes());
String integrityValue = Base64.getEncoder().encodeToString(hmacSha256);
String baseEncStr = Base64.getEncoder().encodeToString(hmacSha256);
modelAndView.addObject("reqInfo", reqInfo);
modelAndView.addObject("cryptoTokenId", cryptoTokenId);
modelAndView.addObject("integrityValue", integrityValue);
modelAndView.addObject("verSion", "3");
result = "success";
} catch(Exception ex) {
System.out.println(ex.getMessage());
}
modelAndView.addObject("result", result); modelAndView.addObject("result", result);
return modelAndView; return modelAndView;
} }
@RequestMapping("/web/cmm/crt/certPhoneReturn.do") @RequestMapping("/web/cmm/crt/certPhoneReturn.do")
public String certPhoneReturn( HttpServletRequest request, ModelMap model ) throws Exception { public String certPhoneReturn( HttpServletRequest request, ModelMap model ) throws Exception {
@ -153,36 +60,12 @@ public class CertPhoneWebController {
public ModelAndView certPhoneRequestAjax_dev( HttpServletRequest request ) throws Exception { public ModelAndView certPhoneRequestAjax_dev( HttpServletRequest request ) throws Exception {
ModelAndView modelAndView = new ModelAndView(); ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView"); modelAndView = certPhoneRequestUtill.devLogin(request);
// 1. 클라이언트에서 넘어온 평문 JSON 문자열
String retInfo = request.getParameter("retInfo");
System.out.println("plain retInfo -> " + retInfo);
// 2. 세션에서 /IV 가져오기
String reqkey = request.getSession().getAttribute("reqkey").toString();
String reqiv = request.getSession().getAttribute("reqiv").toString();
// 3. AES 암호화 설정
SecretKeySpec secureKey = new SecretKeySpec(reqkey.getBytes("UTF-8"), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secureKey, new IvParameterSpec(reqiv.getBytes("UTF-8")));
// 4. 평문 JSON 문자열을 바이트로 변환 암호화
byte[] plainBytes = retInfo.getBytes("UTF-8");
byte[] cipherBytes = cipher.doFinal(plainBytes);
// 5. 암호문을 Base64 인코딩해서 최종 문자열로 변환
String encRetInfo = Base64.getEncoder().encodeToString(cipherBytes);
System.out.println("encrypted retInfo(Base64) -> " + encRetInfo);
// 필요하다면 응답에 포함
modelAndView.addObject("result", "success");
modelAndView.addObject("encRetInfo", encRetInfo);
return modelAndView; return modelAndView;
} }
} }

View File

@ -206,22 +206,6 @@ public class MainController {
@Value("#{globalSettings['Globals.email.toEmail.BCC']}") @Value("#{globalSettings['Globals.email.toEmail.BCC']}")
private String Globals_email_toEmail_BCC; private String Globals_email_toEmail_BCC;
/** SSO return URL */
@Value("#{globalSettings['Globals.sso.returnSiteUrl']}")
private String returnSiteUrlGlobal;
@Value("#{globalSettings['Globals.sso.returnSiteCode']}")
private String returnSiteCodeGlobal;
/** SSO 회원관련 URL */
@Value("#{globalSettings['Globals.sso.joinUrl']}")
private String joinUrl_Global;
@Value("#{globalSettings['Globals.sso.modifyUrl']}")
private String modifyUrl_Global;
@Value("#{globalSettings['Globals.sso.idFindUrl']}")
private String idFindUrl_Global;
@Value("#{globalSettings['Globals.sso.pwFindUrl']}")
private String pwFindUrl_Global;
/** 구동 환경 */ /** 구동 환경 */
@Value("#{property['Globals.prod.islocal']}") @Value("#{property['Globals.prod.islocal']}")
private String environment; private String environment;
@ -561,16 +545,6 @@ public class MainController {
model.addAttribute("ssoLoginVO", ssoLoginVO); model.addAttribute("ssoLoginVO", ssoLoginVO);
} }
String returnSiteUrl = returnSiteUrlGlobal;
String returnSiteCode = returnSiteCodeGlobal;
String joinUrl = joinUrl_Global;
String modifyUrl = modifyUrl_Global;
model.addAttribute("returnSiteUrl", (URLEncoder.encode(returnSiteUrl)));
model.addAttribute("returnSiteCode", returnSiteCode);
model.addAttribute("joinUrl", joinUrl);
model.addAttribute("modifyUrl", modifyUrl);
model.addAttribute("environment", environment); //로그인, 회원가입 URL 환경에 따른 구분 ex) local, dev, svr model.addAttribute("environment", environment); //로그인, 회원가입 URL 환경에 따른 구분 ex) local, dev, svr
if(loginVO != null) if(loginVO != null)

View File

@ -1,170 +1,79 @@
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
# #
# globals.properties : \uc2dc\uc2a4\ud15c # globals.properties : \uC2DC\uC2A4\uD15C
# #
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4. # 1. key = value \uAD6C\uC870\uC785\uB2C8\uB2E4.
# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5 # 2. key\uAC12\uC740 \uACF5\uBC31\uBB38\uC790\uB97C \uD3EC\uD568\uBD88\uAC00, value\uAC12\uC740 \uACF5\uBC31\uBB38\uC790\uB97C \uAC00\uB2A5
# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5 # 3. key\uAC12\uC73C\uB85C \uD55C\uAE00\uC744 \uC0AC\uC6A9\uBD88\uAC00, value\uAC12\uC740 \uD55C\uAE00\uC0AC\uC6A9\uC774 \uAC00\uB2A5
# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9) # 4. \uC904\uC744 \uBC14\uAFC0 \uD544\uC694\uAC00 \uC788\uC73C\uBA74 '\'\uB97C \uB77C\uC778\uC758 \uB05D\uC5D0 \uCD94\uAC00(\uB9CC\uC57D '\'\uBB38\uC790\uB97C \uC0AC\uC6A9\uD574\uC57C \uD558\uB294 \uACBD\uC6B0\uB294 '\\'\uB97C \uC0AC\uC6A9)
# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428) # 5. Windows\uC5D0\uC11C\uC758 \uB514\uB809\uD1A0\uB9AC \uD45C\uC2DC : '\\' or '/' ('\' \uC0AC\uC6A9\uD558\uBA74 \uC548\uB428)
# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/' # 6. Unix\uC5D0\uC11C\uC758 \uB514\uB809\uD1A0\uB9AC \uD45C\uC2DC : '/'
# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9 # 7. \uC8FC\uC11D\uBB38 \uCC98\uB9AC\uB294 #\uC0AC\uC6A9
# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83 # 8. value\uAC12 \uB4A4\uC5D0 \uC2A4\uD398\uC774\uC2A4\uAC00 \uC874\uC7AC\uD558\uB294 \uACBD\uC6B0 \uC11C\uBE14\uB9BF\uC5D0\uC11C \uCC38\uC870\uD560\uB54C\uB294 \uC5D0\uB7EC\uBC1C\uC0DD\uD560 \uC218 \uC788\uC73C\uBBC0\uB85C trim()\uD558\uAC70\uB098 \uB9C8\uC9C0\uB9C9 \uACF5\uBC31\uC5C6\uC774 properties \uAC12\uC744 \uC124\uC815\uD560\uAC83
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
crypto.key=A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6 crypto.key=A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
crypto.iv=1234567890ABCDEF crypto.iv=1234567890ABCDEF
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX) # \uC6B4\uC601\uC11C\uBC84 \uD0C0\uC785(WINDOWS, UNIX)
Globals.OsType = WINDOWS Globals.OsType = WINDOWS
# G4C \uc5f0\uacb0\uc6a9 IP (localhost) # G4C \uC5F0\uACB0\uC6A9 IP (localhost)
Globals.LocalIp = 127.0.0.1 Globals.LocalIp = 127.0.0.1
# DB\uc11c\ubc84 \ud0c0\uc785(mysql,oracle,altibase,tibero) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428 # DB\uC11C\uBC84 \uD0C0\uC785(mysql,oracle,altibase,tibero) - datasource \uBC0F sqlMap \uD30C\uC77C \uC9C0\uC815\uC5D0 \uC0AC\uC6A9\uB428
Globals.DbType = tibero Globals.DbType = postgresql
# \uac1c\ubc1c\uc6a9 DB \uc11c\ubc84 tibero \uc5f0\ub3d9 # \uAC1C\uBC1C\uC6A9 DB \uC11C\uBC84 tibero \uC5F0\uB3D9
Globals.UserName= EDUSCE # \uD1B5\uD569DB - ipict1
Globals.Password= edusce#23 # schema - ipedu_scm
# User - ipedu_user
# password - qw3$kEduReal!
Globals.UserName= koipaEdu
Globals.Password= koipaEdu123
Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver Globals.DriverClassName=org.postgresql.Driver
#\ub85c\uceec DB #\uB85C\uCEEC DB
#Globals.Url=jdbc:tibero:thin:@192.168.0.30:8633:tibero Globals.Url=jdbc:postgresql://192.168.0.60:5432/koipaEduDB?stringtype=unspecified
#\uc6b4\uc601 \uac1c\ubc1cDB - \ud14c\uc2a4\ud2b8 \uc644\ub8cc \ud6c4 \uc6b4\uc601 DB\ub85c \ubcc0\uacbd \uc608\uc815 #\uC6B4\uC601 \uAC1C\uBC1CDB
#Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb #Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
#\uc6b4\uc601 DB #\uC6B4\uC601 DB
Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb #Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c)
Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
Globals.SMSDB.Url=jdbc:oracle:thin:@192.168.0.118:1521:xe
Globals.SMSDB.UserName=KCCADR
Globals.SMSDB.Password=kccadr
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uc6b4\uc601)
#Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
#Globals.SMSDB.Url=jdbc:oracle:thin:@222.231.43.26:1521:ora10g
#Globals.SMSDB.UserName=smsmanager
#Globals.SMSDB.Password=eksanswk2014
Globals.SMSDB.SendTelNo=02-2669-0042
Globals.SMSDB.TrId=kccadr
# \uc800\uc791\uc704 \uba54\uc77c\uc804\uc1a1
Globals.KccMail.URI=https://mail.copyright.or.kr/mail_api/form_send_mail
Globals.KccMail.api_key=#!@mail5455
Globals.KccMail.sender=adr@copyright.or.kr
Globals.KccMail.title=[\ud55c\uad6d\uc800\uc791\uad8c\uc704\uc6d0\ud68c] \ubd84\uc7c1\uc870\uc815\uc2dc\uc2a4\ud15c \uc54c\ub9bc
#SSO \uc811\uc18d\uc815\ubcf4
#\uac1c\ubc1c\uc11c\ubc84
Globals.sso.ssoUri=https://devsso.copyright.or.kr/oauth2/token.do
Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
Globals.sso.scope=http://sso.copyright.or.kr
Globals.sso.returnSiteUrl=http://219.240.88.15:8091/web/user/login/ssoUsrModifyResult.do
Globals.sso.returnSiteCode=SITE011
#\uc2e4\uc11c\ubc84
#Globals.sso.ssoUri=https://sso.copyright.or.kr/oauth2/token.do
#Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
#Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
#Globals.sso.scope=http://sso.copyright.or.kr
#Globals.sso.returnSiteUrl=http://adr.copyright.or.kr/web/user/login/ssoUsrModifyResult.do
#Globals.sso.returnSiteCode=SITE011
#SSO \ud1b5\ud569\ud68c\uc6d0\uc0ac\uc774\ud2b8 URL
#\uac1c\ubc1c\uc11c\ubc84
Globals.sso.joinUrl=https://devoneid.copyright.or.kr/member/signUp/signUpStep1.do
Globals.sso.modifyUrl=https://devoneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
Globals.sso.idFindUrl=https://devoneid.copyright.or.kr/member/infoFind/idFindStep1.do
Globals.sso.pwFindUrl=https://devoneid.copyright.or.kr/member/infoFind/passFindStep1.do
#\uc2e4\uc11c\ubc84
#Globals.sso.joinUrl=https://oneid.copyright.or.kr/member/signUp/signUpStep1.do
#Globals.sso.modifyUrl=https://oneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
#Globals.sso.idFindUrl=https://oneid.copyright.or.kr/member/infoFind/idFindStep1.do
#Globals.sso.pwFindUrl=https://oneid.copyright.or.kr/member/infoFind/passFindStep1.do
# MainPage Setting(admin) # MainPage Setting(admin)
Globals.MainPage = /cmm/main/mainPage.do Globals.MainPage = /cmm/main/mainPage.do
#\ucee8\ud150\uce20 \ud30c\uc77c\uc704\uce58 #\uCEE8\uD150\uCE20 \uD30C\uC77C\uC704\uCE58
#Globals.ckeditorUploadDir=/home/file/ckeditor/ #Globals.ckeditorUploadDir=/home/file/ckeditor/
Globals.ckeditorUploadDir=/usr/local/tomcat/file/ckeditor/ Globals.ckeditorUploadDir=/usr/local/tomcat/file/ckeditor/
#TEST SERVER #TEST SERVER
Globals.RealCntFileFolder=C:/eGovFrameDev-3.9.0-64bit_ncms/workspace/ncms39/src/main/webapp/WEB-INF/jsp/cnt/ Globals.RealCntFileFolder=C:/eGovFrameDev-3.9.0-64bit_ncms/workspace/ncms39/src/main/webapp/WEB-INF/jsp/cnt/
Globals.Solr.url=http://localhost:8983/solr Globals.Solr.url=http://localhost:8983/solr
#SNS \ub85c\uadf8\uc778 KEY \uac12 #\uC0AC\uC774\uD2B8 \uC544\uC774\uB514 \uC81C\uAC70\uB85C JSP\uC5D0\uC11C siteId/siteNm \uBCF4\uC5EC\uC8FC\uAE30 \uC704\uD574
#ITN \ub124\uc774\ubc84 Globals.homepage.siteId=ipedu
Globals.kcc.naver.clentId=d9Ohvhty_RVsfrq9p_2J Globals.homepage.siteNm=\uC9C0\uC2DD\uC7AC\uC0B0\uBCF4\uD638\uAD50\uC721\uC2DC\uC2A4\uD15C
Globals.kcc.naver.clientSecret=kwiEmpkLg5
Globals.kcc.naver.returnUrl=http://localhost:80/snsLogin/naverOauth.do
#ITN \uce74\uce74\uc624
Globals.kcc.kakao.restApiKey=10b66ad0c44b68b659855ddd64db2c44
Globals.kcc.kakao.returnUrl=http://localhost:80/snsLogin/kakaoOauth.do
#\uc0ac\uc774\ud2b8 \uc544\uc774\ub514 \uc81c\uac70\ub85c JSP\uc5d0\uc11c siteId/siteNm \ubcf4\uc5ec\uc8fc\uae30 \uc704\ud574 #prod \uAC1C\uBC1C, \uC2E4\uC11C\uBC84 \uAD6C\uBD84\uAC12
Globals.homepage.siteId=kccadr #\uB85C\uCEEC
Globals.homepage.siteNm=\uc804\uc790\uc870\uc815\uc2dc\uc2a4\ud15c
#pdf-url
##=====================================1.local(http://192.168.0.34:7080)=============================================================
##pdf\ubcc0\ud658\uc11c\ubc84 - WAS \uc5d0\uc11c \ud638\ucd9c\ud558\ub294 PDF \ubcc0\ud658 \uc11c\ubc84 IP \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
#Globals.pdf.serverUrl=192.168.0.200
##\uc6f9\ud398\uc774\uc9c0\ub97c pdf\ub85c \ubcc0\ud658\ud558\uae30 \uc704\ud55c api \ud638\ucd9curl - \uc870\uc815\uc2e0\uccad\uc11c \ub4f1 - WAS \uc11c\ubc84 \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
#Globals.pdf.apiUrl=http://192.168.0.34:7080
##pdf \uc11c\ubc84\uc758 \ub124\ud2b8\uc6cc\ud06c \uacbd\ub85c
##pdf\ubcc0\ud658 \uc11c\ube0c\ub97c \uc704\ud55c path - 1.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc774 \uc0dd\uc131\ub418\ub294 \uacbd\ub85c - PDF \ubcc0\ud658 \uc11c\ubc84\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \ud3f4\ub354 \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
#Globals.pdf.filepath.out=file:/z:/out/
##tomcat upload \uacbd\ub85c
##\ud30c\uc77c \uad00\ub9ac\ub97c \uc704\ud55c path - 2.pdf\ubcc0\ud658\uc744 \uc704\ud55c \uc5c5\ub85c\ub4dc \ud30c\uc77c \uacbd\ub85c - WAS \uc11c\ubc84\uc5d0\uc11c PDF \ubcc0\ud658 \uc9c0\uc6d0\uc744 \uc704\ud574 \uc81c\uc5b4 \ud558\ub294 \uacbd\ub85c
#Globals.pdf.makepath=y:/
##\ud30c\uc77c \uad00\ub9ac\ub97c \uc704\ud55c path - 3.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc774 \uc0dd\uc131\ub418\ub294 \uacbd\ub85c - WAS \uc11c\ubc84\uc5d0\uc11c PDF \ubcc0\ud658 \uc9c0\uc6d0\uc744 \uc704\ud574 \uc81c\uc5b4 \ud558\ub294 \uacbd\ub85c
#Globals.pdf.makepath.out=y:/out/
##pdf\ubcc0\ud658 \ud30c\uc77c\uc758 \uc6f9\uc811\uadfc\uc744 \uc704\ud55c path - 4.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc744 \uc6f9\uc5d0\uc11c \uc811\uadfc\ud558\uae30 \uc704\ud55c \uacbd\ub85c - \ubcc0\ud658\ub41c PDF \ud30c\uc77c\uc744 \uc6f9\ud398\uc774\uc9c0\uc5d0\uc11c \uc811\uadfc\ud558\uae30 \uc704\ud574 \uc124\uc815\ub41c \uacbd\ub85c \uc815\ubcf4
#Globals.pdf.webpath=/pdf/out/
##=====================================2.\uac1c\ubc1c\uc11c\ubc84(http://219.240.88.15:8091)=============================================================
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
Globals.pdf.serverUrl=192.168.0.200
Globals.pdf.apiUrl=http://219.240.88.15:8091
Globals.pdf.filepath.out=file:/z:/out/
Globals.pdf.makepath=/usr/local/tomcat/file/sht/
Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
Globals.pdf.webpath=/pdf/out/
##=====================================3.\uc2e4\uc11c\ubc84(192.168.39.143, 192.168.39.144)=============================================================
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
#Globals.pdf.serverUrl=192.168.39.147
#Globals.pdf.apiUrl=http://192.168.39.143:8080
#Globals.pdf.filepath.out=file:/z:/out/
#Globals.pdf.makepath=/usr/local/tomcat/file/sht/
#Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
#Globals.pdf.webpath=/pdf/out/
#prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12
#\ub85c\uceec
#Globals.prod.islocal=local #Globals.prod.islocal=local
#\uc6b4\uc601 \uac1c\ubc1c #\uC6B4\uC601 \uAC1C\uBC1C
#Globals.prod.islocal=dev #Globals.prod.islocal=dev
#\uc6b4\uc601 #\uC6B4\uC601
Globals.prod.islocal=real Globals.prod.islocal=real
#\uB300\uC6A9\uB7C9 innorix license
#\ub300\uc6a9\ub7c9 innorix license Globals.Innorix.License=dev
Globals.Innorix.License=svr
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/ Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
#\uad50\uc721 \uc54c\ub9bc \uba54\uc77c \ud15c\ud50c\ub9bf
Globals.edu.mail.template=/template/offeduMain.html # ===========================
# Siren24 \uC778\uC99D \uAD00\uB828 \uC124\uC815
# ===========================
globals.certPhone.retUrl = https://dev-ipedu-cert.iten.co.kr/ipedu/
globals.certPhone.cryptoUrl = https://sciapi.siren24.com:52099/authentication/api/v1.0/common/crypto/token
globals.certPhone.reqNo = koipa_edu
globals.certPhone.id = SKIP001
globals.certPhone.clientId = 5a2a72e2-16ce-420c-8816-57b3dda0e231
globals.certPhone.srvNo = 001003
globals.certPhone.accessToken = 994b5d96-3788-4239-a5b0-a0ba2e0cf089
globals.certPhone.stosUrl = https://pcc.siren24.com/servlet/StoS

View File

@ -1,31 +1,31 @@
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
# #
# globals.properties : \uc2dc\uc2a4\ud15c # globals.properties : \uC2DC\uC2A4\uD15C
# #
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
# 1. key = value \uad6c\uc870\uc785\ub2c8\ub2e4. # 1. key = value \uAD6C\uC870\uC785\uB2C8\uB2E4.
# 2. key\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \ud3ec\ud568\ubd88\uac00, value\uac12\uc740 \uacf5\ubc31\ubb38\uc790\ub97c \uac00\ub2a5 # 2. key\uAC12\uC740 \uACF5\uBC31\uBB38\uC790\uB97C \uD3EC\uD568\uBD88\uAC00, value\uAC12\uC740 \uACF5\uBC31\uBB38\uC790\uB97C \uAC00\uB2A5
# 3. key\uac12\uc73c\ub85c \ud55c\uae00\uc744 \uc0ac\uc6a9\ubd88\uac00, value\uac12\uc740 \ud55c\uae00\uc0ac\uc6a9\uc774 \uac00\ub2a5 # 3. key\uAC12\uC73C\uB85C \uD55C\uAE00\uC744 \uC0AC\uC6A9\uBD88\uAC00, value\uAC12\uC740 \uD55C\uAE00\uC0AC\uC6A9\uC774 \uAC00\uB2A5
# 4. \uc904\uc744 \ubc14\uafc0 \ud544\uc694\uac00 \uc788\uc73c\uba74 '\'\ub97c \ub77c\uc778\uc758 \ub05d\uc5d0 \ucd94\uac00(\ub9cc\uc57d '\'\ubb38\uc790\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uacbd\uc6b0\ub294 '\\'\ub97c \uc0ac\uc6a9) # 4. \uC904\uC744 \uBC14\uAFC0 \uD544\uC694\uAC00 \uC788\uC73C\uBA74 '\'\uB97C \uB77C\uC778\uC758 \uB05D\uC5D0 \uCD94\uAC00(\uB9CC\uC57D '\'\uBB38\uC790\uB97C \uC0AC\uC6A9\uD574\uC57C \uD558\uB294 \uACBD\uC6B0\uB294 '\\'\uB97C \uC0AC\uC6A9)
# 5. Windows\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '\\' or '/' ('\' \uc0ac\uc6a9\ud558\uba74 \uc548\ub428) # 5. Windows\uC5D0\uC11C\uC758 \uB514\uB809\uD1A0\uB9AC \uD45C\uC2DC : '\\' or '/' ('\' \uC0AC\uC6A9\uD558\uBA74 \uC548\uB428)
# 6. Unix\uc5d0\uc11c\uc758 \ub514\ub809\ud1a0\ub9ac \ud45c\uc2dc : '/' # 6. Unix\uC5D0\uC11C\uC758 \uB514\uB809\uD1A0\uB9AC \uD45C\uC2DC : '/'
# 7. \uc8fc\uc11d\ubb38 \ucc98\ub9ac\ub294 #\uc0ac\uc6a9 # 7. \uC8FC\uC11D\uBB38 \uCC98\uB9AC\uB294 #\uC0AC\uC6A9
# 8. value\uac12 \ub4a4\uc5d0 \uc2a4\ud398\uc774\uc2a4\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 \uc11c\ube14\ub9bf\uc5d0\uc11c \ucc38\uc870\ud560\ub54c\ub294 \uc5d0\ub7ec\ubc1c\uc0dd\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c trim()\ud558\uac70\ub098 \ub9c8\uc9c0\ub9c9 \uacf5\ubc31\uc5c6\uc774 properties \uac12\uc744 \uc124\uc815\ud560\uac83 # 8. value\uAC12 \uB4A4\uC5D0 \uC2A4\uD398\uC774\uC2A4\uAC00 \uC874\uC7AC\uD558\uB294 \uACBD\uC6B0 \uC11C\uBE14\uB9BF\uC5D0\uC11C \uCC38\uC870\uD560\uB54C\uB294 \uC5D0\uB7EC\uBC1C\uC0DD\uD560 \uC218 \uC788\uC73C\uBBC0\uB85C trim()\uD558\uAC70\uB098 \uB9C8\uC9C0\uB9C9 \uACF5\uBC31\uC5C6\uC774 properties \uAC12\uC744 \uC124\uC815\uD560\uAC83
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
crypto.key=A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6 crypto.key=A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
crypto.iv=1234567890ABCDEF crypto.iv=1234567890ABCDEF
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX) # \uC6B4\uC601\uC11C\uBC84 \uD0C0\uC785(WINDOWS, UNIX)
Globals.OsType = WINDOWS Globals.OsType = WINDOWS
# G4C \uc5f0\uacb0\uc6a9 IP (localhost) # G4C \uC5F0\uACB0\uC6A9 IP (localhost)
Globals.LocalIp = 127.0.0.1 Globals.LocalIp = 127.0.0.1
# DB\uc11c\ubc84 \ud0c0\uc785(mysql,oracle,altibase,tibero) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428 # DB\uC11C\uBC84 \uD0C0\uC785(mysql,oracle,altibase,tibero) - datasource \uBC0F sqlMap \uD30C\uC77C \uC9C0\uC815\uC5D0 \uC0AC\uC6A9\uB428
Globals.DbType = postgresql Globals.DbType = postgresql
# \uac1c\ubc1c\uc6a9 DB \uc11c\ubc84 tibero \uc5f0\ub3d9 # \uAC1C\uBC1C\uC6A9 DB \uC11C\uBC84 tibero \uC5F0\uB3D9
# \ud1b5\ud569DB - ipict1 # \uD1B5\uD569DB - ipict1
# schema - ipedu_scm # schema - ipedu_scm
# User - ipedu_user # User - ipedu_user
# password - qw3$kEduReal! # password - qw3$kEduReal!
@ -33,143 +33,47 @@ Globals.UserName= koipaEdu
Globals.Password= koipaEdu123 Globals.Password= koipaEdu123
Globals.DriverClassName=org.postgresql.Driver Globals.DriverClassName=org.postgresql.Driver
#\ub85c\uceec DB #\uB85C\uCEEC DB
Globals.Url=jdbc:postgresql://192.168.0.60:5432/koipaEduDB?stringtype=unspecified Globals.Url=jdbc:postgresql://192.168.0.60:5432/koipaEduDB?stringtype=unspecified
#\uc6b4\uc601 \uac1c\ubc1cDB #\uC6B4\uC601 \uAC1C\uBC1CDB
#Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb #Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
#\uc6b4\uc601 DB #\uC6B4\uC601 DB
#Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb #Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c)
Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
Globals.SMSDB.Url=jdbc:oracle:thin:@192.168.0.118:1521:xe
Globals.SMSDB.UserName=KCCADR
Globals.SMSDB.Password=kccadr
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uc6b4\uc601)
#Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
#Globals.SMSDB.Url=jdbc:oracle:thin:@222.231.43.26:1521:ora10g
#Globals.SMSDB.UserName=smsmanager
#Globals.SMSDB.Password=eksanswk2014
Globals.SMSDB.SendTelNo=02-2669-0042
Globals.SMSDB.TrId=kccadr
# \uc800\uc791\uc704 \uba54\uc77c\uc804\uc1a1
Globals.KccMail.URI=https://mail.copyright.or.kr/mail_api/form_send_mail
Globals.KccMail.api_key=#!@mail5455
Globals.KccMail.sender=adr@copyright.or.kr
Globals.KccMail.title=[\ud55c\uad6d\uc800\uc791\uad8c\uc704\uc6d0\ud68c] \ubd84\uc7c1\uc870\uc815\uc2dc\uc2a4\ud15c \uc54c\ub9bc
#SSO \uc811\uc18d\uc815\ubcf4
#\uac1c\ubc1c\uc11c\ubc84
Globals.sso.ssoUri=https://devsso.copyright.or.kr/oauth2/token.do
Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
Globals.sso.scope=http://sso.copyright.or.kr
Globals.sso.returnSiteUrl=http://219.240.88.15:8091/web/user/login/ssoUsrModifyResult.do
Globals.sso.returnSiteCode=SITE011
#\uc2e4\uc11c\ubc84
#Globals.sso.ssoUri=https://sso.copyright.or.kr/oauth2/token.do
#Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
#Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
#Globals.sso.scope=http://sso.copyright.or.kr
#Globals.sso.returnSiteUrl=http://adr.copyright.or.kr/web/user/login/ssoUsrModifyResult.do
#Globals.sso.returnSiteCode=SITE011
#SSO \ud1b5\ud569\ud68c\uc6d0\uc0ac\uc774\ud2b8 URL
#\uac1c\ubc1c\uc11c\ubc84
Globals.sso.joinUrl=https://devoneid.copyright.or.kr/member/signUp/signUpStep1.do
Globals.sso.modifyUrl=https://devoneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
Globals.sso.idFindUrl=https://devoneid.copyright.or.kr/member/infoFind/idFindStep1.do
Globals.sso.pwFindUrl=https://devoneid.copyright.or.kr/member/infoFind/passFindStep1.do
#\uc2e4\uc11c\ubc84
#Globals.sso.joinUrl=https://oneid.copyright.or.kr/member/signUp/signUpStep1.do
#Globals.sso.modifyUrl=https://oneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
#Globals.sso.idFindUrl=https://oneid.copyright.or.kr/member/infoFind/idFindStep1.do
#Globals.sso.pwFindUrl=https://oneid.copyright.or.kr/member/infoFind/passFindStep1.do
# MainPage Setting(admin) # MainPage Setting(admin)
Globals.MainPage = /cmm/main/mainPage.do Globals.MainPage = /cmm/main/mainPage.do
#\ucee8\ud150\uce20 \ud30c\uc77c\uc704\uce58 #\uCEE8\uD150\uCE20 \uD30C\uC77C\uC704\uCE58
#Globals.ckeditorUploadDir=/home/file/ckeditor/ #Globals.ckeditorUploadDir=/home/file/ckeditor/
Globals.ckeditorUploadDir=/usr/local/tomcat/file/ckeditor/ Globals.ckeditorUploadDir=/usr/local/tomcat/file/ckeditor/
#TEST SERVER #TEST SERVER
Globals.RealCntFileFolder=C:/eGovFrameDev-3.9.0-64bit_ncms/workspace/ncms39/src/main/webapp/WEB-INF/jsp/cnt/ Globals.RealCntFileFolder=C:/eGovFrameDev-3.9.0-64bit_ncms/workspace/ncms39/src/main/webapp/WEB-INF/jsp/cnt/
Globals.Solr.url=http://localhost:8983/solr Globals.Solr.url=http://localhost:8983/solr
#SNS \ub85c\uadf8\uc778 KEY \uac12 #\uC0AC\uC774\uD2B8 \uC544\uC774\uB514 \uC81C\uAC70\uB85C JSP\uC5D0\uC11C siteId/siteNm \uBCF4\uC5EC\uC8FC\uAE30 \uC704\uD574
#ITN \ub124\uc774\ubc84 Globals.homepage.siteId=ipedu
Globals.kcc.naver.clentId=d9Ohvhty_RVsfrq9p_2J Globals.homepage.siteNm=\uC9C0\uC2DD\uC7AC\uC0B0\uBCF4\uD638\uAD50\uC721\uC2DC\uC2A4\uD15C
Globals.kcc.naver.clientSecret=kwiEmpkLg5
Globals.kcc.naver.returnUrl=http://localhost:80/snsLogin/naverOauth.do
#ITN \uce74\uce74\uc624
Globals.kcc.kakao.restApiKey=10b66ad0c44b68b659855ddd64db2c44
Globals.kcc.kakao.returnUrl=http://localhost:80/snsLogin/kakaoOauth.do
#\uc0ac\uc774\ud2b8 \uc544\uc774\ub514 \uc81c\uac70\ub85c JSP\uc5d0\uc11c siteId/siteNm \ubcf4\uc5ec\uc8fc\uae30 \uc704\ud574 #prod \uAC1C\uBC1C, \uC2E4\uC11C\uBC84 \uAD6C\uBD84\uAC12
Globals.homepage.siteId=kccadr #\uB85C\uCEEC
Globals.homepage.siteNm=\uc804\uc790\uc870\uc815\uc2dc\uc2a4\ud15c
#pdf-url
##=====================================1.local(http://192.168.0.34:7080)=============================================================
##pdf\ubcc0\ud658\uc11c\ubc84 - WAS \uc5d0\uc11c \ud638\ucd9c\ud558\ub294 PDF \ubcc0\ud658 \uc11c\ubc84 IP \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
#Globals.pdf.serverUrl=192.168.0.200
##\uc6f9\ud398\uc774\uc9c0\ub97c pdf\ub85c \ubcc0\ud658\ud558\uae30 \uc704\ud55c api \ud638\ucd9curl - \uc870\uc815\uc2e0\uccad\uc11c \ub4f1 - WAS \uc11c\ubc84 \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
#Globals.pdf.apiUrl=http://192.168.0.34:7080
##pdf \uc11c\ubc84\uc758 \ub124\ud2b8\uc6cc\ud06c \uacbd\ub85c
##pdf\ubcc0\ud658 \uc11c\ube0c\ub97c \uc704\ud55c path - 1.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc774 \uc0dd\uc131\ub418\ub294 \uacbd\ub85c - PDF \ubcc0\ud658 \uc11c\ubc84\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \ud3f4\ub354 \uc815\ubcf4\ub97c \ub123\ub294\ub2e4.
#Globals.pdf.filepath.out=file:/z:/out/
##tomcat upload \uacbd\ub85c
##\ud30c\uc77c \uad00\ub9ac\ub97c \uc704\ud55c path - 2.pdf\ubcc0\ud658\uc744 \uc704\ud55c \uc5c5\ub85c\ub4dc \ud30c\uc77c \uacbd\ub85c - WAS \uc11c\ubc84\uc5d0\uc11c PDF \ubcc0\ud658 \uc9c0\uc6d0\uc744 \uc704\ud574 \uc81c\uc5b4 \ud558\ub294 \uacbd\ub85c
#Globals.pdf.makepath=y:/
##\ud30c\uc77c \uad00\ub9ac\ub97c \uc704\ud55c path - 3.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc774 \uc0dd\uc131\ub418\ub294 \uacbd\ub85c - WAS \uc11c\ubc84\uc5d0\uc11c PDF \ubcc0\ud658 \uc9c0\uc6d0\uc744 \uc704\ud574 \uc81c\uc5b4 \ud558\ub294 \uacbd\ub85c
#Globals.pdf.makepath.out=y:/out/
##pdf\ubcc0\ud658 \ud30c\uc77c\uc758 \uc6f9\uc811\uadfc\uc744 \uc704\ud55c path - 4.pdf\ubcc0\ud658\uc758 \uacb0\uacfc\ubb3c\uc744 \uc6f9\uc5d0\uc11c \uc811\uadfc\ud558\uae30 \uc704\ud55c \uacbd\ub85c - \ubcc0\ud658\ub41c PDF \ud30c\uc77c\uc744 \uc6f9\ud398\uc774\uc9c0\uc5d0\uc11c \uc811\uadfc\ud558\uae30 \uc704\ud574 \uc124\uc815\ub41c \uacbd\ub85c \uc815\ubcf4
#Globals.pdf.webpath=/pdf/out/
##=====================================2.\uac1c\ubc1c\uc11c\ubc84(http://219.240.88.15:8091)=============================================================
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
Globals.pdf.serverUrl=192.168.0.200
Globals.pdf.apiUrl=http://219.240.88.15:8091
Globals.pdf.filepath.out=file:/z:/out/
Globals.pdf.makepath=/usr/local/tomcat/file/sht/
Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
Globals.pdf.webpath=/pdf/out/
##=====================================3.\uc2e4\uc11c\ubc84(192.168.39.143, 192.168.39.144)=============================================================
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
#Globals.pdf.serverUrl=192.168.39.147
#Globals.pdf.apiUrl=http://192.168.39.143:8080
#Globals.pdf.filepath.out=file:/z:/out/
#Globals.pdf.makepath=/usr/local/tomcat/file/sht/
#Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
#Globals.pdf.webpath=/pdf/out/
#prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12
#\ub85c\uceec
Globals.prod.islocal=local Globals.prod.islocal=local
#\uc6b4\uc601 \uac1c\ubc1c #\uC6B4\uC601 \uAC1C\uBC1C
#Globals.prod.islocal=dev #Globals.prod.islocal=dev
#\uc6b4\uc601 #\uC6B4\uC601
#Globals.prod.islocal=real #Globals.prod.islocal=real
#\uB300\uC6A9\uB7C9 innorix license
#\ub300\uc6a9\ub7c9 innorix license
Globals.Innorix.License=dev Globals.Innorix.License=dev
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/ Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
#\uad50\uc721 \uc54c\ub9bc \uba54\uc77c \ud15c\ud50c\ub9bf
#Globals.edu.mail.template=/template/offeduMain.html # ===========================
Globals.edu.mail.template=template/offeduMain.html # Siren24 \uC778\uC99D \uAD00\uB828 \uC124\uC815
# ===========================
globals.certPhone.retUrl=https://dev-ipedu-cert.iten.co.kr/ipedu/
globals.certPhone.cryptoUrl=https://sciapi.siren24.com:52099/authentication/api/v1.0/common/crypto/token
globals.certPhone.reqNo=koipa_edu
globals.certPhone.id=SKIP001
globals.certPhone.clientId=5a2a72e2-16ce-420c-8816-57b3dda0e231
globals.certPhone.srvNo=001003
globals.certPhone.accessToken=994b5d96-3788-4239-a5b0-a0ba2e0cf089
globals.certPhone.stosUrl=https://pcc.siren24.com/servlet/StoS

View File

@ -25,5 +25,5 @@
</map> </map>
</property> </property>
</bean> </bean>
<util:properties id="globalSettings" location="classpath:/egovframework/egovProps/globals.properties" /> <util:properties id="globalSettings" location="classpath:/egovframework/egovProps/globals_#{systemProperties['spring.profiles.active']}.properties" />
</beans> </beans>