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 java.util.regex.Pattern;
|
||||||
|
|
||||||
import kcc.let.utl.sim.service.EgovFileScrty;
|
import kcc.let.utl.sim.service.EgovFileScrty;
|
||||||
|
import kcc.let.utl.sim.service.EgovNewPasswordUtil;
|
||||||
|
|
||||||
public class StringUtil {
|
public class StringUtil {
|
||||||
|
|
||||||
@ -416,6 +417,8 @@ public class StringUtil {
|
|||||||
public static void main(String args[]) {
|
public static void main(String args[]) {
|
||||||
try {
|
try {
|
||||||
System.out.print(EgovFileScrty.encryptPassword("1", "kcctest"));
|
System.out.print(EgovFileScrty.encryptPassword("1", "kcctest"));
|
||||||
|
System.out.print(EgovNewPasswordUtil.hashPassword("1"));
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println("Main Exception Error");
|
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.uat.uia.service.SsoLoginVO;
|
||||||
import kcc.let.utl.fcc.service.CertUtil;
|
import kcc.let.utl.fcc.service.CertUtil;
|
||||||
import kcc.let.utl.sim.service.EgovFileScrty;
|
import kcc.let.utl.sim.service.EgovNewPasswordUtil;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
public class CertController {
|
public class CertController {
|
||||||
@ -95,7 +95,9 @@ public class CertController {
|
|||||||
//3.오류시 문구
|
//3.오류시 문구
|
||||||
s_message = retMap.get("sResult").toString();
|
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) {
|
}catch(Exception ex) {
|
||||||
System.out.println("Exception Occured!!!");
|
System.out.println("Exception Occured!!!");
|
||||||
|
|
||||||
|
|||||||
@ -12,9 +12,12 @@ import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
|
|||||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
import kcc.com.cmm.LoginVO;
|
import kcc.com.cmm.LoginVO;
|
||||||
import kcc.let.uat.uia.service.EgovLoginService;
|
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.EgovNumberUtil;
|
||||||
import kcc.let.utl.fcc.service.EgovStringUtil;
|
import kcc.let.utl.fcc.service.EgovStringUtil;
|
||||||
import kcc.let.utl.sim.service.EgovFileScrty;
|
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")
|
@Resource(name="loginDAO")
|
||||||
private LoginDAO loginDAO;
|
private LoginDAO loginDAO;
|
||||||
|
|
||||||
|
/** userManageService */
|
||||||
|
@Resource(name = "userManageService")
|
||||||
|
private EgovUserManageService userManageService;
|
||||||
|
|
||||||
///** EgovSndngMailRegistService */
|
///** EgovSndngMailRegistService */
|
||||||
//@Resource(name = "sndngMailRegistService")
|
//@Resource(name = "sndngMailRegistService")
|
||||||
//private EgovSndngMailRegistService sndngMailRegistService;
|
//private EgovSndngMailRegistService sndngMailRegistService;
|
||||||
@ -53,19 +60,75 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public LoginVO actionLogin(LoginVO vo) throws Exception {
|
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, 이준호)
|
//최고관리자를 제외한 사용자 sso 로그인으로 비밀번호 암호화 삭제(210818, 이준호)
|
||||||
// 1. 입력한 비밀번호를 암호화한다.
|
// 1. 입력한 비밀번호를 암호화한다.
|
||||||
if("USR".equals(vo.getUserSe())) {
|
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);
|
vo.setPassword(enpassword);
|
||||||
}
|
}
|
||||||
|
System.out.println("======2========================"+s_password);
|
||||||
|
|
||||||
// 2. 아이디와 암호화된 비밀번호가 DB와 일치하는지 확인한다.
|
// 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. 결과를 리턴한다.
|
// 3. 결과를 리턴한다.
|
||||||
if (loginVO != null && !loginVO.getId().equals("") && !loginVO.getPassword().equals("")) {
|
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;
|
return loginVO;
|
||||||
} else {
|
} else {
|
||||||
loginVO = new LoginVO();
|
loginVO = new LoginVO();
|
||||||
@ -80,7 +143,8 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
//최고관리자를 제외한 사용자 sso 로그인으로 비밀번호 암호화 삭제(210818, 이준호)
|
//최고관리자를 제외한 사용자 sso 로그인으로 비밀번호 암호화 삭제(210818, 이준호)
|
||||||
// 1. 입력한 비밀번호를 암호화한다.
|
// 1. 입력한 비밀번호를 암호화한다.
|
||||||
if("USR".equals(vo.getUserSe())) {
|
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);
|
vo.setPassword(enpassword);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -193,7 +257,8 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
|
|
||||||
// 3. 임시 비밀번호를 암호화하여 DB에 저장한다.
|
// 3. 임시 비밀번호를 암호화하여 DB에 저장한다.
|
||||||
LoginVO pwVO = new LoginVO();
|
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.setId(vo.getId());
|
||||||
pwVO.setPassword(enpassword);
|
pwVO.setPassword(enpassword);
|
||||||
pwVO.setUserSe(vo.getUserSe());
|
pwVO.setUserSe(vo.getUserSe());
|
||||||
@ -220,7 +285,8 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
@Override
|
@Override
|
||||||
public LoginVO siteActionLogin(LoginVO vo) throws Exception {
|
public LoginVO siteActionLogin(LoginVO vo) throws Exception {
|
||||||
// 1. 입력한 비밀번호를 암호화한다.
|
// 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);
|
vo.setPassword(enpassword);
|
||||||
|
|
||||||
// 2. 아이디와 암호화된 비밀번호가 DB와 일치하는지 확인한다.
|
// 2. 아이디와 암호화된 비밀번호가 DB와 일치하는지 확인한다.
|
||||||
@ -298,7 +364,8 @@ public class EgovLoginServiceImpl extends EgovAbstractServiceImpl implements
|
|||||||
//최고관리자를 제외한 사용자 sso 로그인으로 비밀번호 암호화 삭제(210818, 이준호)
|
//최고관리자를 제외한 사용자 sso 로그인으로 비밀번호 암호화 삭제(210818, 이준호)
|
||||||
// 1. 입력한 비밀번호를 암호화한다.
|
// 1. 입력한 비밀번호를 암호화한다.
|
||||||
if("USR".equals(vo.getUserSe())) {
|
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);
|
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.MberManageConfigVO;
|
||||||
import kcc.let.uss.umt.service.MberManageVO;
|
import kcc.let.uss.umt.service.MberManageVO;
|
||||||
import kcc.let.uss.umt.service.UserDefaultVO;
|
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();
|
String uniqId = idgenService.getNextStringId();
|
||||||
mberManageVO.setUniqId(uniqId);
|
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);
|
mberManageVO.setPassword(pass);
|
||||||
String result = mberManageDAO.insertMber(mberManageVO);
|
String result = mberManageDAO.insertMber(mberManageVO);
|
||||||
|
|
||||||
@ -93,7 +95,9 @@ public class EgovMberManageServiceImpl extends EgovAbstractServiceImpl implement
|
|||||||
@Override
|
@Override
|
||||||
public void updateMber(MberManageVO mberManageVO) throws Exception {
|
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);
|
mberManageVO.setPassword(pass);
|
||||||
mberManageDAO.updateMber(mberManageVO);
|
mberManageDAO.updateMber(mberManageVO);
|
||||||
|
|
||||||
@ -151,7 +155,9 @@ public class EgovMberManageServiceImpl extends EgovAbstractServiceImpl implement
|
|||||||
String uniqId = idgenService.getNextStringId();
|
String uniqId = idgenService.getNextStringId();
|
||||||
mberManageVO.setUniqId(uniqId);
|
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);
|
mberManageVO.setPassword(pass);
|
||||||
/*AuthorGroup authorGroup = new AuthorGroup();
|
/*AuthorGroup authorGroup = new AuthorGroup();
|
||||||
authorGroup.setUniqId(uniqId);
|
authorGroup.setUniqId(uniqId);
|
||||||
|
|||||||
@ -41,6 +41,10 @@ public class LoginDAO extends EgovAbstractDAO {
|
|||||||
public LoginVO actionLoginDev(LoginVO vo) throws Exception {
|
public LoginVO actionLoginDev(LoginVO vo) throws Exception {
|
||||||
return (LoginVO)select("loginDAO.actionLoginDev", vo);
|
return (LoginVO)select("loginDAO.actionLoginDev", vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LoginVO actionLoginNew(LoginVO vo) throws Exception {
|
||||||
|
return (LoginVO)select("loginDAO.actionLoginNew", vo);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 등록된 SNS 수량을 조회한다.
|
* 등록된 SNS 수량을 조회한다.
|
||||||
|
|||||||
@ -89,6 +89,8 @@ public interface EgovUserManageService {
|
|||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public void updatePassword(UserManageVO userManageVO) 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.EgovUserManageService;
|
||||||
import kcc.let.uss.umt.service.UserDefaultVO;
|
import kcc.let.uss.umt.service.UserDefaultVO;
|
||||||
import kcc.let.uss.umt.service.UserManageVO;
|
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);
|
userManageVO.setPassword(pass);
|
||||||
}else {
|
}else {
|
||||||
//관리자 이외
|
//관리자 이외
|
||||||
@ -217,7 +218,8 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
|
|||||||
@Override
|
@Override
|
||||||
public void updateUser(UserManageVO userManageVO) throws Exception {
|
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);
|
userManageVO.setPassword(pass);
|
||||||
|
|
||||||
userManageDAO.updateUser(userManageVO);
|
userManageDAO.updateUser(userManageVO);
|
||||||
@ -244,6 +246,11 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
|
|||||||
userManageDAO.updatePassword(userManageVO);
|
userManageDAO.updatePassword(userManageVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updatePasswordR(UserManageVO userManageVO) {
|
||||||
|
userManageDAO.updatePasswordR(userManageVO);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 사용자가 비밀번호를 기억하지 못할 때 비밀번호를 찾을 수 있도록 함
|
* 사용자가 비밀번호를 기억하지 못할 때 비밀번호를 찾을 수 있도록 함
|
||||||
* @param passVO 업무사용자 암호 조회조건정보
|
* @param passVO 업무사용자 암호 조회조건정보
|
||||||
@ -271,7 +278,8 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
|
|||||||
@Override
|
@Override
|
||||||
public void updateUserPWAjax(UserManageVO userManageVO) throws Exception {
|
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);
|
userManageVO.setPassword(pass);
|
||||||
userManageDAO.updateUserPWAjax(userManageVO);
|
userManageDAO.updateUserPWAjax(userManageVO);
|
||||||
}
|
}
|
||||||
@ -348,7 +356,8 @@ public class EgovUserManageServiceImpl extends EgovAbstractServiceImpl implement
|
|||||||
String pass = "1";
|
String pass = "1";
|
||||||
if("ROLE_ADMIN".equals(userManageVO.getAuthorCode()) || "ROLE_VISIT".equals(userManageVO.getAuthorCode())){
|
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);
|
userManageVO.setPassword(pass);
|
||||||
}else {
|
}else {
|
||||||
userManageVO.setPassword(pass);
|
userManageVO.setPassword(pass);
|
||||||
|
|||||||
@ -107,6 +107,10 @@ public class UserManageDAO extends EgovAbstractDAO{
|
|||||||
public void updatePassword(UserManageVO passVO) {
|
public void updatePassword(UserManageVO passVO) {
|
||||||
update("userManageDAO.updatePassword_S", 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.UserDefaultVO;
|
||||||
import kcc.let.uss.umt.service.UserManageVO;
|
import kcc.let.uss.umt.service.UserManageVO;
|
||||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||||
import kcc.let.utl.sim.service.EgovFileScrty;
|
import kcc.let.utl.sim.service.EgovNewPasswordUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 업무사용자관련 요청을 비지니스 클래스로 전달하고 처리된결과를 해당 웹 화면으로 전달하는 Controller를 정의한다
|
* 업무사용자관련 요청을 비지니스 클래스로 전달하고 처리된결과를 해당 웹 화면으로 전달하는 Controller를 정의한다
|
||||||
@ -211,6 +211,17 @@ public class EgovUserManageController {
|
|||||||
userSearchVO.setSearchSortOrd("desc");
|
userSearchVO.setSearchSortOrd("desc");
|
||||||
}
|
}
|
||||||
List<?> resultList = userManageService.selectUserList(userSearchVO) ;
|
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);
|
model.addAttribute("resultList", resultList);
|
||||||
//paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
|
//paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
|
||||||
//int i_resultList = resultList.size();
|
//int i_resultList = resultList.size();
|
||||||
@ -543,6 +554,7 @@ public class EgovUserManageController {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
userManageVO = egovCryptoUtil.encryptUserManageVO(userManageVO);
|
||||||
userManageService.insertUser(userManageVO);
|
userManageService.insertUser(userManageVO);
|
||||||
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
|
redirectAttributes.addFlashAttribute("message", egovMessageSource.getMessage("success.common.insert"));
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
@ -608,6 +620,7 @@ public class EgovUserManageController {
|
|||||||
|
|
||||||
UserManageVO userManageVO = new UserManageVO();
|
UserManageVO userManageVO = new UserManageVO();
|
||||||
userManageVO = userManageService.selectUser(uniqId);
|
userManageVO = userManageService.selectUser(uniqId);
|
||||||
|
userManageVO = egovCryptoUtil.decryptUserManageVO(userManageVO);
|
||||||
model.addAttribute("userSearchVO", userSearchVO);
|
model.addAttribute("userSearchVO", userSearchVO);
|
||||||
model.addAttribute("userManageVO", userManageVO);
|
model.addAttribute("userManageVO", userManageVO);
|
||||||
|
|
||||||
@ -902,6 +915,8 @@ public class EgovUserManageController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
userManageService.insertUserHistory(userManageVO);
|
userManageService.insertUserHistory(userManageVO);
|
||||||
|
|
||||||
|
userManageVO = egovCryptoUtil.encryptUserManageVO(userManageVO);
|
||||||
userManageService.updateUser(userManageVO);
|
userManageService.updateUser(userManageVO);
|
||||||
//권한업데이트
|
//권한업데이트
|
||||||
egovAuthorGroupService.updateAuthorGroup(authorGroup);
|
egovAuthorGroupService.updateAuthorGroup(authorGroup);
|
||||||
@ -1164,12 +1179,12 @@ public class EgovUserManageController {
|
|||||||
// authFlag = false; //GS인증으로 이전비밀번호 체크
|
// authFlag = false; //GS인증으로 이전비밀번호 체크
|
||||||
// 이전 비밀번호 체크 하지 않고 비밀번호 변경되게 해달라는 요청으로 주석처리 220209 이준호
|
// 이전 비밀번호 체크 하지 않고 비밀번호 변경되게 해달라는 요청으로 주석처리 220209 이준호
|
||||||
// if (encryptPass.equals(resultVO.getPassword()) || authFlag) {
|
// if (encryptPass.equals(resultVO.getPassword()) || authFlag) {
|
||||||
if (newPassword.equals(newPassword2)) {
|
if (newPassword.equals(newPassword2)) {
|
||||||
isCorrectPassword = true;
|
isCorrectPassword = true;
|
||||||
} else {
|
} else {
|
||||||
isCorrectPassword = false;
|
isCorrectPassword = false;
|
||||||
resultMsg = "fail.user.passwordUpdate2";
|
resultMsg = "fail.user.passwordUpdate2";
|
||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
/*else {
|
/*else {
|
||||||
isCorrectPassword = false;
|
isCorrectPassword = false;
|
||||||
@ -1177,7 +1192,8 @@ public class EgovUserManageController {
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
if (isCorrectPassword) {
|
if (isCorrectPassword) {
|
||||||
userManageVO.setPassword(EgovFileScrty.encryptPassword(newPassword, userManageVO.getEmplyrId()));
|
//userManageVO.setPassword(EgovFileScrty.encryptPassword(newPassword, userManageVO.getEmplyrId()));
|
||||||
|
userManageVO.setPassword(EgovNewPasswordUtil.hashPassword(newPassword)); //입력한 비밀번호 암호화
|
||||||
userManageService.updatePassword(userManageVO);
|
userManageService.updatePassword(userManageVO);
|
||||||
model.addAttribute("userManageVO", userManageVO);
|
model.addAttribute("userManageVO", userManageVO);
|
||||||
resultMsg = "success.common.update";
|
resultMsg = "success.common.update";
|
||||||
@ -1917,7 +1933,9 @@ public class EgovUserManageController {
|
|||||||
}else {
|
}else {
|
||||||
String returnPassword = returnUserManageVO.getPassword() ;
|
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)) {
|
if(returnPassword.equals(encryptPass)) {
|
||||||
modelAndView.addObject("usedCnt", 1);
|
modelAndView.addObject("usedCnt", 1);
|
||||||
//세션으로 인증넣어줌
|
//세션으로 인증넣어줌
|
||||||
|
|||||||
@ -7,10 +7,12 @@ import javax.annotation.Resource;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import egovframework.rte.fdl.cryptography.EgovEnvCryptoService;
|
import egovframework.rte.fdl.cryptography.EgovEnvCryptoService;
|
||||||
import egovframework.rte.fdl.cryptography.EgovPasswordEncoder;
|
import egovframework.rte.fdl.cryptography.EgovPasswordEncoder;
|
||||||
|
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||||
import kcc.com.cmm.ComDefaultCodeVO;
|
import kcc.com.cmm.ComDefaultCodeVO;
|
||||||
import kcc.com.cmm.ComDefaultVO;
|
import kcc.com.cmm.ComDefaultVO;
|
||||||
import kcc.com.cmm.service.CmmnDetailCode;
|
import kcc.com.cmm.service.CmmnDetailCode;
|
||||||
@ -19,6 +21,7 @@ import kcc.com.cmm.service.FileVO;
|
|||||||
import kcc.kccadr.sch.service.SchduleManageVO;
|
import kcc.kccadr.sch.service.SchduleManageVO;
|
||||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||||
import kcc.let.uss.umt.service.UserManageVO;
|
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.VEEduExcelVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduSatisfactionExcelVO;
|
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduSatisfactionExcelVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
|
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
|
||||||
@ -66,6 +69,9 @@ public class EgovCryptoUtil {
|
|||||||
@Resource(name = "egovEnvPasswordEncoderService")
|
@Resource(name = "egovEnvPasswordEncoderService")
|
||||||
EgovPasswordEncoder egovPasswordEncoder;
|
EgovPasswordEncoder egovPasswordEncoder;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AES256Util aes256Util;
|
||||||
|
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// VO 별 암/복호화
|
// 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.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.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.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;
|
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.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.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.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.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.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.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;
|
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.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.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;
|
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.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.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;
|
return p_vEInstrDetailVO;
|
||||||
@ -421,6 +434,9 @@ public class EgovCryptoUtil {
|
|||||||
public UserManageVO encryptUserManageVO(UserManageVO p_userManageVO){
|
public UserManageVO encryptUserManageVO(UserManageVO p_userManageVO){
|
||||||
|
|
||||||
if (!"".equals(p_userManageVO.getEmplyrNm())) p_userManageVO.setEmplyrNm(this.encrypt(p_userManageVO.getEmplyrNm()));
|
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;
|
return p_userManageVO;
|
||||||
}
|
}
|
||||||
@ -429,6 +445,27 @@ public class EgovCryptoUtil {
|
|||||||
public UserManageVO decryptUserManageVO(UserManageVO p_userManageVO){
|
public UserManageVO decryptUserManageVO(UserManageVO p_userManageVO){
|
||||||
|
|
||||||
if (!"".equals(p_userManageVO.getEmplyrNm())) p_userManageVO.setEmplyrNm(this.decrypt(p_userManageVO.getEmplyrNm()));
|
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;
|
return p_userManageVO;
|
||||||
@ -544,11 +581,15 @@ public class EgovCryptoUtil {
|
|||||||
|
|
||||||
//CndtnTrgtMngVO - 암호화
|
//CndtnTrgtMngVO - 암호화
|
||||||
// 240108 담당검사 이름 추가
|
// 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 (!"".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.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.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()));
|
//if (!"".equals(p_cndtnTrgtInfoMngVO.getPrsctrNm())) p_cndtnTrgtInfoMngVO.setPrsctrNm(this.encrypt(p_cndtnTrgtInfoMngVO.getPrsctrNm()));
|
||||||
|
|
||||||
return p_cndtnTrgtInfoMngVO;
|
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 (!"".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.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.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()));
|
//if (!"".equals(p_cndtnTrgtInfoMngVO.getPrsctrNm())) p_cndtnTrgtInfoMngVO.setPrsctrNm(this.decrypt(p_cndtnTrgtInfoMngVO.getPrsctrNm()));
|
||||||
|
|
||||||
return p_cndtnTrgtInfoMngVO;
|
return p_cndtnTrgtInfoMngVO;
|
||||||
@ -618,13 +664,9 @@ public class EgovCryptoUtil {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
LOGGER.debug("enc1-cryptoService.getCyptoAlgorithmKey()");
|
LOGGER.debug("enc1-cryptoService.getCyptoAlgorithmKey()");
|
||||||
//LOGGER.debug(cryptoService.getCyptoAlgorithmKey());
|
//return cryptoService.encryptNone(encrypt); // Does not handle URLEncoding.
|
||||||
//LOGGER.debug(cryptoService.getCyptoAlgorithmKey());
|
|
||||||
//System.out.println("enc1-cryptoService.getCyptoAlgorithmKey()");
|
return aes256Util.encrypt(encrypt); // Does not handle URLEncoding.
|
||||||
//System.out.println(cryptoService.getCyptoAlgorithmKey());
|
|
||||||
//System.out.println(cryptoService.getCyptoAlgorithmKey());
|
|
||||||
//return cryptoService.encrypt(encrypt); // Handles URLEncoding.
|
|
||||||
return cryptoService.encryptNone(encrypt); // Does not handle URLEncoding.
|
|
||||||
} catch(IllegalArgumentException e) {
|
} catch(IllegalArgumentException e) {
|
||||||
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
|
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -647,10 +689,10 @@ public class EgovCryptoUtil {
|
|||||||
//LOGGER.debug(cryptoService.getCyptoAlgorithmKey());
|
//LOGGER.debug(cryptoService.getCyptoAlgorithmKey());
|
||||||
//System.out.println("decry2-cryptoService.getCyptoAlgorithmKey()");
|
//System.out.println("decry2-cryptoService.getCyptoAlgorithmKey()");
|
||||||
//System.out.println(cryptoService.getCyptoAlgorithmKey());
|
//System.out.println(cryptoService.getCyptoAlgorithmKey());
|
||||||
|
|
||||||
|
|
||||||
//return cryptoService.decrypt(decrypt); // Handles URLDecoding.
|
//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) {
|
} catch(IllegalArgumentException e) {
|
||||||
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
|
LOGGER.error("[IllegalArgumentException] Try/Catch...usingParameters Runing : "+ e.getMessage());
|
||||||
} catch (Exception e) {
|
} 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
|
# 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)
|
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||||
Globals.OsType = WINDOWS
|
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
|
# 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)
|
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||||
Globals.OsType = WINDOWS
|
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
|
# 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)
|
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||||
Globals.OsType = WINDOWS
|
Globals.OsType = WINDOWS
|
||||||
|
|
||||||
|
|||||||
@ -1,167 +1,170 @@
|
|||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# 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
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
|
|
||||||
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
crypto.key=A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6
|
||||||
Globals.OsType = WINDOWS
|
crypto.iv=1234567890ABCDEF
|
||||||
|
|
||||||
# G4C \uc5f0\uacb0\uc6a9 IP (localhost)
|
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||||
Globals.LocalIp = 127.0.0.1
|
Globals.OsType = WINDOWS
|
||||||
|
|
||||||
# DB\uc11c\ubc84 \ud0c0\uc785(mysql,oracle,altibase,tibero) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428
|
# G4C \uc5f0\uacb0\uc6a9 IP (localhost)
|
||||||
Globals.DbType = tibero
|
Globals.LocalIp = 127.0.0.1
|
||||||
# \uac1c\ubc1c\uc6a9 DB \uc11c\ubc84 tibero \uc5f0\ub3d9
|
|
||||||
Globals.UserName= EDUSCE
|
# DB\uc11c\ubc84 \ud0c0\uc785(mysql,oracle,altibase,tibero) - datasource \ubc0f sqlMap \ud30c\uc77c \uc9c0\uc815\uc5d0 \uc0ac\uc6a9\ub428
|
||||||
Globals.Password= edusce#23
|
Globals.DbType = tibero
|
||||||
|
# \uac1c\ubc1c\uc6a9 DB \uc11c\ubc84 tibero \uc5f0\ub3d9
|
||||||
Globals.DriverClassName=com.tmax.tibero.jdbc.TbDriver
|
Globals.UserName= EDUSCE
|
||||||
#\ub85c\uceec DB
|
Globals.Password= edusce#23
|
||||||
#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.DriverClassName=com.tmax.tibero.jdbc.TbDriver
|
||||||
#Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb
|
#\ub85c\uceec DB
|
||||||
#\uc6b4\uc601 DB
|
#Globals.Url=jdbc:tibero:thin:@192.168.0.30:8633:tibero
|
||||||
Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
|
#\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
|
||||||
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c)
|
Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb
|
||||||
Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
|
|
||||||
Globals.SMSDB.Url=jdbc:oracle:thin:@192.168.0.118:1521:xe
|
|
||||||
Globals.SMSDB.UserName=KCCADR
|
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uac1c\ubc1c)
|
||||||
Globals.SMSDB.Password=kccadr
|
Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
|
||||||
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uc6b4\uc601)
|
Globals.SMSDB.Url=jdbc:oracle:thin:@192.168.0.118:1521:xe
|
||||||
#Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
|
Globals.SMSDB.UserName=KCCADR
|
||||||
#Globals.SMSDB.Url=jdbc:oracle:thin:@222.231.43.26:1521:ora10g
|
Globals.SMSDB.Password=kccadr
|
||||||
#Globals.SMSDB.UserName=smsmanager
|
# \uc800\uc791\uc704 \ubb38\uc790\uc804\uc1a1 DB(\uc6b4\uc601)
|
||||||
#Globals.SMSDB.Password=eksanswk2014
|
#Globals.SMSDB.DriverClassName=oracle.jdbc.driver.OracleDriver
|
||||||
|
#Globals.SMSDB.Url=jdbc:oracle:thin:@222.231.43.26:1521:ora10g
|
||||||
Globals.SMSDB.SendTelNo=02-2669-0042
|
#Globals.SMSDB.UserName=smsmanager
|
||||||
Globals.SMSDB.TrId=kccadr
|
#Globals.SMSDB.Password=eksanswk2014
|
||||||
|
|
||||||
# \uc800\uc791\uc704 \uba54\uc77c\uc804\uc1a1
|
Globals.SMSDB.SendTelNo=02-2669-0042
|
||||||
Globals.KccMail.URI=https://mail.copyright.or.kr/mail_api/form_send_mail
|
Globals.SMSDB.TrId=kccadr
|
||||||
Globals.KccMail.api_key=#!@mail5455
|
|
||||||
Globals.KccMail.sender=adr@copyright.or.kr
|
# \uc800\uc791\uc704 \uba54\uc77c\uc804\uc1a1
|
||||||
Globals.KccMail.title=[\ud55c\uad6d\uc800\uc791\uad8c\uc704\uc6d0\ud68c] \ubd84\uc7c1\uc870\uc815\uc2dc\uc2a4\ud15c \uc54c\ub9bc
|
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
|
||||||
#SSO \uc811\uc18d\uc815\ubcf4
|
Globals.KccMail.title=[\ud55c\uad6d\uc800\uc791\uad8c\uc704\uc6d0\ud68c] \ubd84\uc7c1\uc870\uc815\uc2dc\uc2a4\ud15c \uc54c\ub9bc
|
||||||
#\uac1c\ubc1c\uc11c\ubc84
|
|
||||||
Globals.sso.ssoUri=https://devsso.copyright.or.kr/oauth2/token.do
|
|
||||||
Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
|
#SSO \uc811\uc18d\uc815\ubcf4
|
||||||
Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
|
#\uac1c\ubc1c\uc11c\ubc84
|
||||||
Globals.sso.scope=http://sso.copyright.or.kr
|
Globals.sso.ssoUri=https://devsso.copyright.or.kr/oauth2/token.do
|
||||||
Globals.sso.returnSiteUrl=http://219.240.88.15:8091/web/user/login/ssoUsrModifyResult.do
|
Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
|
||||||
Globals.sso.returnSiteCode=SITE011
|
Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
|
||||||
|
Globals.sso.scope=http://sso.copyright.or.kr
|
||||||
#\uc2e4\uc11c\ubc84
|
Globals.sso.returnSiteUrl=http://219.240.88.15:8091/web/user/login/ssoUsrModifyResult.do
|
||||||
#Globals.sso.ssoUri=https://sso.copyright.or.kr/oauth2/token.do
|
Globals.sso.returnSiteCode=SITE011
|
||||||
#Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
|
|
||||||
#Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
|
#\uc2e4\uc11c\ubc84
|
||||||
#Globals.sso.scope=http://sso.copyright.or.kr
|
#Globals.sso.ssoUri=https://sso.copyright.or.kr/oauth2/token.do
|
||||||
#Globals.sso.returnSiteUrl=http://adr.copyright.or.kr/web/user/login/ssoUsrModifyResult.do
|
#Globals.sso.clientId=30354835c3684ff79e7fb1bfd3a768f6
|
||||||
#Globals.sso.returnSiteCode=SITE011
|
#Globals.sso.clientSecret=1ueil5ee05wr0t1gjy1ppt212
|
||||||
|
#Globals.sso.scope=http://sso.copyright.or.kr
|
||||||
#SSO \ud1b5\ud569\ud68c\uc6d0\uc0ac\uc774\ud2b8 URL
|
#Globals.sso.returnSiteUrl=http://adr.copyright.or.kr/web/user/login/ssoUsrModifyResult.do
|
||||||
#\uac1c\ubc1c\uc11c\ubc84
|
#Globals.sso.returnSiteCode=SITE011
|
||||||
Globals.sso.joinUrl=https://devoneid.copyright.or.kr/member/signUp/signUpStep1.do
|
|
||||||
Globals.sso.modifyUrl=https://devoneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
|
#SSO \ud1b5\ud569\ud68c\uc6d0\uc0ac\uc774\ud2b8 URL
|
||||||
Globals.sso.idFindUrl=https://devoneid.copyright.or.kr/member/infoFind/idFindStep1.do
|
#\uac1c\ubc1c\uc11c\ubc84
|
||||||
Globals.sso.pwFindUrl=https://devoneid.copyright.or.kr/member/infoFind/passFindStep1.do
|
Globals.sso.joinUrl=https://devoneid.copyright.or.kr/member/signUp/signUpStep1.do
|
||||||
#\uc2e4\uc11c\ubc84
|
Globals.sso.modifyUrl=https://devoneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
|
||||||
#Globals.sso.joinUrl=https://oneid.copyright.or.kr/member/signUp/signUpStep1.do
|
Globals.sso.idFindUrl=https://devoneid.copyright.or.kr/member/infoFind/idFindStep1.do
|
||||||
#Globals.sso.modifyUrl=https://oneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
|
Globals.sso.pwFindUrl=https://devoneid.copyright.or.kr/member/infoFind/passFindStep1.do
|
||||||
#Globals.sso.idFindUrl=https://oneid.copyright.or.kr/member/infoFind/idFindStep1.do
|
#\uc2e4\uc11c\ubc84
|
||||||
#Globals.sso.pwFindUrl=https://oneid.copyright.or.kr/member/infoFind/passFindStep1.do
|
#Globals.sso.joinUrl=https://oneid.copyright.or.kr/member/signUp/signUpStep1.do
|
||||||
|
#Globals.sso.modifyUrl=https://oneid.copyright.or.kr/member/baseInfo/baseInfoModify.do
|
||||||
# MainPage Setting(admin)
|
#Globals.sso.idFindUrl=https://oneid.copyright.or.kr/member/infoFind/idFindStep1.do
|
||||||
Globals.MainPage = /cmm/main/mainPage.do
|
#Globals.sso.pwFindUrl=https://oneid.copyright.or.kr/member/infoFind/passFindStep1.do
|
||||||
#\ucee8\ud150\uce20 \ud30c\uc77c\uc704\uce58
|
|
||||||
#Globals.ckeditorUploadDir=/home/file/ckeditor/
|
# MainPage Setting(admin)
|
||||||
Globals.ckeditorUploadDir=/usr/local/tomcat/file/ckeditor/
|
Globals.MainPage = /cmm/main/mainPage.do
|
||||||
#TEST SERVER
|
#\ucee8\ud150\uce20 \ud30c\uc77c\uc704\uce58
|
||||||
Globals.RealCntFileFolder=C:/eGovFrameDev-3.9.0-64bit_ncms/workspace/ncms39/src/main/webapp/WEB-INF/jsp/cnt/
|
#Globals.ckeditorUploadDir=/home/file/ckeditor/
|
||||||
Globals.Solr.url=http://localhost:8983/solr
|
Globals.ckeditorUploadDir=/usr/local/tomcat/file/ckeditor/
|
||||||
|
#TEST SERVER
|
||||||
#SNS \ub85c\uadf8\uc778 KEY \uac12
|
Globals.RealCntFileFolder=C:/eGovFrameDev-3.9.0-64bit_ncms/workspace/ncms39/src/main/webapp/WEB-INF/jsp/cnt/
|
||||||
#ITN \ub124\uc774\ubc84
|
Globals.Solr.url=http://localhost:8983/solr
|
||||||
Globals.kcc.naver.clentId=d9Ohvhty_RVsfrq9p_2J
|
|
||||||
Globals.kcc.naver.clientSecret=kwiEmpkLg5
|
#SNS \ub85c\uadf8\uc778 KEY \uac12
|
||||||
Globals.kcc.naver.returnUrl=http://localhost:80/snsLogin/naverOauth.do
|
#ITN \ub124\uc774\ubc84
|
||||||
#ITN \uce74\uce74\uc624
|
Globals.kcc.naver.clentId=d9Ohvhty_RVsfrq9p_2J
|
||||||
Globals.kcc.kakao.restApiKey=10b66ad0c44b68b659855ddd64db2c44
|
Globals.kcc.naver.clientSecret=kwiEmpkLg5
|
||||||
Globals.kcc.kakao.returnUrl=http://localhost:80/snsLogin/kakaoOauth.do
|
Globals.kcc.naver.returnUrl=http://localhost:80/snsLogin/naverOauth.do
|
||||||
|
#ITN \uce74\uce74\uc624
|
||||||
#\uc0ac\uc774\ud2b8 \uc544\uc774\ub514 \uc81c\uac70\ub85c JSP\uc5d0\uc11c siteId/siteNm \ubcf4\uc5ec\uc8fc\uae30 \uc704\ud574
|
Globals.kcc.kakao.restApiKey=10b66ad0c44b68b659855ddd64db2c44
|
||||||
Globals.homepage.siteId=kccadr
|
Globals.kcc.kakao.returnUrl=http://localhost:80/snsLogin/kakaoOauth.do
|
||||||
Globals.homepage.siteNm=\uc804\uc790\uc870\uc815\uc2dc\uc2a4\ud15c
|
|
||||||
|
#\uc0ac\uc774\ud2b8 \uc544\uc774\ub514 \uc81c\uac70\ub85c JSP\uc5d0\uc11c siteId/siteNm \ubcf4\uc5ec\uc8fc\uae30 \uc704\ud574
|
||||||
#pdf-url
|
Globals.homepage.siteId=kccadr
|
||||||
##=====================================1.local(http://192.168.0.34:7080)=============================================================
|
Globals.homepage.siteNm=\uc804\uc790\uc870\uc815\uc2dc\uc2a4\ud15c
|
||||||
##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
|
#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.
|
||||||
##\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.serverUrl=192.168.0.200
|
||||||
#Globals.pdf.apiUrl=http://192.168.0.34:7080
|
|
||||||
|
|
||||||
|
##\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.
|
||||||
##pdf \uc11c\ubc84\uc758 \ub124\ud2b8\uc6cc\ud06c \uacbd\ub85c
|
#Globals.pdf.apiUrl=http://192.168.0.34:7080
|
||||||
##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/
|
|
||||||
|
##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.
|
||||||
##tomcat upload \uacbd\ub85c
|
#Globals.pdf.filepath.out=file:/z:/out/
|
||||||
##\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:/
|
|
||||||
|
##tomcat upload \uacbd\ub85c
|
||||||
##\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
|
##\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.out=y:/out/
|
#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
|
||||||
##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.makepath.out=y:/out/
|
||||||
#Globals.pdf.webpath=/pdf/out/
|
|
||||||
|
|
||||||
##=====================================2.\uac1c\ubc1c\uc11c\ubc84(http://219.240.88.15:8091)=============================================================
|
##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
|
||||||
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
|
#Globals.pdf.webpath=/pdf/out/
|
||||||
Globals.pdf.serverUrl=192.168.0.200
|
|
||||||
Globals.pdf.apiUrl=http://219.240.88.15:8091
|
##=====================================2.\uac1c\ubc1c\uc11c\ubc84(http://219.240.88.15:8091)=============================================================
|
||||||
Globals.pdf.filepath.out=file:/z:/out/
|
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
|
||||||
Globals.pdf.makepath=/usr/local/tomcat/file/sht/
|
Globals.pdf.serverUrl=192.168.0.200
|
||||||
Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
|
Globals.pdf.apiUrl=http://219.240.88.15:8091
|
||||||
Globals.pdf.webpath=/pdf/out/
|
Globals.pdf.filepath.out=file:/z:/out/
|
||||||
|
Globals.pdf.makepath=/usr/local/tomcat/file/sht/
|
||||||
##=====================================3.\uc2e4\uc11c\ubc84(192.168.39.143, 192.168.39.144)=============================================================
|
Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
|
||||||
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
|
Globals.pdf.webpath=/pdf/out/
|
||||||
#Globals.pdf.serverUrl=192.168.39.147
|
|
||||||
#Globals.pdf.apiUrl=http://192.168.39.143:8080
|
##=====================================3.\uc2e4\uc11c\ubc84(192.168.39.143, 192.168.39.144)=============================================================
|
||||||
#Globals.pdf.filepath.out=file:/z:/out/
|
## \uc0c1\uc138 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \uc0c1\ub2e8\uc5d0\uc11c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4.
|
||||||
#Globals.pdf.makepath=/usr/local/tomcat/file/sht/
|
#Globals.pdf.serverUrl=192.168.39.147
|
||||||
#Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
|
#Globals.pdf.apiUrl=http://192.168.39.143:8080
|
||||||
#Globals.pdf.webpath=/pdf/out/
|
#Globals.pdf.filepath.out=file:/z:/out/
|
||||||
|
#Globals.pdf.makepath=/usr/local/tomcat/file/sht/
|
||||||
#prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12
|
#Globals.pdf.makepath.out=/usr/local/tomcat/file/sht/out/
|
||||||
#\ub85c\uceec
|
#Globals.pdf.webpath=/pdf/out/
|
||||||
#Globals.prod.islocal=local
|
|
||||||
#\uc6b4\uc601 \uac1c\ubc1c
|
#prod \uac1c\ubc1c, \uc2e4\uc11c\ubc84 \uad6c\ubd84\uac12
|
||||||
#Globals.prod.islocal=dev
|
#\ub85c\uceec
|
||||||
#\uc6b4\uc601
|
#Globals.prod.islocal=local
|
||||||
Globals.prod.islocal=real
|
#\uc6b4\uc601 \uac1c\ubc1c
|
||||||
|
#Globals.prod.islocal=dev
|
||||||
|
#\uc6b4\uc601
|
||||||
#\ub300\uc6a9\ub7c9 innorix license
|
Globals.prod.islocal=real
|
||||||
Globals.Innorix.License=svr
|
|
||||||
Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/
|
|
||||||
|
#\ub300\uc6a9\ub7c9 innorix license
|
||||||
#\uad50\uc721 \uc54c\ub9bc \uba54\uc77c \ud15c\ud50c\ub9bf
|
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
|
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
|
# 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)
|
# \uc6b4\uc601\uc11c\ubc84 \ud0c0\uc785(WINDOWS, UNIX)
|
||||||
Globals.OsType = WINDOWS
|
Globals.OsType = WINDOWS
|
||||||
|
|
||||||
|
|||||||
@ -1,32 +1,37 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<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"
|
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
|
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">
|
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"
|
<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"
|
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
|
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">
|
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)
|
initial : globals.properties 연계 Url, UserName, Password 값 로드 여부(설정값 : true, false)
|
||||||
crypto : 계정 암호화 여부(설정값 : true, false)
|
crypto : 계정 암호화 여부(설정값 : true, false)
|
||||||
algorithm : 계정 암호화 알고리즘
|
algorithm : 계정 암호화 알고리즘
|
||||||
algorithmKey : 계정 암호화키 키
|
algorithmKey : 계정 암호화키 키
|
||||||
cryptoBlockSize : 계정 암호화키 블록사이즈
|
cryptoBlockSize : 계정 암호화키 블록사이즈
|
||||||
cryptoPropertyLocation : 설정파일 암복호화 경로 (선택) 기본값은 'classpath:/egovframework/egovProps/globals.properties'
|
cryptoPropertyLocation : 설정파일 암복호화 경로 (선택) 기본값은 'classpath:/egovframework/egovProps/globals.properties'
|
||||||
-->
|
-->
|
||||||
<egov-crypto:config id="egovCryptoConfig"
|
<egov-crypto:config id="egovCryptoConfig"
|
||||||
initial="false"
|
initial="true"
|
||||||
crypto="false"
|
crypto="true"
|
||||||
algorithm="SHA-256"
|
algorithm="AES/CBC/PKCS5Padding"
|
||||||
algorithmKey="egovframe"
|
algorithmKey="0123456789abcdef0123456789abcdef"
|
||||||
algorithmKeyHash="gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ="
|
algorithmKeyHash=""
|
||||||
cryptoBlockSize="1024"
|
cryptoBlockSize="1024"
|
||||||
cryptoPropertyLocation="classpath:/egovframework/egovProps/globals.properties"
|
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>
|
</beans>
|
||||||
@ -75,6 +75,49 @@
|
|||||||
</isNotNull>
|
</isNotNull>
|
||||||
</select>
|
</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">
|
<select id="loginDAO.actionLoginDev" resultMap="login">
|
||||||
/*loginDAO.actionLoginDev*/
|
/*loginDAO.actionLoginDev*/
|
||||||
|
|||||||
@ -567,7 +567,16 @@
|
|||||||
WHERE ESNTL_ID = #uniqId#
|
WHERE ESNTL_ID = #uniqId#
|
||||||
]]>
|
]]>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<update id="userManageDAO.updatePassword_R">
|
||||||
|
<![CDATA[
|
||||||
|
UPDATE LETTNEMPLYRINFO
|
||||||
|
SET
|
||||||
|
PASSWORD = #password#
|
||||||
|
WHERE EMPLYR_ID = #uniqId#
|
||||||
|
]]>
|
||||||
|
</update>
|
||||||
|
|
||||||
<select id="userManageDAO.selectPassword_S" resultClass="userVO">
|
<select id="userManageDAO.selectPassword_S" resultClass="userVO">
|
||||||
/* userManageDAO.selectPassword_S */
|
/* userManageDAO.selectPassword_S */
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
|
|||||||
@ -249,6 +249,7 @@ function userListExcelDownload(){
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<c:out value="${result.fxNum}"/>
|
<c:out value="${result.fxNum}"/>
|
||||||
|
<c:out value="${result.emailAdres}"/>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
|
|||||||
@ -200,16 +200,16 @@
|
|||||||
<div class="cont_wrap">
|
<div class="cont_wrap">
|
||||||
<!--tap 추가-->
|
<!--tap 추가-->
|
||||||
<ul class="tab_wrap">
|
<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"><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 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/cndtnEduPrcsMngList.do" />'">과정관리</button></li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
|
|
||||||
<!-- cont_tit -->
|
<!-- cont_tit -->
|
||||||
<div class="cont_tit">
|
<div class="cont_tit">
|
||||||
<h2>교육확정관리목록</h2>
|
<h2>확정과정관리</h2>
|
||||||
<ul class="cont_nav">
|
<ul class="cont_nav">
|
||||||
<li class="home"><a href="/"><i></i></a></li>
|
<li class="home"><a href="/"><i></i></a></li>
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
@ -212,22 +212,22 @@
|
|||||||
<div class="cont_wrap">
|
<div class="cont_wrap">
|
||||||
<!--tap 추가-->
|
<!--tap 추가-->
|
||||||
<ul class="tab_wrap">
|
<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/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/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/cndtnEduPrcsMngList.do" />'">과정관리</button></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
|
|
||||||
<!-- cont_tit -->
|
<!-- cont_tit -->
|
||||||
<div class="cont_tit">
|
<div class="cont_tit">
|
||||||
<h2>과정신청기간관리목록</h2>
|
<h2>과정신청기간관리</h2>
|
||||||
<ul class="cont_nav">
|
<ul class="cont_nav">
|
||||||
<li class="home"><a href="/"><i></i></a></li>
|
<li class="home"><a href="/"><i></i></a></li>
|
||||||
<li>
|
<li>
|
||||||
<p>조건부기소유예관리</p>
|
<p>조건부기소유예관리</p>
|
||||||
</li>
|
</li>
|
||||||
<li><span class="cur_nav">과정신청기간관리목록</span></li>
|
<li><span class="cur_nav">과정신청기간관리</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<!-- //cont_tit -->
|
<!-- //cont_tit -->
|
||||||
|
|||||||
@ -53,6 +53,7 @@
|
|||||||
listForm.pageIndex.value = pageNo ;
|
listForm.pageIndex.value = pageNo ;
|
||||||
listForm.searchKeyword.value = $('#searchKeyword').val();
|
listForm.searchKeyword.value = $('#searchKeyword').val();
|
||||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do'/>";
|
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngList.do'/>";
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngList.do'/>";
|
||||||
listForm.submit();
|
listForm.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,22 +177,24 @@
|
|||||||
<!--tap 추가-->
|
<!--tap 추가-->
|
||||||
<ul class="tab_wrap">
|
<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/cndtnEduPrcsAplctPrdMngList.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/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>
|
</ul>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
|
|
||||||
<!-- cont_tit -->
|
<!-- cont_tit -->
|
||||||
<div class="cont_tit">
|
<div class="cont_tit">
|
||||||
<h2>과정관리목록</h2>
|
<h2>과정관리</h2>
|
||||||
<ul class="cont_nav">
|
<ul class="cont_nav">
|
||||||
<li class="home"><a href="/"><i></i></a></li>
|
<li class="home"><a href="/"><i></i></a></li>
|
||||||
<li>
|
<li>
|
||||||
<p>조건부기소유예관리</p>
|
<p>조건부기소유예관리</p>
|
||||||
</li>
|
</li>
|
||||||
<li><span class="cur_nav">과정관리목록</span></li>
|
<li><span class="cur_nav">과정관리</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<!-- //cont_tit -->
|
<!-- //cont_tit -->
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user