2025-09-10 프로젝트 암호화 적용
This commit is contained in:
parent
499ac7ffeb
commit
dcf9c340c2
@ -28,6 +28,7 @@ import java.util.HashMap;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import kcc.let.utl.sim.service.EgovFileScrty;
|
||||
import kcc.let.utl.sim.service.EgovNewPasswordUtil;
|
||||
|
||||
public class StringUtil {
|
||||
|
||||
@ -416,6 +417,8 @@ public class StringUtil {
|
||||
public static void main(String args[]) {
|
||||
try {
|
||||
System.out.print(EgovFileScrty.encryptPassword("1", "kcctest"));
|
||||
System.out.print(EgovNewPasswordUtil.hashPassword("1"));
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println("Main Exception Error");
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.let.utl.fcc.service.CertUtil;
|
||||
import kcc.let.utl.sim.service.EgovFileScrty;
|
||||
import kcc.let.utl.sim.service.EgovNewPasswordUtil;
|
||||
|
||||
@Controller
|
||||
public class CertController {
|
||||
@ -95,7 +95,9 @@ public class CertController {
|
||||
//3.오류시 문구
|
||||
s_message = retMap.get("sResult").toString();
|
||||
|
||||
sn = EgovFileScrty.encryptPassword(s_SN,membSeq);
|
||||
//sn = EgovFileScrty.encryptPassword(s_SN,membSeq);
|
||||
sn = EgovNewPasswordUtil.hashPassword(s_SN);
|
||||
|
||||
}catch(Exception ex) {
|
||||
System.out.println("Exception Occured!!!");
|
||||
|
||||
|
||||
@ -12,9 +12,12 @@ import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
import kcc.com.cmm.LoginVO;
|
||||
import kcc.let.uat.uia.service.EgovLoginService;
|
||||
import kcc.let.uss.umt.service.EgovUserManageService;
|
||||
import kcc.let.uss.umt.service.UserManageVO;
|
||||
import kcc.let.utl.fcc.service.EgovNumberUtil;
|
||||
import kcc.let.utl.fcc.service.EgovStringUtil;
|
||||
import kcc.let.utl.sim.service.EgovFileScrty;
|
||||
import kcc.let.utl.sim.service.EgovNewPasswordUtil;
|
||||
|
||||
/**
|
||||
* 일반 로그인, 인증서 로그인을 처리하는 비즈니스 구현 클래스
|
||||
@ -40,6 +43,10 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
||||
@Resource(name="loginDAO")
|
||||
private LoginDAO loginDAO;
|
||||
|
||||
/** userManageService */
|
||||
@Resource(name = "userManageService")
|
||||
private EgovUserManageService userManageService;
|
||||
|
||||
///** EgovSndngMailRegistService */
|
||||
//@Resource(name = "sndngMailRegistService")
|
||||
//private EgovSndngMailRegistService sndngMailRegistService;
|
||||
@ -53,19 +60,75 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
||||
*/
|
||||
@Override
|
||||
public LoginVO actionLogin(LoginVO vo) throws Exception {
|
||||
|
||||
//step1.new 로그인인 경우 loginvo ret
|
||||
//step2.legacy 로그인인 경우 new password로 업데이트 후 loginvo ret
|
||||
//step3.둘다 아니면 loginvo ret
|
||||
LoginVO loginVO = null;
|
||||
String s_password = vo.getPassword();
|
||||
System.out.println("======1========================"+s_password);
|
||||
System.out.println("======1========================"+EgovNewPasswordUtil.hashPassword(s_password));
|
||||
System.out.println("======1========================"+EgovFileScrty.encryptPassword(s_password, vo.getId()));
|
||||
|
||||
//step1.new 로그인인 경우 loginvo ret
|
||||
//최고관리자를 제외한 사용자 sso 로그인으로 비밀번호 암호화 삭제(210818, 이준호)
|
||||
// 1. 입력한 비밀번호를 암호화한다.
|
||||
if("USR".equals(vo.getUserSe())) {
|
||||
String enpassword = EgovFileScrty.encryptPassword(vo.getPassword(), vo.getId());
|
||||
//String enpassword = EgovFileScrty.encryptPassword(vo.getPassword(), vo.getId());
|
||||
String enpassword = EgovNewPasswordUtil.hashPassword(s_password);
|
||||
vo.setPassword(enpassword);
|
||||
}
|
||||
System.out.println("======2========================"+s_password);
|
||||
|
||||
// 2. 아이디와 암호화된 비밀번호가 DB와 일치하는지 확인한다.
|
||||
LoginVO loginVO = loginDAO.actionLogin(vo);
|
||||
loginVO = loginDAO.actionLoginNew(vo);
|
||||
System.out.println("======3========================"+s_password);
|
||||
System.out.println("======3========================"+loginVO.getPassword());
|
||||
if (EgovNewPasswordUtil.matches(s_password, loginVO.getPassword())) {
|
||||
return loginVO;
|
||||
}
|
||||
|
||||
/*
|
||||
loginVO = loginDAO.actionLogin(vo);
|
||||
|
||||
// 3. 결과를 리턴한다.
|
||||
if (loginVO != null && !loginVO.getId().equals("") && !loginVO.getPassword().equals("")) {
|
||||
return loginVO;
|
||||
}
|
||||
*/
|
||||
|
||||
System.out.println("======4========================"+s_password);
|
||||
|
||||
//step2.legacy 로그인인 경우 new password로 업데이트 후 loginvo ret
|
||||
//최고관리자를 제외한 사용자 sso 로그인으로 비밀번호 암호화 삭제(210818, 이준호)
|
||||
// 1. 입력한 비밀번호를 암호화한다.
|
||||
if("USR".equals(vo.getUserSe())) {
|
||||
String enpassword = EgovFileScrty.encryptPassword(s_password, vo.getId());
|
||||
//String enpassword = EgovNewPasswordUtil.hashPassword(vo.getPassword());
|
||||
vo.setPassword(enpassword);
|
||||
}
|
||||
|
||||
System.out.println("======5========================"+s_password);
|
||||
|
||||
// 2. 아이디와 암호화된 비밀번호가 DB와 일치하는지 확인한다.
|
||||
loginVO = loginDAO.actionLogin(vo);
|
||||
|
||||
System.out.println("======6========================"+s_password);
|
||||
|
||||
// 3. 결과를 리턴한다.
|
||||
if (loginVO != null && !loginVO.getId().equals("") && !loginVO.getPassword().equals("")) {
|
||||
//패스워드를 newpassword로 변경
|
||||
UserManageVO userManageVO = new UserManageVO();
|
||||
userManageVO.setUniqId(vo.getId());
|
||||
userManageVO.setPassword(EgovNewPasswordUtil.hashPassword(s_password)); //입력한 비밀번호 암호화
|
||||
userManageService.updatePasswordR(userManageVO);
|
||||
|
||||
System.out.println("======7========================"+s_password);
|
||||
|
||||
/*
|
||||
PASSWORD = #password#
|
||||
WHERE ESNTL_ID = #uniqId#
|
||||
*/
|
||||
|
||||
return loginVO;
|
||||
} else {
|
||||
loginVO = new LoginVO();
|
||||
@ -80,7 +143,8 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
||||
//최고관리자를 제외한 사용자 sso 로그인으로 비밀번호 암호화 삭제(210818, 이준호)
|
||||
// 1. 입력한 비밀번호를 암호화한다.
|
||||
if("USR".equals(vo.getUserSe())) {
|
||||
String enpassword = EgovFileScrty.encryptPassword(vo.getPassword(), vo.getId());
|
||||
//String enpassword = EgovFileScrty.encryptPassword(vo.getPassword(), vo.getId());
|
||||
String enpassword = EgovNewPasswordUtil.hashPassword(vo.getPassword());
|
||||
vo.setPassword(enpassword);
|
||||
}
|
||||
|
||||
@ -193,7 +257,8 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
||||
|
||||
// 3. 임시 비밀번호를 암호화하여 DB에 저장한다.
|
||||
LoginVO pwVO = new LoginVO();
|
||||
String enpassword = EgovFileScrty.encryptPassword(newpassword, vo.getId());
|
||||
//String enpassword = EgovFileScrty.encryptPassword(newpassword, vo.getId());
|
||||
String enpassword = EgovNewPasswordUtil.hashPassword(newpassword);
|
||||
pwVO.setId(vo.getId());
|
||||
pwVO.setPassword(enpassword);
|
||||
pwVO.setUserSe(vo.getUserSe());
|
||||
@ -220,7 +285,8 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
||||
@Override
|
||||
public LoginVO siteActionLogin(LoginVO vo) throws Exception {
|
||||
// 1. 입력한 비밀번호를 암호화한다.
|
||||
String enpassword = EgovFileScrty.encryptPassword(vo.getPassword(), vo.getId());
|
||||
//String enpassword = EgovFileScrty.encryptPassword(vo.getPassword(), vo.getId());
|
||||
String enpassword = EgovNewPasswordUtil.hashPassword(vo.getPassword());
|
||||
vo.setPassword(enpassword);
|
||||
|
||||
// 2. 아이디와 암호화된 비밀번호가 DB와 일치하는지 확인한다.
|
||||
@ -298,7 +364,8 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
||||
//최고관리자를 제외한 사용자 sso 로그인으로 비밀번호 암호화 삭제(210818, 이준호)
|
||||
// 1. 입력한 비밀번호를 암호화한다.
|
||||
if("USR".equals(vo.getUserSe())) {
|
||||
String enpassword = EgovFileScrty.encryptPassword(vo.getPassword(), vo.getId());
|
||||
//String enpassword = EgovFileScrty.encryptPassword(vo.getPassword(), vo.getId());
|
||||
String enpassword = EgovNewPasswordUtil.hashPassword(vo.getPassword());
|
||||
vo.setPassword(enpassword);
|
||||
}
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ import kcc.let.uss.umt.service.EgovMberManageService;
|
||||
import kcc.let.uss.umt.service.MberManageConfigVO;
|
||||
import kcc.let.uss.umt.service.MberManageVO;
|
||||
import kcc.let.uss.umt.service.UserDefaultVO;
|
||||
import kcc.let.utl.sim.service.EgovFileScrty;
|
||||
import kcc.let.utl.sim.service.EgovNewPasswordUtil;
|
||||
|
||||
/**
|
||||
* 일반회원관리에 관한비지니스클래스를 정의한다.
|
||||
@ -55,7 +55,9 @@ public class EgovMberManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
String uniqId = idgenService.getNextStringId();
|
||||
mberManageVO.setUniqId(uniqId);
|
||||
//패스워드 암호화
|
||||
String pass = EgovFileScrty.encryptPassword(mberManageVO.getPassword(), mberManageVO.getMberId());
|
||||
//String pass = EgovFileScrty.encryptPassword(mberManageVO.getPassword(), mberManageVO.getMberId());
|
||||
String pass = EgovNewPasswordUtil.hashPassword(mberManageVO.getPassword());
|
||||
|
||||
mberManageVO.setPassword(pass);
|
||||
String result = mberManageDAO.insertMber(mberManageVO);
|
||||
|
||||
@ -93,7 +95,9 @@ public class EgovMberManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
@Override
|
||||
public void updateMber(MberManageVO mberManageVO) throws Exception {
|
||||
//패스워드 암호화
|
||||
String pass = EgovFileScrty.encryptPassword(mberManageVO.getPassword(), mberManageVO.getMberId());
|
||||
//String pass = EgovFileScrty.encryptPassword(mberManageVO.getPassword(), mberManageVO.getMberId());
|
||||
String pass = EgovNewPasswordUtil.hashPassword(mberManageVO.getPassword());
|
||||
|
||||
mberManageVO.setPassword(pass);
|
||||
mberManageDAO.updateMber(mberManageVO);
|
||||
|
||||
@ -151,7 +155,9 @@ public class EgovMberManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
String uniqId = idgenService.getNextStringId();
|
||||
mberManageVO.setUniqId(uniqId);
|
||||
//패스워드 암호화
|
||||
String pass = EgovFileScrty.encryptPassword(mberManageVO.getPassword(), mberManageVO.getMberId());
|
||||
//String pass = EgovFileScrty.encryptPassword(mberManageVO.getPassword(), mberManageVO.getMberId());
|
||||
String pass = EgovNewPasswordUtil.hashPassword(mberManageVO.getPassword());
|
||||
|
||||
mberManageVO.setPassword(pass);
|
||||
/*AuthorGroup authorGroup = new AuthorGroup();
|
||||
authorGroup.setUniqId(uniqId);
|
||||
|
||||
@ -41,6 +41,10 @@ public class LoginDAO extends EgovAbstractDAO {
|
||||
public LoginVO actionLoginDev(LoginVO vo) throws Exception {
|
||||
return (LoginVO)select("loginDAO.actionLoginDev", vo);
|
||||
}
|
||||
|
||||
public LoginVO actionLoginNew(LoginVO vo) throws Exception {
|
||||
return (LoginVO)select("loginDAO.actionLoginNew", vo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 등록된 SNS 수량을 조회한다.
|
||||
|
||||
@ -89,6 +89,8 @@ public interface EgovUserManageService {
|
||||
* @throws Exception
|
||||
*/
|
||||
public void updatePassword(UserManageVO userManageVO) throws Exception;
|
||||
|
||||
public void updatePasswordR(UserManageVO userManageVO) throws Exception;
|
||||
|
||||
/**
|
||||
* 사용자가 비밀번호를 기억하지 못할 때 비밀번호를 찾을 수 있도록 함
|
||||
|
||||
@ -17,7 +17,7 @@ import kcc.let.uat.uia.service.impl.MberManageDAO;
|
||||
import kcc.let.uss.umt.service.EgovUserManageService;
|
||||
import kcc.let.uss.umt.service.UserDefaultVO;
|
||||
import kcc.let.uss.umt.service.UserManageVO;
|
||||
import kcc.let.utl.sim.service.EgovFileScrty;
|
||||
import kcc.let.utl.sim.service.EgovNewPasswordUtil;
|
||||
|
||||
/**
|
||||
* 사용자관리에 관한 비지니스 클래스를 정의한다.
|
||||
@ -127,7 +127,8 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
){
|
||||
//관리자
|
||||
//패스워드 암호화
|
||||
pass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId());
|
||||
//pass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId());
|
||||
pass = EgovNewPasswordUtil.hashPassword(userManageVO.getPassword());
|
||||
userManageVO.setPassword(pass);
|
||||
}else {
|
||||
//관리자 이외
|
||||
@ -217,7 +218,8 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
@Override
|
||||
public void updateUser(UserManageVO userManageVO) throws Exception {
|
||||
//패스워드 암호화
|
||||
String pass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId());
|
||||
//String pass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId());
|
||||
String pass = EgovNewPasswordUtil.hashPassword(userManageVO.getPassword());
|
||||
userManageVO.setPassword(pass);
|
||||
|
||||
userManageDAO.updateUser(userManageVO);
|
||||
@ -244,6 +246,11 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
userManageDAO.updatePassword(userManageVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePasswordR(UserManageVO userManageVO) {
|
||||
userManageDAO.updatePasswordR(userManageVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 사용자가 비밀번호를 기억하지 못할 때 비밀번호를 찾을 수 있도록 함
|
||||
* @param passVO 업무사용자 암호 조회조건정보
|
||||
@ -271,7 +278,8 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
@Override
|
||||
public void updateUserPWAjax(UserManageVO userManageVO) throws Exception {
|
||||
//패스워드 암호화
|
||||
String pass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId());
|
||||
//String pass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId());
|
||||
String pass = EgovNewPasswordUtil.hashPassword(userManageVO.getPassword());
|
||||
userManageVO.setPassword(pass);
|
||||
userManageDAO.updateUserPWAjax(userManageVO);
|
||||
}
|
||||
@ -348,7 +356,8 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
|
||||
String pass = "1";
|
||||
if("ROLE_ADMIN".equals(userManageVO.getAuthorCode()) || "ROLE_VISIT".equals(userManageVO.getAuthorCode())){
|
||||
//패스워드 암호화
|
||||
pass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId());
|
||||
//pass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId());
|
||||
pass = EgovNewPasswordUtil.hashPassword(userManageVO.getPassword());
|
||||
userManageVO.setPassword(pass);
|
||||
}else {
|
||||
userManageVO.setPassword(pass);
|
||||
|
||||
@ -107,6 +107,10 @@ public class UserManageDAO extends EgovAbstractDAO{
|
||||
public void updatePassword(UserManageVO passVO) {
|
||||
update("userManageDAO.updatePassword_S", passVO);
|
||||
}
|
||||
|
||||
public void updatePasswordR(UserManageVO passVO) {
|
||||
update("userManageDAO.updatePassword_R", passVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 업무사용자가 비밀번호를 기억하지 못할 때 비밀번호를 찾을 수 있도록 함
|
||||
|
||||
@ -74,7 +74,7 @@ import kcc.let.uss.umt.service.MberManageVO;
|
||||
import kcc.let.uss.umt.service.UserDefaultVO;
|
||||
import kcc.let.uss.umt.service.UserManageVO;
|
||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||
import kcc.let.utl.sim.service.EgovFileScrty;
|
||||
import kcc.let.utl.sim.service.EgovNewPasswordUtil;
|
||||
|
||||
/**
|
||||
* 업무사용자관련 요청을 비지니스 클래스로 전달하고 처리된결과를 해당 웹 화면으로 전달하는 Controller를 정의한다
|
||||
@ -211,6 +211,17 @@ public class EgovUserManageController {
|
||||
userSearchVO.setSearchSortOrd("desc");
|
||||
}
|
||||
List<?> resultList = userManageService.selectUserList(userSearchVO) ;
|
||||
for (int i=0;i<resultList.size();i++) {
|
||||
EgovMap userManageVO = (EgovMap) resultList.get(i);
|
||||
egovCryptoUtil.decryptUserManageVO4EgovMap(userManageVO);
|
||||
//decryptUserManageVO4EgovMap
|
||||
|
||||
//userManageVO.put("userNm", egovCryptoUtil.decrypt(userManageVO.get("userNm").toString()));
|
||||
//userManageVO.put("emailAdres", egovCryptoUtil.decrypt(userManageVO.get("emailAdres").toString()));
|
||||
//userManageVO.put("offmTelno", egovCryptoUtil.decrypt(userManageVO.get("offmTelno").toString()));
|
||||
|
||||
//resultList.get(i)
|
||||
}
|
||||
model.addAttribute("resultList", resultList);
|
||||
//paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
|
||||
//int i_resultList = resultList.size();
|
||||
@ -543,6 +554,7 @@ public class EgovUserManageController {
|
||||
}
|
||||
*/
|
||||
|
||||
userManageVO = egovCryptoUtil.encryptUserManageVO(userManageVO);
|
||||
userManageService.insertUser(userManageVO);
|
||||
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
|
||||
}catch(Exception e){
|
||||
@ -608,6 +620,7 @@ public class EgovUserManageController {
|
||||
|
||||
UserManageVO userManageVO = new UserManageVO();
|
||||
userManageVO = userManageService.selectUser(uniqId);
|
||||
userManageVO = egovCryptoUtil.decryptUserManageVO(userManageVO);
|
||||
model.addAttribute("userSearchVO", userSearchVO);
|
||||
model.addAttribute("userManageVO", userManageVO);
|
||||
|
||||
@ -902,6 +915,8 @@ public class EgovUserManageController {
|
||||
}
|
||||
|
||||
userManageService.insertUserHistory(userManageVO);
|
||||
|
||||
userManageVO = egovCryptoUtil.encryptUserManageVO(userManageVO);
|
||||
userManageService.updateUser(userManageVO);
|
||||
//권한업데이트
|
||||
egovAuthorGroupService.updateAuthorGroup(authorGroup);
|
||||
@ -1164,12 +1179,12 @@ public class EgovUserManageController {
|
||||
// authFlag = false; //GS인증으로 이전비밀번호 체크
|
||||
// 이전 비밀번호 체크 하지 않고 비밀번호 변경되게 해달라는 요청으로 주석처리 220209 이준호
|
||||
// if (encryptPass.equals(resultVO.getPassword()) || authFlag) {
|
||||
if (newPassword.equals(newPassword2)) {
|
||||
isCorrectPassword = true;
|
||||
} else {
|
||||
isCorrectPassword = false;
|
||||
resultMsg = "fail.user.passwordUpdate2";
|
||||
}
|
||||
if (newPassword.equals(newPassword2)) {
|
||||
isCorrectPassword = true;
|
||||
} else {
|
||||
isCorrectPassword = false;
|
||||
resultMsg = "fail.user.passwordUpdate2";
|
||||
}
|
||||
// }
|
||||
/*else {
|
||||
isCorrectPassword = false;
|
||||
@ -1177,7 +1192,8 @@ public class EgovUserManageController {
|
||||
}*/
|
||||
|
||||
if (isCorrectPassword) {
|
||||
userManageVO.setPassword(EgovFileScrty.encryptPassword(newPassword, userManageVO.getEmplyrId()));
|
||||
//userManageVO.setPassword(EgovFileScrty.encryptPassword(newPassword, userManageVO.getEmplyrId()));
|
||||
userManageVO.setPassword(EgovNewPasswordUtil.hashPassword(newPassword)); //입력한 비밀번호 암호화
|
||||
userManageService.updatePassword(userManageVO);
|
||||
model.addAttribute("userManageVO", userManageVO);
|
||||
resultMsg = "success.common.update";
|
||||
@ -1917,7 +1933,9 @@ public class EgovUserManageController {
|
||||
}else {
|
||||
String returnPassword = returnUserManageVO.getPassword() ;
|
||||
//패스워드 암호화
|
||||
String encryptPass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId());
|
||||
//String encryptPass = EgovFileScrty.encryptPassword(userManageVO.getPassword(), userManageVO.getEmplyrId());
|
||||
String encryptPass = EgovNewPasswordUtil.hashPassword(userManageVO.getPassword());
|
||||
|
||||
if(returnPassword.equals(encryptPass)) {
|
||||
modelAndView.addObject("usedCnt", 1);
|
||||
//세션으로 인증넣어줌
|
||||
|
||||
@ -7,10 +7,12 @@ import javax.annotation.Resource;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import egovframework.rte.fdl.cryptography.EgovEnvCryptoService;
|
||||
import egovframework.rte.fdl.cryptography.EgovPasswordEncoder;
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
import kcc.com.cmm.ComDefaultCodeVO;
|
||||
import kcc.com.cmm.ComDefaultVO;
|
||||
import kcc.com.cmm.service.CmmnDetailCode;
|
||||
@ -19,6 +21,7 @@ import kcc.com.cmm.service.FileVO;
|
||||
import kcc.kccadr.sch.service.SchduleManageVO;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
import kcc.let.uss.umt.service.UserManageVO;
|
||||
import kcc.let.utl.sim.service.AES256Util;
|
||||
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduExcelVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduSatisfactionExcelVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
|
||||
@ -66,6 +69,9 @@ public class EgovCryptoUtil {
|
||||
@Resource(name = "egovEnvPasswordEncoderService")
|
||||
EgovPasswordEncoder egovPasswordEncoder;
|
||||
|
||||
@Autowired
|
||||
private AES256Util aes256Util;
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
//
|
||||
// VO 별 암/복호화
|
||||
@ -81,6 +87,8 @@ public class EgovCryptoUtil {
|
||||
if (!"".equals(p_vEEduAplctVO.getPhone())) p_vEEduAplctVO.setPhone(this.encrypt(p_vEEduAplctVO.getPhone()));
|
||||
if (!"".equals(p_vEEduAplctVO.getEmail())) p_vEEduAplctVO.setEmail(this.encrypt(p_vEEduAplctVO.getEmail()));
|
||||
if (!"".equals(p_vEEduAplctVO.getSearchKeyword()))p_vEEduAplctVO.setInstrNm(this.encrypt(p_vEEduAplctVO.getSearchKeyword()));
|
||||
|
||||
if (!"".equals(p_vEEduAplctVO.getdBirth())) p_vEEduAplctVO.setdBirth(this.encrypt(p_vEEduAplctVO.getdBirth()));
|
||||
return p_vEEduAplctVO;
|
||||
}
|
||||
|
||||
@ -91,9 +99,12 @@ public class EgovCryptoUtil {
|
||||
if (!"".equals(p_vEEduAplctVO.getClphone())) p_vEEduAplctVO.setClphone(this.decrypt(p_vEEduAplctVO.getClphone()));
|
||||
if (!"".equals(p_vEEduAplctVO.getPhone())) p_vEEduAplctVO.setPhone(this.decrypt(p_vEEduAplctVO.getPhone()));
|
||||
if (!"".equals(p_vEEduAplctVO.getEmail())) p_vEEduAplctVO.setEmail(this.decrypt(p_vEEduAplctVO.getEmail()));
|
||||
|
||||
if (!"".equals(p_vEEduAplctVO.getInstrNm())) p_vEEduAplctVO.setInstrNm(this.decrypt(p_vEEduAplctVO.getInstrNm()));
|
||||
if (!"".equals(p_vEEduAplctVO.getUserNm())) p_vEEduAplctVO.setUserNm(this.decrypt(p_vEEduAplctVO.getUserNm()));
|
||||
if (!"".equals(p_vEEduAplctVO.getInstrPhone())) p_vEEduAplctVO.setInstrPhone(this.decrypt(p_vEEduAplctVO.getInstrPhone()));
|
||||
|
||||
if (!"".equals(p_vEEduAplctVO.getdBirth())) p_vEEduAplctVO.setdBirth(this.decrypt(p_vEEduAplctVO.getdBirth()));
|
||||
return p_vEEduAplctVO;
|
||||
}
|
||||
|
||||
@ -132,6 +143,7 @@ public class EgovCryptoUtil {
|
||||
|
||||
if (!"".equals(p_vEInstrDetailVO.getInstrNm())) p_vEInstrDetailVO.setInstrNm(this.encrypt(p_vEInstrDetailVO.getInstrNm()));
|
||||
if (!"".equals(p_vEInstrDetailVO.getPhone())) p_vEInstrDetailVO.setPhone(this.encrypt(p_vEInstrDetailVO.getPhone()));
|
||||
if (!"".equals(p_vEInstrDetailVO.getEmail())) p_vEInstrDetailVO.setEmail(this.encrypt(p_vEInstrDetailVO.getEmail()));
|
||||
|
||||
return p_vEInstrDetailVO;
|
||||
}
|
||||
@ -141,6 +153,7 @@ public class EgovCryptoUtil {
|
||||
|
||||
if (!"".equals(p_vEInstrDetailVO.getInstrNm())) p_vEInstrDetailVO.setInstrNm(this.decrypt(p_vEInstrDetailVO.getInstrNm()));
|
||||
if (!"".equals(p_vEInstrDetailVO.getPhone())) p_vEInstrDetailVO.setPhone(this.decrypt(p_vEInstrDetailVO.getPhone()));
|
||||
if (!"".equals(p_vEInstrDetailVO.getEmail())) p_vEInstrDetailVO.setEmail(this.decrypt(p_vEInstrDetailVO.getEmail()));
|
||||
|
||||
|
||||
return p_vEInstrDetailVO;
|
||||
@ -421,6 +434,9 @@ public class EgovCryptoUtil {
|
||||
public UserManageVO encryptUserManageVO(UserManageVO p_userManageVO){
|
||||
|
||||
if (!"".equals(p_userManageVO.getEmplyrNm())) p_userManageVO.setEmplyrNm(this.encrypt(p_userManageVO.getEmplyrNm()));
|
||||
//if (!"".equals(p_userManageVO.getUserNm())) p_userManageVO.setUserNm(this.encrypt(p_userManageVO.getUserNm()));
|
||||
if (!"".equals(p_userManageVO.getOffmTelno())) p_userManageVO.setOffmTelno(this.encrypt(p_userManageVO.getOffmTelno()));
|
||||
if (!"".equals(p_userManageVO.getEmailAdres())) p_userManageVO.setEmailAdres(this.encrypt(p_userManageVO.getEmailAdres()));
|
||||
|
||||
return p_userManageVO;
|
||||
}
|
||||
@ -429,6 +445,27 @@ public class EgovCryptoUtil {
|
||||
public UserManageVO decryptUserManageVO(UserManageVO p_userManageVO){
|
||||
|
||||
if (!"".equals(p_userManageVO.getEmplyrNm())) p_userManageVO.setEmplyrNm(this.decrypt(p_userManageVO.getEmplyrNm()));
|
||||
//if (!"".equals(p_userManageVO.getUserNm())) p_userManageVO.setUserNm(this.decrypt(p_userManageVO.getUserNm()));
|
||||
if (!"".equals(p_userManageVO.getOffmTelno())) p_userManageVO.setOffmTelno(this.decrypt(p_userManageVO.getOffmTelno()));
|
||||
if (!"".equals(p_userManageVO.getEmailAdres())) p_userManageVO.setEmailAdres(this.decrypt(p_userManageVO.getEmailAdres()));
|
||||
|
||||
|
||||
return p_userManageVO;
|
||||
}
|
||||
|
||||
//UserManageVO - 복호화 - egovmap으로 받은 경우 처리
|
||||
public EgovMap decryptUserManageVO4EgovMap(EgovMap p_userManageVO){
|
||||
|
||||
//userManageVO.put("userNm", egovCryptoUtil.decrypt(userManageVO.get("userNm").toString()));
|
||||
//userManageVO.put("emailAdres", egovCryptoUtil.decrypt(userManageVO.get("emailAdres").toString()));
|
||||
//userManageVO.put("offmTelno", egovCryptoUtil.decrypt(userManageVO.get("offmTelno").toString()));
|
||||
|
||||
|
||||
|
||||
if (!"".equals(p_userManageVO.get("userNm").toString())) p_userManageVO.put("userNm", this.decrypt(p_userManageVO.get("userNm").toString()));
|
||||
//if (!"".equals(p_userManageVO.getUserNm())) p_userManageVO.setUserNm(this.decrypt(p_userManageVO.getUserNm()));
|
||||
if (!"".equals(p_userManageVO.get("offmTelno").toString())) p_userManageVO.put("offmTelno", this.decrypt(p_userManageVO.get("offmTelno").toString()));
|
||||
if (!"".equals(p_userManageVO.get("emailAdres").toString())) p_userManageVO.put("emailAdres", this.decrypt(p_userManageVO.get("emailAdres").toString()));
|
||||
|
||||
|
||||
return p_userManageVO;
|
||||
@ -544,11 +581,15 @@ public class EgovCryptoUtil {
|
||||
|
||||
//CndtnTrgtMngVO - 암호화
|
||||
// 240108 담당검사 이름 추가
|
||||
public CndtnTrgtMngVO encryptCndtnTrgtMngVOInfo(CndtnTrgtMngVO p_cndtnTrgtInfoMngVO){
|
||||
|
||||
public CndtnTrgtMngVO encryptCndtnTrgtMngVOInfo(CndtnTrgtMngVO p_cndtnTrgtInfoMngVO){
|
||||
// if (!"".equals(p_cndtnTrgtInfoMngVO.getTrgtNm()) ) p_cndtnTrgtInfoMngVO.setTrgtNm(this.encrypt(p_cndtnTrgtInfoMngVO.getTrgtNm().trim()));
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getTrgtNm()) ) p_cndtnTrgtInfoMngVO.setTrgtNm(this.encrypt(p_cndtnTrgtInfoMngVO.getTrgtNm().trim()));
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getClphone())) p_cndtnTrgtInfoMngVO.setClphone(this.encrypt(p_cndtnTrgtInfoMngVO.getClphone().trim()));
|
||||
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getVntNmbr())) p_cndtnTrgtInfoMngVO.setVntNmbr(this.encrypt(p_cndtnTrgtInfoMngVO.getVntNmbr().trim()));
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getdBirth())) p_cndtnTrgtInfoMngVO.setdBirth(this.encrypt(p_cndtnTrgtInfoMngVO.getdBirth().trim()));
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getAddr())) p_cndtnTrgtInfoMngVO.setAddr(this.encrypt(p_cndtnTrgtInfoMngVO.getAddr().trim()));
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getAddrDetail())) p_cndtnTrgtInfoMngVO.setAddrDetail(this.encrypt(p_cndtnTrgtInfoMngVO.getAddrDetail().trim()));
|
||||
//if (!"".equals(p_cndtnTrgtInfoMngVO.getPrsctrNm())) p_cndtnTrgtInfoMngVO.setPrsctrNm(this.encrypt(p_cndtnTrgtInfoMngVO.getPrsctrNm()));
|
||||
|
||||
return p_cndtnTrgtInfoMngVO;
|
||||
@ -561,6 +602,11 @@ public class EgovCryptoUtil {
|
||||
// if (!"".equals(p_cndtnTrgtInfoMngVO.getTrgtNm())) p_cndtnTrgtInfoMngVO.setTrgtNm(this.decrypt(p_cndtnTrgtInfoMngVO.getTrgtNm().trim()));
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getTrgtNm())) p_cndtnTrgtInfoMngVO.setTrgtNm(this.decrypt(p_cndtnTrgtInfoMngVO.getTrgtNm().trim()));
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getClphone())) p_cndtnTrgtInfoMngVO.setClphone(this.decrypt(p_cndtnTrgtInfoMngVO.getClphone().trim()));
|
||||
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getVntNmbr())) p_cndtnTrgtInfoMngVO.setVntNmbr(this.decrypt(p_cndtnTrgtInfoMngVO.getVntNmbr().trim()));
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getdBirth())) p_cndtnTrgtInfoMngVO.setdBirth(this.decrypt(p_cndtnTrgtInfoMngVO.getdBirth().trim()));
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getAddr())) p_cndtnTrgtInfoMngVO.setAddr(this.decrypt(p_cndtnTrgtInfoMngVO.getAddr().trim()));
|
||||
if (StringUtils.isNotEmpty( p_cndtnTrgtInfoMngVO.getAddrDetail())) p_cndtnTrgtInfoMngVO.setAddrDetail(this.decrypt(p_cndtnTrgtInfoMngVO.getAddrDetail().trim()));
|
||||
//if (!"".equals(p_cndtnTrgtInfoMngVO.getPrsctrNm())) p_cndtnTrgtInfoMngVO.setPrsctrNm(this.decrypt(p_cndtnTrgtInfoMngVO.getPrsctrNm()));
|
||||
|
||||
return p_cndtnTrgtInfoMngVO;
|
||||
@ -618,13 +664,9 @@ public class EgovCryptoUtil {
|
||||
|
||||
try {
|
||||
LOGGER.debug("enc1-cryptoService.getCyptoAlgorithmKey()");
|
||||
//LOGGER.debug(cryptoService.getCyptoAlgorithmKey());
|
||||
//LOGGER.debug(cryptoService.getCyptoAlgorithmKey());
|
||||
//System.out.println("enc1-cryptoService.getCyptoAlgorithmKey()");
|
||||
//System.out.println(cryptoService.getCyptoAlgorithmKey());
|
||||
//System.out.println(cryptoService.getCyptoAlgorithmKey());
|
||||
//return cryptoService.encrypt(encrypt); // Handles URLEncoding.
|
||||
return cryptoService.encryptNone(encrypt); // Does not handle URLEncoding.
|
||||
//return cryptoService.encryptNone(encrypt); // Does not handle URLEncoding.
|
||||
|
||||
return aes256Util.encrypt(encrypt); // Does not handle URLEncoding.
|
||||
} catch(IllegalArgumentException e) {
|
||||
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
|
||||
} catch (Exception e) {
|
||||
@ -647,10 +689,10 @@ public class EgovCryptoUtil {
|
||||
//LOGGER.debug(cryptoService.getCyptoAlgorithmKey());
|
||||
//System.out.println("decry2-cryptoService.getCyptoAlgorithmKey()");
|
||||
//System.out.println(cryptoService.getCyptoAlgorithmKey());
|
||||
|
||||
|
||||
|
||||
//return cryptoService.decrypt(decrypt); // Handles URLDecoding.
|
||||
return cryptoService.decryptNone(decrypt); // Does not handle URLDecoding.
|
||||
//return cryptoService.decryptNone(decrypt); // Does not handle URLDecoding.
|
||||
return aes256Util.decrypt(decrypt); // Does not handle URLDecoding.
|
||||
} catch(IllegalArgumentException e) {
|
||||
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
|
||||
} catch (Exception e) {
|
||||
|
||||
72
src/main/java/kcc/let/utl/sim/service/AES256Util.java
Normal file
72
src/main/java/kcc/let/utl/sim/service/AES256Util.java
Normal file
@ -0,0 +1,72 @@
|
||||
package kcc.let.utl.sim.service;
|
||||
|
||||
import java.util.Base64;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.spec.IvParameterSpec;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
/**
|
||||
* Base64인코딩/디코딩 방식을 이용한 데이터를 암호화/복호화하는 Business Interface class
|
||||
* @author 공통서비스개발팀 박지욱
|
||||
* @since 2009.01.19
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.01.19 박지욱 최초 생성
|
||||
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public class AES256Util {
|
||||
|
||||
private static final String ALGORITHM = "AES/CBC/PKCS5Padding";
|
||||
private static final String CHARSET = "UTF-8";
|
||||
|
||||
// 32바이트(256bit) 키
|
||||
private final String secretKey;
|
||||
|
||||
// 16바이트 IV (고정하면 보안 취약하므로 운영환경에서는 랜덤으로 생성해서 함께 저장 권장)
|
||||
private final String iv;
|
||||
|
||||
public AES256Util(String secretKey, String iv) {
|
||||
if (secretKey.length() != 32 || iv.length() != 16) {
|
||||
throw new IllegalArgumentException("Key must be 32 bytes and IV must be 16 bytes.");
|
||||
}
|
||||
|
||||
System.out.println("secretKey--------------------------------------------------------------------------------");
|
||||
System.out.println(secretKey);
|
||||
System.out.println(iv);
|
||||
|
||||
this.secretKey = secretKey;
|
||||
this.iv = iv;
|
||||
}
|
||||
|
||||
// 암호화
|
||||
public String encrypt(String plainText) throws Exception {
|
||||
Cipher cipher = Cipher.getInstance(ALGORITHM);
|
||||
SecretKeySpec keySpec = new SecretKeySpec(secretKey.getBytes(CHARSET), "AES");
|
||||
IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes(CHARSET));
|
||||
|
||||
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
|
||||
byte[] encrypted = cipher.doFinal(plainText.getBytes(CHARSET));
|
||||
return Base64.getEncoder().encodeToString(encrypted);
|
||||
}
|
||||
|
||||
// 복호화
|
||||
public String decrypt(String cipherText) throws Exception {
|
||||
Cipher cipher = Cipher.getInstance(ALGORITHM);
|
||||
SecretKeySpec keySpec = new SecretKeySpec(secretKey.getBytes(CHARSET), "AES");
|
||||
IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes(CHARSET));
|
||||
|
||||
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
|
||||
byte[] decodedBytes = Base64.getDecoder().decode(cipherText);
|
||||
byte[] decrypted = cipher.doFinal(decodedBytes);
|
||||
return new String(decrypted, CHARSET);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
package kcc.let.utl.sim.service;
|
||||
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
|
||||
/**
|
||||
* Base64인코딩/디코딩 방식을 이용한 데이터를 암호화/복호화하는 Business Interface class
|
||||
* @author 공통서비스개발팀 박지욱
|
||||
* @since 2009.01.19
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* << 개정이력(Modification Information) >>
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2009.01.19 박지욱 최초 생성
|
||||
* 2011.08.31 JJY 경량환경 템플릿 커스터마이징버전 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
public class EgovNewPasswordUtil {
|
||||
|
||||
//private static final Logger LOGGER = LoggerFactory.getLogger(EgovNewPasswordUtil.class);
|
||||
|
||||
// 파일구분자
|
||||
//static final char FILE_SEPARATOR = File.separatorChar;
|
||||
// 버퍼사이즈
|
||||
//static final int BUFFER_SIZE = 1024;
|
||||
|
||||
private static final BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
|
||||
|
||||
// 비밀번호 해시
|
||||
public static String hashPassword(String rawPassword) {
|
||||
return encoder.encode(rawPassword);
|
||||
}
|
||||
|
||||
// 비밀번호 검증
|
||||
public static boolean matches(String rawPassword, String encodedPassword) {
|
||||
return encoder.matches(rawPassword, encodedPassword);
|
||||
}
|
||||
}
|
||||
@ -13,6 +13,9 @@
|
||||
# 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.iv=1234567890ABCDEF
|
||||
|
||||
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||
Globals.OsType = WINDOWS
|
||||
|
||||
|
||||
@ -13,6 +13,9 @@
|
||||
# 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.iv=1234567890ABCDEF
|
||||
|
||||
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||
Globals.OsType = WINDOWS
|
||||
|
||||
|
||||
@ -13,6 +13,9 @@
|
||||
# 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.iv=1234567890ABCDEF
|
||||
|
||||
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||
Globals.OsType = WINDOWS
|
||||
|
||||
|
||||
@ -1,167 +1,170 @@
|
||||
#-----------------------------------------------------------------------
|
||||
#
|
||||
# globals.properties : \uc2dc\uc2a4\ud15c
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
# 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
|
||||
# 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)
|
||||
# 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 : '/'
|
||||
# 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
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||
Globals.OsType = WINDOWS
|
||||
|
||||
# G4C \uc5f0\uacb0\uc6a9 IP (localhost)
|
||||
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
|
||||
Globals.DbType = tibero
|
||||
# \uac1c\ubc1c\uc6a9 DB \uc11c\ubc84 tibero \uc5f0\ub3d9
|
||||
Globals.UserName= EDUSCE
|
||||
Globals.Password= edusce#23
|
||||
|
||||
Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver
|
||||
#\ub85c\uceec DB
|
||||
#Globals.Url=jdbc:tibero:thin:@192.168.0.30:8633:tibero
|
||||
#\uc6b4\uc601 \uac1c\ubc1cDB - \ud14c\uc2a4\ud2b8 \uc644\ub8cc \ud6c4 \uc6b4\uc601 DB\ub85c \ubcc0\uacbd \uc608\uc815
|
||||
#Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
|
||||
#\uc6b4\uc601 DB
|
||||
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)
|
||||
Globals.MainPage = /cmm/main/mainPage.do
|
||||
#\ucee8\ud150\uce20 \ud30c\uc77c\uc704\uce58
|
||||
#Globals.ckeditorUploadDir=/home/file/ckeditor/
|
||||
Globals.ckeditorUploadDir=/usr/local/tomcat/file/ckeditor/
|
||||
#TEST SERVER
|
||||
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
|
||||
|
||||
#SNS \ub85c\uadf8\uc778 KEY \uac12
|
||||
#ITN \ub124\uc774\ubc84
|
||||
Globals.kcc.naver.clentId=d9Ohvhty_RVsfrq9p_2J
|
||||
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
|
||||
Globals.homepage.siteId=kccadr
|
||||
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
|
||||
#\uc6b4\uc601 \uac1c\ubc1c
|
||||
#Globals.prod.islocal=dev
|
||||
#\uc6b4\uc601
|
||||
Globals.prod.islocal=real
|
||||
|
||||
|
||||
#\ub300\uc6a9\ub7c9 innorix license
|
||||
Globals.Innorix.License=svr
|
||||
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
|
||||
|
||||
#\uad50\uc721 \uc54c\ub9bc \uba54\uc77c \ud15c\ud50c\ub9bf
|
||||
#-----------------------------------------------------------------------
|
||||
#
|
||||
# globals.properties : \uc2dc\uc2a4\ud15c
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
# 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
|
||||
# 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)
|
||||
# 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 : '/'
|
||||
# 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
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
crypto.key=A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
|
||||
crypto.iv=1234567890ABCDEF
|
||||
|
||||
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||
Globals.OsType = WINDOWS
|
||||
|
||||
# G4C \uc5f0\uacb0\uc6a9 IP (localhost)
|
||||
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
|
||||
Globals.DbType = tibero
|
||||
# \uac1c\ubc1c\uc6a9 DB \uc11c\ubc84 tibero \uc5f0\ub3d9
|
||||
Globals.UserName= EDUSCE
|
||||
Globals.Password= edusce#23
|
||||
|
||||
Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver
|
||||
#\ub85c\uceec DB
|
||||
#Globals.Url=jdbc:tibero:thin:@192.168.0.30:8633:tibero
|
||||
#\uc6b4\uc601 \uac1c\ubc1cDB - \ud14c\uc2a4\ud2b8 \uc644\ub8cc \ud6c4 \uc6b4\uc601 DB\ub85c \ubcc0\uacbd \uc608\uc815
|
||||
#Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
|
||||
#\uc6b4\uc601 DB
|
||||
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)
|
||||
Globals.MainPage = /cmm/main/mainPage.do
|
||||
#\ucee8\ud150\uce20 \ud30c\uc77c\uc704\uce58
|
||||
#Globals.ckeditorUploadDir=/home/file/ckeditor/
|
||||
Globals.ckeditorUploadDir=/usr/local/tomcat/file/ckeditor/
|
||||
#TEST SERVER
|
||||
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
|
||||
|
||||
#SNS \ub85c\uadf8\uc778 KEY \uac12
|
||||
#ITN \ub124\uc774\ubc84
|
||||
Globals.kcc.naver.clentId=d9Ohvhty_RVsfrq9p_2J
|
||||
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
|
||||
Globals.homepage.siteId=kccadr
|
||||
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
|
||||
#\uc6b4\uc601 \uac1c\ubc1c
|
||||
#Globals.prod.islocal=dev
|
||||
#\uc6b4\uc601
|
||||
Globals.prod.islocal=real
|
||||
|
||||
|
||||
#\ub300\uc6a9\ub7c9 innorix license
|
||||
Globals.Innorix.License=svr
|
||||
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
|
||||
|
||||
#\uad50\uc721 \uc54c\ub9bc \uba54\uc77c \ud15c\ud50c\ub9bf
|
||||
Globals.edu.mail.template=/template/offeduMain.html
|
||||
@ -13,6 +13,9 @@
|
||||
# 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.iv=1234567890ABCDEF
|
||||
|
||||
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||
Globals.OsType = WINDOWS
|
||||
|
||||
|
||||
@ -1,32 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:egov-crypto="http://www.egovframe.go.kr/schema/egov-crypto"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
|
||||
http://www.egovframe.go.kr/schema/egov-crypto http://www.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.8.xsd">
|
||||
<!--
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:egov-crypto="http://maven.egovframe.go.kr/schema/egov-crypto"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
|
||||
http://maven.egovframe.go.kr/schema/egov-crypto http://maven.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.10.0.xsd">
|
||||
-->
|
||||
|
||||
|
||||
<!--
|
||||
initial : globals.properties 연계 Url, UserName, Password 값 로드 여부(설정값 : true, false)
|
||||
crypto : 계정 암호화 여부(설정값 : true, false)
|
||||
algorithm : 계정 암호화 알고리즘
|
||||
algorithmKey : 계정 암호화키 키
|
||||
cryptoBlockSize : 계정 암호화키 블록사이즈
|
||||
cryptoPropertyLocation : 설정파일 암복호화 경로 (선택) 기본값은 'classpath:/egovframework/egovProps/globals.properties'
|
||||
-->
|
||||
<egov-crypto:config id="egovCryptoConfig"
|
||||
initial="false"
|
||||
crypto="false"
|
||||
algorithm="SHA-256"
|
||||
algorithmKey="egovframe"
|
||||
algorithmKeyHash="gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ="
|
||||
cryptoBlockSize="1024"
|
||||
cryptoPropertyLocation="classpath:/egovframework/egovProps/globals.properties"
|
||||
/>
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:egov-crypto="http://www.egovframe.go.kr/schema/egov-crypto"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
|
||||
http://www.egovframe.go.kr/schema/egov-crypto http://www.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.8.xsd">
|
||||
<!--
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:egov-crypto="http://maven.egovframe.go.kr/schema/egov-crypto"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
|
||||
http://maven.egovframe.go.kr/schema/egov-crypto http://maven.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.10.0.xsd">
|
||||
-->
|
||||
|
||||
|
||||
<!--
|
||||
initial : globals.properties 연계 Url, UserName, Password 값 로드 여부(설정값 : true, false)
|
||||
crypto : 계정 암호화 여부(설정값 : true, false)
|
||||
algorithm : 계정 암호화 알고리즘
|
||||
algorithmKey : 계정 암호화키 키
|
||||
cryptoBlockSize : 계정 암호화키 블록사이즈
|
||||
cryptoPropertyLocation : 설정파일 암복호화 경로 (선택) 기본값은 'classpath:/egovframework/egovProps/globals.properties'
|
||||
-->
|
||||
<egov-crypto:config id="egovCryptoConfig"
|
||||
initial="true"
|
||||
crypto="true"
|
||||
algorithm="AES/CBC/PKCS5Padding"
|
||||
algorithmKey="0123456789abcdef0123456789abcdef"
|
||||
algorithmKeyHash=""
|
||||
cryptoBlockSize="1024"
|
||||
cryptoPropertyLocation="classpath:/egovframework/egovProps/globals.properties"
|
||||
/>
|
||||
|
||||
<bean id="aes256Util" class="kcc.let.utl.sim.service.AES256Util">
|
||||
<constructor-arg value="${crypto.key}" />
|
||||
<constructor-arg value="${crypto.iv}" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
@ -75,6 +75,49 @@
|
||||
</isNotNull>
|
||||
</select>
|
||||
|
||||
<!-- 비밀번호비교를 위한 데이터 가져오기 용 -->
|
||||
<select id="loginDAO.actionLoginNew" resultMap="login">
|
||||
/*loginDAO.actionLogin*/
|
||||
<!-- 일반회원 -->
|
||||
<isNotNull property="userSe">
|
||||
<isEqual property="userSe" compareValue="GNR">
|
||||
SELECT mber_id AS id
|
||||
, mber_nm AS name
|
||||
, password AS password
|
||||
, ihidNum AS ihidNum
|
||||
, mber_email_adres AS email
|
||||
, 'GNR' AS userSe
|
||||
, '-' AS orgnztId
|
||||
, ESNTL_ID AS uniqId
|
||||
, 0 AS passMiss
|
||||
, mber_sttus AS emplyrSttusCode
|
||||
, mbtlnum AS membCelnum
|
||||
, birth_day AS membBirth
|
||||
, '' AS userWork
|
||||
FROM lettngnrlmber a
|
||||
WHERE mber_id = #id#
|
||||
</isEqual>
|
||||
<!-- 업무사용자 -->
|
||||
<isEqual property="userSe" compareValue="USR">
|
||||
SELECT EMPLYR_ID AS id
|
||||
, USER_NM AS name
|
||||
, PASSWORD AS password
|
||||
, IHIDNUM AS ihidNum
|
||||
, EMAIL_ADRES AS email
|
||||
, 'USR' AS userSe
|
||||
, ORGNZT_ID AS orgnztId
|
||||
, ESNTL_ID AS uniqId
|
||||
, PASS_MISS AS passMiss
|
||||
, EMPLYR_STTUS_CODE AS emplyrSttusCode
|
||||
, mbtlnum AS membCelnum
|
||||
, '' AS membBirth
|
||||
, user_work AS userWork
|
||||
FROM LETTNEMPLYRINFO a
|
||||
WHERE EMPLYR_ID = #id#
|
||||
</isEqual>
|
||||
</isNotNull>
|
||||
</select>
|
||||
|
||||
<!-- 개발자 아이디 선택용 -->
|
||||
<select id="loginDAO.actionLoginDev" resultMap="login">
|
||||
/*loginDAO.actionLoginDev*/
|
||||
|
||||
@ -567,7 +567,16 @@
|
||||
WHERE ESNTL_ID = #uniqId#
|
||||
]]>
|
||||
</update>
|
||||
|
||||
|
||||
<update id="userManageDAO.updatePassword_R">
|
||||
<![CDATA[
|
||||
UPDATE LETTNEMPLYRINFO
|
||||
SET
|
||||
PASSWORD = #password#
|
||||
WHERE EMPLYR_ID = #uniqId#
|
||||
]]>
|
||||
</update>
|
||||
|
||||
<select id="userManageDAO.selectPassword_S" resultClass="userVO">
|
||||
/* userManageDAO.selectPassword_S */
|
||||
<![CDATA[
|
||||
|
||||
@ -249,6 +249,7 @@ function userListExcelDownload(){
|
||||
</td>
|
||||
<td>
|
||||
<c:out value="${result.fxNum}"/>
|
||||
<c:out value="${result.emailAdres}"/>
|
||||
</td>
|
||||
<td>
|
||||
<c:choose>
|
||||
|
||||
@ -200,16 +200,16 @@
|
||||
<div class="cont_wrap">
|
||||
<!--tap 추가-->
|
||||
<ul class="tab_wrap">
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do" />'">과정신청기간관리목록</button></li>
|
||||
<li class="tab active"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do" />'">교육확정관리목록</button></li>
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do" />'">과정관리목록</button></li>
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do" />'">과정신청기간관리</button></li>
|
||||
<li class="tab active"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do" />'">확정과정관리</button></li>
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do" />'">과정관리</button></li>
|
||||
|
||||
</ul>
|
||||
<div class="box">
|
||||
|
||||
<!-- cont_tit -->
|
||||
<div class="cont_tit">
|
||||
<h2>교육확정관리목록</h2>
|
||||
<h2>확정과정관리</h2>
|
||||
<ul class="cont_nav">
|
||||
<li class="home"><a href="/"><i></i></a></li>
|
||||
<li>
|
||||
|
||||
@ -212,22 +212,22 @@
|
||||
<div class="cont_wrap">
|
||||
<!--tap 추가-->
|
||||
<ul class="tab_wrap">
|
||||
<li class="tab active"><button type="button" >과정신청기간관리목록</button></li>
|
||||
<li class="tab active"><button type="button" >과정신청기간관리</button></li>
|
||||
<%-- <li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do" />'">과정신청기간관리목록</button></li> --%>
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do" />'">교육확정관리목록</button></li>
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do" />'">과정관리목록</button></li>
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do" />'">확정과정관리</button></li>
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do" />'">과정관리</button></li>
|
||||
</ul>
|
||||
<div class="box">
|
||||
|
||||
<!-- cont_tit -->
|
||||
<div class="cont_tit">
|
||||
<h2>과정신청기간관리목록</h2>
|
||||
<h2>과정신청기간관리</h2>
|
||||
<ul class="cont_nav">
|
||||
<li class="home"><a href="/"><i></i></a></li>
|
||||
<li>
|
||||
<p>조건부기소유예관리</p>
|
||||
</li>
|
||||
<li><span class="cur_nav">과정신청기간관리목록</span></li>
|
||||
<li><span class="cur_nav">과정신청기간관리</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //cont_tit -->
|
||||
|
||||
@ -53,6 +53,7 @@
|
||||
listForm.pageIndex.value = pageNo ;
|
||||
listForm.searchKeyword.value = $('#searchKeyword').val();
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do'/>";
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
@ -176,22 +177,24 @@
|
||||
<!--tap 추가-->
|
||||
<ul class="tab_wrap">
|
||||
<!-- <li class="tab active"><button type="button" >과정신청기간관리목록</button></li> -->
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do" />'">과정신청기간관리목록</button></li>
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do" />'">교육확정관리목록</button></li>
|
||||
<li class="tab active"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do" />'">과정관리목록</button></li>
|
||||
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do" />'">과정신청기간관리</button></li>
|
||||
<li class="tab"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do" />'">확정과정관리</button></li>
|
||||
<li class="tab active"><button type="button" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do" />'">과정관리</button></li>
|
||||
|
||||
|
||||
</ul>
|
||||
<div class="box">
|
||||
|
||||
<!-- cont_tit -->
|
||||
<div class="cont_tit">
|
||||
<h2>과정관리목록</h2>
|
||||
<h2>과정관리</h2>
|
||||
<ul class="cont_nav">
|
||||
<li class="home"><a href="/"><i></i></a></li>
|
||||
<li>
|
||||
<p>조건부기소유예관리</p>
|
||||
</li>
|
||||
<li><span class="cur_nav">과정관리목록</span></li>
|
||||
<li><span class="cur_nav">과정관리</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- //cont_tit -->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user