diff --git a/src/main/java/kcc/com/cmm/web/EgovFileDownloadController.java b/src/main/java/kcc/com/cmm/web/EgovFileDownloadController.java index 42ec955a..25458dfb 100644 --- a/src/main/java/kcc/com/cmm/web/EgovFileDownloadController.java +++ b/src/main/java/kcc/com/cmm/web/EgovFileDownloadController.java @@ -56,9 +56,6 @@ public class EgovFileDownloadController { @Resource(name = "EgovFileMngService") private EgovFileMngService fileService; - @Value("#{globalSettings['Globals.pdf.makepath.out']}") - private String pdfMakepathOut; //c:/usr/local/tomcat/file/sht/out - private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileDownloadController.class); /** @@ -231,7 +228,7 @@ public class EgovFileDownloadController { String s_path = (String) commandMap.get("path"); String s_file = (String) commandMap.get("file"); - File uFile = new File(pdfMakepathOut + "/" + s_path, s_file); + File uFile = new File("/usr/local/tomcat/file/sht/out/" + s_path, s_file); String mimetype = "application/x-msdownload"; diff --git a/src/main/java/kcc/kccadr/accdnt/ars/web/AdjstReqStatusPdfController.java b/src/main/java/kcc/kccadr/accdnt/ars/web/AdjstReqStatusPdfController.java deleted file mode 100644 index 0015b151..00000000 --- a/src/main/java/kcc/kccadr/accdnt/ars/web/AdjstReqStatusPdfController.java +++ /dev/null @@ -1,1039 +0,0 @@ -package kcc.kccadr.accdnt.ars.web; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; - -import org.apache.commons.io.FileUtils; -import org.apache.pdfbox.pdmodel.PDDocument; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.servlet.ModelAndView; - -import com.epapyrus.common.util.UriUtils; -import com.epapyrus.pdf.pg.client.PdfGatewayAgent; -import com.epapyrus.pdf.pg.entity.BookMark; -import com.epapyrus.pdf.pg.entity.BookMarkPage; -import com.epapyrus.pdf.pg.entity.Merge; -import com.epapyrus.pdf.pg.entity.PdfConversion; -import com.epapyrus.pdf.pg.entity.TextWatermark; - -import kcc.com.cmm.service.EgovFileMngService; -import kcc.com.cmm.service.FileVO; -import kcc.kccadr.accdnt.ai.service.AdjstIncidentService; -import kcc.kccadr.accdnt.ai.service.AdjstIncidentVO; -import kcc.kccadr.accdnt.ars.service.AdjstReqStatusService; -import kcc.kccadr.adjst.service.AdjstReqService; -import kcc.kccadr.adjst.service.AdjstReqVO; -import kcc.let.utl.fcc.service.EgovCryptoUtil; - -/** - * 대국민(사용자) - * 신청 관한 pdf controller 클래스를 정의한다. - * @author 김봉호 - * @since 2021.08.23 - * @version 1.0 - * @see - * - *
- * << 개정이력(Modification Information) >>
- *
- *   수정일      수정자           수정내용
- *  -------    --------    ---------------------------
- *   2021.08.23  김봉호          최초 생성
- *
- * 
- */ -@Controller -public class AdjstReqStatusPdfController { - - private static final Logger LOGGER = LoggerFactory.getLogger(AdjstReqStatusPdfController.class); - - @Resource(name="adjstReqStatusService") - private AdjstReqStatusService adjstReqStatusService; - - @Resource(name="adjstIncidentService") - private AdjstIncidentService adjstIncidentService; - - //암복호화 유틸 - @Resource(name = "egovCryptoUtil") - EgovCryptoUtil egovCryptoUtil; - - //암복호화 유틸 - @Resource(name = "EgovFileMngService") - EgovFileMngService egovFileMngService; - - //adr_mgr_master - @Resource(name="AdjstReqService") - private AdjstReqService adjstReqService; - - - //pdf 변환 서버 관련 설정 - @Value("#{globalSettings['Globals.pdf.serverUrl']}") - private String pdfServerUrl; //192.168.0.200 - - @Value("#{globalSettings['Globals.pdf.apiUrl']}") - private String pdfApiUrl; //http://192.168.0.34:7080 - - @Value("#{globalSettings['Globals.pdf.filepath.out']}") - private String pdfFilepathOut; //file:/c:/usr/local/tomcat/file/sht/out - - @Value("#{globalSettings['Globals.pdf.makepath']}") - private String pdfMakepath; //c:/usr/local/tomcat/file/sht - - @Value("#{globalSettings['Globals.pdf.makepath.out']}") - private String pdfMakepathOut; //c:/usr/local/tomcat/file/sht/out - - @Value("#{globalSettings['Globals.pdf.webpath']}") - private String pdfWebpath; // /pdf/out/ - - - - /** - * 신청일변경 상세 Tab 신청일변경 화면 - 선택다운로드 1단계 - * 1.대상폴더 생성 - * 2.변환 요청 - * 교육신청서 요청 - * 3.결과 통보 - */ - @RequestMapping(value="/web/kccadr/accdnt/ars/tab/adjstReqStatusTabStatusDownloadStep1Ajax.do") - public ModelAndView adjstReqStatusTabStatusDownloadStep1Ajax( - HttpServletRequest request - , AdjstIncidentVO adjstIncidentVO - ) throws Exception { - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - - //System.out.println("adjstReqStatusTabStatusStep1Ajax"); - - try { - - //step.1.폴더 생성======================================================================= - //String path = "D:\\Eclipse\\Java\\새폴더"; //폴더 경로 - - String s_time_dir = request.getParameter("time_dir"); - - //download 폴더 - { - String path_pdf = pdfMakepathOut + adjstIncidentVO.getAdrSeq() + "/download/"+s_time_dir; //pdf 변환기가 생성하는 파일이 들어가는 폴더경로 - String path_pdf_4d = pdfMakepathOut + adjstIncidentVO.getAdrSeq() + "/download"; //pdf 변환기가 생성하는 파일이 들어가는 폴더경로 - File Folder_pdf = new File(path_pdf); - File Folder_pdf_4d = new File(path_pdf_4d); - - // 해당 디렉토리가 없을경우 디렉토리를 생성합니다. - if (!Folder_pdf.exists()) { - try{ - this.deleteFile(path_pdf_4d, s_time_dir); - - } - catch(Exception e){ - System.out.println("Exception Occured!!!"); - } - - try{ - - Folder_pdf_4d.mkdir(); //폴더 생성합니다. - Folder_pdf.mkdir(); //폴더 생성합니다. - System.out.println("D 폴더가 생성되었습니다."); - //System.out.println(path_pdf); - } - catch(Exception e){ - System.out.println("Exception Occured!!!"); - } - - }else { - System.out.println("D 이미 폴더가 생성되어 있습니다."); - this.deleteFile(path_pdf_4d, s_time_dir); - //System.out.println(path_pdf); - Folder_pdf.mkdir(); //폴더 생성합니다. - } - } - - //=============================================================================== - - //bookmark file name---------------------------------- - AdjstReqVO adjstReqVO = new AdjstReqVO(); - adjstReqVO.setAdrSeq(adjstIncidentVO.getAdrSeq()); - adjstReqVO = adjstReqService.selectAdjsMgrMaster(adjstReqVO); - - String s_bookmark_name = adjstReqVO.getAdrNo()+".pdf"; - s_bookmark_name = "bookmark.pdf"; - String s_bookmark_name_2 = "100.pdf"; - //bookmark file name - - - ////2.파일 요청했으면 생성 - //2-1파일정보 가져오기 - //2-2변환하기 - //this.conversionFromWWW(adjstIncidentVO.getAdrSeq()); - - this.conversionFromWWW( - adjstIncidentVO.getAdrSeq() - , adjstIncidentVO.getAdrSeq()+"/download/"+s_time_dir+"/" - , s_bookmark_name - ); - - this.conversionFromWWW( - adjstIncidentVO.getAdrSeq() - , adjstIncidentVO.getAdrSeq()+"/download/"+s_time_dir+"/" - , s_bookmark_name_2 - ); - - modelAndView.addObject("result", "SUCCESS"); - }catch(Exception ex) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "생성요청이 실패했습니다.-step1"); - System.out.println("Exception Occured!!!"); - - } - - - return modelAndView; - } - - - /** - * 신청일변경 상세 Tab 신청일변경 화면 - 다운로드 1단계 - 체커 - * 1.대상생성 확인 * - * 2.단권화 진행 - * 3.3초 delay 발생 - * 4.결과 통보 - */ - @RequestMapping(value="/web/kccadr/accdnt/ars/tab/adjstReqStatusTabStatusDownloadStep1CheckerAjax.do") - public ModelAndView adjstReqStatusTabStatusDownloadStep1CheckerAjax( - HttpServletRequest request - , AdjstIncidentVO adjstIncidentVO - ) throws Exception { - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - System.out.println("adjstReqStatusTabStatusDownloadStep1CheckerAjax"); - - try{ - - //bookmark file name---------------------------------- - AdjstReqVO adjstReqVO = new AdjstReqVO(); - adjstReqVO.setAdrSeq(adjstIncidentVO.getAdrSeq()); - adjstReqVO = adjstReqService.selectAdjsMgrMaster(adjstReqVO); - - String s_bookmark_name = adjstReqVO.getAdrNo()+".pdf"; - s_bookmark_name = "bookmark.pdf"; - //bookmark file name - - - String s_time_dir = request.getParameter("time_dir"); - - //step.1.대상생성 확인======================================================================= - //String path = "D:\\Eclipse\\Java\\새폴더"; //폴더 경로 - String path = pdfMakepathOut + adjstIncidentVO.getAdrSeq()+"/download/"+s_time_dir+"/"; //pdf변환 폴더 경로 - File[] files = new File(path).listFiles(); - - //System.out.println(path); - //System.out.println(s_bookmark_name); - - int i_pdf_cnt = 0; - - for (File f : files){ - if (f.getName().toUpperCase().indexOf(s_bookmark_name.toUpperCase())>-1) { - i_pdf_cnt++; - } - } - - if (i_pdf_cnt!=1) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "생성요청이 실패했습니다.-step1-check"); - - return modelAndView; - } - - //=============================================================================== - - - modelAndView.addObject("result", "SUCCESS"); - modelAndView.addObject("path", adjstIncidentVO.getAdrSeq()+"/download/"+s_time_dir); - modelAndView.addObject("file", s_bookmark_name); - - - - }catch(Exception ex) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "생성요청이 실패했습니다.-step1"); - System.out.println("Exception Occured!!!"); - - } - - return modelAndView; - } - - /** - * 신청일변경 상세 Tab 신청일변경 화면 - 문서보기 1단계 - * 1.대상폴더 생성 - * 2.변환 요청 - * 교육신청서 요청 - * 첨부파일 변환 요청 - * 3.결과 통보 - */ - @RequestMapping(value="/web/kccadr/accdnt/ars/tab/adjstReqStatusTabStatusStep1Ajax.do") - public ModelAndView adjstReqStatusTabStatusStep1Ajax( - HttpServletRequest request - , AdjstIncidentVO adjstIncidentVO - ) throws Exception { - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - - //System.out.println("adjstReqStatusTabStatusStep1Ajax"); - - try { - - //step.1.폴더 생성======================================================================= - //String path = "D:\\Eclipse\\Java\\새폴더"; //폴더 경로 - - String s_time_dir = request.getParameter("time_dir"); - - //upload 폴더 - { - String path_upload = pdfMakepathOut + adjstIncidentVO.getAdrSeq() + "/upload"; //사용자가 업로드한 파일이 복사되는 폴더경로 - File Folder_upload = new File(path_upload); - // 해당 디렉토리가 없을경우 디렉토리를 생성합니다. - if (!Folder_upload.exists()) { - try{ - Folder_upload.mkdir(); //폴더 생성합니다. - System.out.println("U 폴더가 생성되었습니다."); - //System.out.println(Folder_upload); - } - catch(Exception e){ - System.out.println("Exception Occured!!!"); - } - }else { - System.out.println("U 이미 폴더가 생성되어 있습니다."); - //System.out.println(path_upload); - - File[] files = new File(path_upload).listFiles(); - for (File f : files){ - //System.out.println(f.getName()); - f.delete(); - //System.out.println(f.delete()); - - } - - } - } - - - //pdf 폴더 - { - String path_pdf = pdfMakepathOut + adjstIncidentVO.getAdrSeq() + "/pdf/"+s_time_dir; //pdf 변환기가 생성하는 파일이 들어가는 폴더경로 - String path_pdf_4d = pdfMakepathOut + adjstIncidentVO.getAdrSeq() + "/pdf"; //pdf 변환기가 생성하는 파일이 들어가는 폴더경로 - File Folder_pdf = new File(path_pdf); - File Folder_pdf_4d = new File(path_pdf_4d); - - // 해당 디렉토리가 없을경우 디렉토리를 생성합니다. - if (!Folder_pdf.exists()) { - try{ - this.deleteFile(path_pdf_4d, s_time_dir); - - } - catch(Exception e){ - System.out.println("Exception Occured!!!"); - } - - try{ - Folder_pdf_4d.mkdir(); //폴더 생성합니다. - Folder_pdf.mkdir(); //폴더 생성합니다. - System.out.println("P 폴더가 생성되었습니다."); - //System.out.println(Folder_pdf); - } - catch(Exception e){ - System.out.println("Exception Occured!!!"); - } - }else { - System.out.println("P 이미 폴더가 생성되어 있습니다."); - this.deleteFile(path_pdf_4d, s_time_dir); - //System.out.println(Folder_pdf); - Folder_pdf.mkdir(); //폴더 생성합니다. - } - } - - //=============================================================================== - - - String[] a_chk = request.getParameterValues("chk"); - - ////2.파일 요청했으면 생성 - //2-1파일정보 가져오기 - //2-2변환하기 - //this.conversionFromWWW(adjstIncidentVO.getAdrSeq()); - - int j=0; - - for (int i=0;i out/adrseq - FileVO fileVO = new FileVO(); - fileVO.setAtchFileId(a_vals[0]); - fileVO.setFileSn(a_vals[1]); - - FileVO nfile = egovFileMngService.selectFileInf(fileVO); - - - //step1.copy and rename - String s_src_file_name = nfile.streFileNm; - String s_target_file_name = nfile.orignlFileNm; - String s_save_file_name = s_target_file_name.substring(0, s_target_file_name.lastIndexOf(".")); - - //System.out.println("s_src_file_name"); - //System.out.println(s_src_file_name); - //System.out.println(s_target_file_name); - //System.out.println(s_target_file_name.lastIndexOf(".")); - //System.out.println(s_target_file_name.substring(0, s_target_file_name.lastIndexOf("."))); - //System.out.println("s_target_file_name"); - - File srcFile = new File(pdfMakepath + s_src_file_name); - File destFile = new File(pdfMakepathOut + adjstIncidentVO.getAdrSeq() + "/upload/" + s_target_file_name); - FileUtils.copyFile(srcFile, destFile); - - - j++; - - this.conversionFromUFile( - adjstIncidentVO.getAdrSeq()+"/upload/" //src path - , s_target_file_name //src file name - - , adjstIncidentVO.getAdrSeq()+"/pdf/"+s_time_dir+"/" //target path - //, Integer.toString(j)+".pdf" - , Integer.toString(j)+"_"+s_save_file_name+".pdf" - ); //target file - } - - } - - modelAndView.addObject("result", "SUCCESS"); - }catch(Exception ex) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "생성요청이 실패했습니다.-step1"); - System.out.println("Exception Occured!!!"); - - } - - - - return modelAndView; - } - - /** - * 신청일변경 상세 Tab 신청일변경 화면 - 문서보기 1단계 - 체커 - * 1.대상생성 확인 * - * 2.단권화 진행 - * 3.3초 delay 발생 - * 4.결과 통보 - */ - @RequestMapping(value="/web/kccadr/accdnt/ars/tab/adjstReqStatusTabStatusStep1CheckerAjax.do") - public ModelAndView adjstReqStatusTabStatusStep1CheckerAjax( - HttpServletRequest request - , AdjstIncidentVO adjstIncidentVO - ) throws Exception { - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - System.out.println("adjstReqStatusTabStatusStep1CheckerAjax"); - - try{ - String s_time_dir = request.getParameter("time_dir"); - - //step.1.대상생성 확인======================================================================= - //String path = "D:\\Eclipse\\Java\\새폴더"; //폴더 경로 - String path = pdfMakepathOut + adjstIncidentVO.getAdrSeq()+"/pdf/"+s_time_dir + "/"; //pdf변환 폴더 경로 - File[] files = new File(path).listFiles(); - - //System.out.println(path); - - int i_pdf_cnt = 0; - - for (File f : files){ - if (f.getName().toUpperCase().indexOf(".PDF")>-1 && f.getName().toUpperCase().indexOf("PDF0CHANGE.PDF")<0) { - i_pdf_cnt++; - } - } - - String[] a_chk = request.getParameterValues("chk"); - - - if (i_pdf_cnt!=a_chk.length) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "생성요청이 실패했습니다.-step1-check"); - - return modelAndView; - } - - //=============================================================================== - - - modelAndView.addObject("result", "SUCCESS"); - - }catch(Exception ex) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "생성요청이 실패했습니다.-step1"); - System.out.println("Exception Occured!!!"); - - } - - return modelAndView; - } - - /** - * 신청일변경 상세 Tab 신청일변경 화면 - 문서보기 2단계 - * 1.대상생성 확인 * - * 2.단권화 진행 - * 3.3초 delay 발생 - * 4.결과 통보 - */ - @RequestMapping(value="/web/kccadr/accdnt/ars/tab/adjstReqStatusTabStatusStep2Ajax.do") - public ModelAndView adjstReqStatusTabStatusStep2Ajax( - HttpServletRequest request - , AdjstIncidentVO adjstIncidentVO - ) throws Exception { - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - System.out.println("adjstReqStatusTabStatusStep2Ajax"); - - try { - - List l_file_nm = new ArrayList(); - - String s_time_dir = request.getParameter("time_dir"); - - //step.1.대상생성 확인======================================================================= - //String path = "D:\\Eclipse\\Java\\새폴더"; //폴더 경로 - String path = pdfMakepathOut + adjstIncidentVO.getAdrSeq()+"/pdf/"+s_time_dir+"/"; //pdf 폴더 경로 - File[] files = new File(path).listFiles(); - - int i_pdf_cnt = 0; - for (File f : files){ - if (f.getName().toUpperCase().indexOf(".PDF")>-1 && f.getName().toUpperCase().indexOf("PDF0CHANGE.PDF")<0) { - i_pdf_cnt++; - //String s_save_file_name = f.getName().substring(0, f.getName().lastIndexOf(".")); - l_file_nm.add(f.getName().substring(0, f.getName().lastIndexOf("."))); - } - } - - String[] a_chk = request.getParameterValues("chk"); - - - - if (i_pdf_cnt!=a_chk.length) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "생성요청이 실패했습니다.-step2"); - - return modelAndView; - } - - //=============================================================================== - - //3.단권화 진행 - if (i_pdf_cnt>1) { - this.mergeFromUFileNew( - i_pdf_cnt - , l_file_nm - , adjstIncidentVO.getAdrSeq()+"/pdf/"+s_time_dir+"/" - , "PDF0CHANGE.pdf" - ); - - }else { //1권이면 merge 가 아니고 바로 만들기를 한다. - this.conversionFromUFile( - adjstIncidentVO.getAdrSeq()+"/pdf/"+s_time_dir+"/" //src path - , "1_교육신청서.pdf" //src file name - - , adjstIncidentVO.getAdrSeq()+"/pdf/"+s_time_dir+"/" //target path - , "PDF0CHANGE.pdf"); - } - - - - modelAndView.addObject("result", "SUCCESS"); - - }catch(Exception ex) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "단권화요청에 실패했습니다.-step2"); - System.out.println("Exception Occured!!!"); - } - - return modelAndView; - } - - - /** - * 신청일변경 상세 Tab 신청일변경 화면 - 문서보기 2단계 - 체커 - * 1.대상생성 확인 - * 2.페이지 측정 - * 3.북마크 진행 - * 4.3초 delay 발생 - * 5.결과 통보 - */ - @RequestMapping(value="/web/kccadr/accdnt/ars/tab/adjstReqStatusTabStatusStep2CheckerAjax.do") - public ModelAndView adjstReqStatusTabStatusStep2CheckerAjax( - HttpServletRequest request - , AdjstIncidentVO adjstIncidentVO - ) throws Exception { - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - System.out.println("adjstReqStatusTabStatusStep2CheckerAjax"); - - try { - String s_time_dir = request.getParameter("time_dir"); - - //step.1.대상생성 확인======================================================================= - //String path = "D:\\Eclipse\\Java\\새폴더"; //폴더 경로 - String path = pdfMakepathOut + adjstIncidentVO.getAdrSeq()+"/pdf/"+s_time_dir+"/"; //pdf 폴더 경로 - File[] files = new File(path).listFiles(); - - int i_0_pdf_cnt = 0; - - for (File f : files){ - if (f.getName().toUpperCase().indexOf("PDF0CHANGE.PDF")>-1) { - i_0_pdf_cnt++; - } - - } - - - if (i_0_pdf_cnt<=0) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "생성요청이 실패했습니다.-step2-check"); - - return modelAndView; - } - - //=============================================================================== - - - modelAndView.addObject("result", "SUCCESS"); - - }catch(Exception ex) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "생성요청이 실패했습니다.-step1"); - System.out.println("Exception Occured!!!"); - - } - - return modelAndView; - } - - /** - * 신청일변경 상세 Tab 신청일변경 화면 - 문서보기 3단계 - * 1.대상생성 확인 - * 2.페이지 측정 - * 3.북마크 진행 - * 4.3초 delay 발생 - * 5.결과 통보 - */ - @RequestMapping(value="/web/kccadr/accdnt/ars/tab/adjstReqStatusTabStatusStep3Ajax.do") - public ModelAndView adjstReqStatusTabStatusStep3Ajax( - HttpServletRequest request - , AdjstIncidentVO adjstIncidentVO - ) throws Exception { - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - System.out.println("adjstReqStatusTabStatusStep3Ajax"); - - try{ - - //bookmark file name---------------------------------- - AdjstReqVO adjstReqVO = new AdjstReqVO(); - adjstReqVO.setAdrSeq(adjstIncidentVO.getAdrSeq()); - adjstReqVO = adjstReqService.selectAdjsMgrMaster(adjstReqVO); - - String s_bookmark_name = adjstReqVO.getAdrNo()+".pdf"; - s_bookmark_name = "bookmark.pdf"; - //bookmark file name - - - List l_file_nm = new ArrayList(); - - String s_time_dir = request.getParameter("time_dir"); - - //step.1.pdf 북마크 대상 파일 수 확인======================================================================= - //String path = "D:\\Eclipse\\Java\\새폴더"; //폴더 경로 - String path = pdfMakepathOut + adjstIncidentVO.getAdrSeq()+"/pdf/"+s_time_dir+"/"; //pdf 폴더 경로 - File[] files = new File(path).listFiles(); - - - int i_pdf_cnt = 0; - //int i_0_pdf_cnt = 0; - - for (File f : files){ - if (f.getName().toUpperCase().indexOf(".PDF")>-1 && f.getName().toUpperCase().indexOf("PDF0CHANGE.PDF")<0) { - i_pdf_cnt++; - l_file_nm.add(f.getName().substring(0, f.getName().lastIndexOf("."))); - //a - } - } - - - //=============================================================================== - - //4.북마크 - 페이지 수, 인텍스명 찾기 - String[] a_bookPage = new String[i_pdf_cnt];//페이지수 찾기 - String[] a_title = new String[i_pdf_cnt];//index 제목 찾기 - - for (int i=0;i-1) { - PDDocument doc = PDDocument.load(new File(f.getAbsolutePath())); - int count = doc.getNumberOfPages(); - //String s_number = f.getName().substring(0, f.getName().length()-4); - a_bookPage[i] = Integer.toString(count); - a_title[i] = l_file_nm.get(i).replaceAll(Integer.toString(i+1)+"_", ""); - //System.out.println("a_title[i]"); - //System.out.println(a_title[i]); - //System.out.println(a_title[i].length()); - } - } - } - - /* - for (File f : files){ - if (f.getName().toUpperCase().indexOf(".PDF")>-1 && f.getName().toUpperCase().indexOf("PDF0CHANGE.PDF")<0) { - //ㅁ - for (int j=0;j-1) { - i_0_pdf_cnt++; - } - } - - - if (i_0_pdf_cnt<=0) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "생성요청이 실패했습니다.-step3-check"); - - return modelAndView; - } - - //=============================================================================== - - - modelAndView.addObject("result", "SUCCESS"); - modelAndView.addObject("webFile", adjstIncidentVO.getAdrSeq()); - - }catch(Exception ex) { - modelAndView.addObject("result", "FAIL"); - modelAndView.addObject("message", "생성요청이 실패했습니다.-step1"); - System.out.println("Exception Occured!!!"); - - } - - - return modelAndView; - } - - /////////////////////////////////////////////////////////////////////////// - // - // - // private function - // - - private void conversionFromWWW( - String p_param1 - , String p_save_path //pdf save path - , String p_save_file_name //pdf save file name - ) throws Exception{ - - //pdf 변환 서버 관련 설정 - /* - @Value("#{globalSettings['Globals.pdf.serverUrl']}") - private String pdfServerUrl; //192.168.0.200 - - @Value("#{globalSettings['Globals.pdf.apiUrl']}") - private String pdfApiUrl; //http://192.168.0.34:7080 - - @Value("#{globalSettings['Globals.pdf.filepath.out']}") - private String pdfFilepathOut; //file:/c:/usr/local/tomcat/file/sht/out - */ - System.out.println(pdfFilepathOut + p_save_path + p_save_file_name); - String s_output = UriUtils.encodeUri(pdfFilepathOut + p_save_path + p_save_file_name); - PdfConversion conversion = PdfConversion.create(); - conversion.input(UriUtils.encodeUri(pdfApiUrl + "/popup/main/adjstIncidentDetailPdf.do?adrSeq="+p_param1)).htmlUrlResource(true); - - PdfGatewayAgent.of(pdfServerUrl, 8888) - .conversion(conversion) - .name("convertions-addr-html") - .distribute(s_output) - .start(); - - } - - //파일 pdf 로 변환 - //확장자 적용하여 이름변경 필요함 - private void conversionFromUFile( - - String p_src_path - , String p_src_file - - , String p_target_path - , String p_target_file - - ) throws Exception{ - - String s_in = UriUtils.encodeUri(pdfFilepathOut + p_src_path + p_src_file); - String s_output = UriUtils.encodeUri(pdfFilepathOut + p_target_path + p_target_file); - - System.out.println(pdfFilepathOut + p_src_path + p_src_file); - System.out.println(pdfFilepathOut + p_target_path + p_target_file); - - //PdfConversion conversion = PdfConversion.create(); - //conversion.input(UriUtils.encodeUri(pdfApiUrl + "/popup/main/adjstIncidentDetailPdf.do?adrSeq="+p_param1)).htmlUrlResource(true); - // - - - PdfGatewayAgent.of(pdfServerUrl, 8888) - //.conversion(conversion) - .conversion(s_in) - .name("convertions-addr-html") - .distribute(s_output) - .start(); - - } - - - private void mergeFromUFileNew( - //File[] p_files - int p_file_cnt - , List p_l_file_nm - , String p_path - , String p_merge_file_name - ) throws Exception{ - - String s_output = UriUtils.encodeUri(pdfFilepathOut + p_path + p_merge_file_name); - - Merge merge = Merge.create(); - //.input(s_in_1) - //.mergeResource(s_in_2, "all") - //; - - for (int i=0;i pages = new ArrayList(); - BookMarkPage indexPage = BookMarkPage.create("INDEX", 0); - - int i_bookmark_count = 0; - - for (int i=0;i mberManageCnfVO = mberManageService.selectMberCnf(mberConfigVO); - for (int i = 0; i < mberManageCnfVO.size(); i++) { - if (mberManageCnfVO.get(i).getIsSns().equals("Y")) { - if (mberManageCnfVO.get(i).getUseYn().equals("Y")) { - if (mberManageCnfVO.get(i).getConfigId().equals("snsNaver")) { - String redirectURI = URLEncoder.encode(itnNaverReturnUrl, "UTF-8"); - SecureRandom random = new SecureRandom(); - BigInteger state = new BigInteger(130, random); - String naver_url = "https://nid.naver.com/oauth2.0/authorize?response_type=code"; - naver_url += "&client_id=" + itnNaverClientId; - naver_url += "&redirect_url=" + redirectURI; - naver_url += "&state=" + state; - mberManageCnfVO.get(i).setSiteUrl(naver_url); - mberManageCnfVO.get(i).setSiteIcon("/img/login_naver_icon.png"); - - } else if (mberManageCnfVO.get(i).getConfigId().equals("snsKakao")) { - - String kakao_url = "https://kauth.kakao.com/oauth/authorize?response_type=code"; - kakao_url += "&client_id=" + kakaoRestApiKey; - kakao_url += "&redirect_uri=" + kakaoReturnUrl; - mberManageCnfVO.get(i).setSiteUrl(kakao_url); - mberManageCnfVO.get(i).setSiteIcon("/img/login_kakao_icon.png"); - - } else if (mberManageCnfVO.get(i).getConfigId().equals("snsGoogle")) { - - } - } - } - } model.addAttribute("mberManageCnfVO", mberManageCnfVO); model.addAttribute("beforeUrl", beforeUrl); model.addAttribute("message", message); @@ -385,19 +320,6 @@ public class EgovLoginController { String message = (String) commandMap.get("message"); String test = (String) commandMap.get("test"); - // 실서버 적용시 바꾸기 - String returnSiteUrl = returnSiteUrlGlobal; - String returnSiteCode = returnSiteCodeGlobal; - String idFindUrl = idFindUrl_Global; - String pwFindUrl = pwFindUrl_Global; - String joinUrl = joinUrl_Global; - - model.addAttribute("returnSiteUrl", (URLEncoder.encode(returnSiteUrl))); - model.addAttribute("returnSiteCode", returnSiteCode); - model.addAttribute("idFindUrl", idFindUrl); - model.addAttribute("pwFindUrl", pwFindUrl); - model.addAttribute("joinUrl", joinUrl); - model.addAttribute("beforeUrl", beforeUrl); model.addAttribute("message", message); model.addAttribute("environment", environment); @@ -438,12 +360,6 @@ public class EgovLoginController { String message = (String) commandMap.get("message"); // 실서버 적용시 바꾸기 - String returnSiteUrl = returnSiteUrlGlobal; - String returnSiteCode = returnSiteCodeGlobal; - - model.addAttribute("returnSiteUrl", (URLEncoder.encode(returnSiteUrl))); - model.addAttribute("returnSiteCode", returnSiteCode); - model.addAttribute("beforeUrl", beforeUrl); model.addAttribute("message", message); // initRsa(request); @@ -465,11 +381,6 @@ public class EgovLoginController { SsoLoginVO ssoLoginVO = (SsoLoginVO) session.getAttribute("SSOLoginVO"); - // 실서버 적용시 바꾸기 - /*String returnSiteUrl = "http://219.240.88.15:8091/web/user/login/ssoUsrModifyResult.do";*/ - String returnSiteUrl = returnSiteUrlGlobal; - - ssoLoginVO.setReturnSiteUrl(URLEncoder.encode(returnSiteUrl)); model.addAttribute("ssoLoginVO", ssoLoginVO); @@ -989,802 +900,6 @@ public class EgovLoginController { return "redirect:/web/user/login/login.do"; } } - - /** - * (사용자) 일반(스프링 시큐리티) 로그인을 처리한다(SSO ID/PW를 통한 로그인 처리) - * - * @param vo - 아이디, 비밀번호가 담긴 LoginVO - * @param request - 세션처리를 위한 HttpServletRequest - * @return result - 로그인결과(세션정보) - * @exception Exception - */ - @RequestMapping(value = "/web/user/login/actionSecurityLogin_back.do") - public String selectActionSecurityLoginWeb_back(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletResponse response, HttpServletRequest request, ModelMap model, HttpSession session, - RedirectAttributes redirectAttributes) throws Exception { - - // 로그인 정보 check - if (loginVO.getId() == null || loginVO.getPassword() == null) { - SsoLoginVO SsoLoginSessionChk = (SsoLoginVO) session.getAttribute("SSOLoginVO"); - // SSOLoginVO 세션 체크 - if (SsoLoginSessionChk != null) { - - loginVO.setId(SsoLoginSessionChk.getMembId()); - loginVO.setPassword("1"); - } else { - model.addAttribute("message", "로그인을 다시 해주세요."); - // 로그인 페이지로 이동 - /*return "/web/kccadr/login/SsoLoginUsr";*/ - return "redirect:/web/user/login/ssoLogin.do"; - } - } - - SsoLoginVO ssologinVO = new SsoLoginVO(); - - /*231031.개발서버 selectbox 로그인용 임시 - isDev 삭제 처리*/ - if ((ProfileUtil.isLocal() || ProfileUtil.isTLocal() || ProfileUtil.isDev()) && "Y".equals(loginVO.getIsSelect())) { //비 sso login - - loginVO.setPassword("1"); - loginVO.setStatusAll("N"); - ssologinVO.setMembSeq(loginVO.getId()); //중요 - //loginVO = loginService.actionLogin(loginVO); - - //기존에 개발자 로그인은 selectbox와 mber_seq로 로그인 처리. - //e배움터 연동 후 mber_seq는 key로 사용하기 때문에 mber_id로 로그인 처리 과정 - //loginVO = loginService.actionLoginDev(loginVO); //개발자 아이디 선택 로그인시 - loginVO = loginService.actionLoginMberId(loginVO); - - - //ssologinVO.setMembSeq(loginVO.getId()); //중요 - - //loginVO = loginService.actionLoginDev(loginVO); //개발자 아이디 선택 로그인시 - - //ssologinVO.setMembSeq(loginVO.getId()); //중요 - - ssologinVO.setMembId(loginVO.getEmail()); - - // ================== 이름 암호화로 나오는 문제 해결 ==================== - ssologinVO.setMembName(egovCryptoUtil.decrypt(loginVO.getName())); - - System.out.println("==================임시=================="); - // ==== 계속 암호화에 암호화가 되서 임시로 넣음 - ssologinVO.setMembName(egovCryptoUtil.decrypt(ssologinVO.getMembName())); - ssologinVO.setMembName(egovCryptoUtil.decrypt(ssologinVO.getMembName())); - ssologinVO.setMembName(egovCryptoUtil.decrypt(ssologinVO.getMembName())); - ssologinVO.setMembName(egovCryptoUtil.decrypt(ssologinVO.getMembName())); - ssologinVO.setMembName(egovCryptoUtil.decrypt(ssologinVO.getMembName())); - - - ssologinVO.setSexCode("M"); - ssologinVO.setMembEmail(loginVO.getEmail()); - ssologinVO.setMembCelnum(loginVO.getMembCelnum()); - ssologinVO.setMembBirth(loginVO.getMembBirth()); - - /* - * ssologinVO.setMembSmsRecpYn(loginVO.getMembSmsRecpYn()); - * ssologinVO.setMembEmailRecpYn(loginVO.getMembEmailRecpYn()); - * - * ssologinVO.setDispsettMembDivisCode(loginVO.getDispsettMembDivisCode()); - * ssologinVO.setCorpnum(loginVO.getCorpnum()); - * ssologinVO.setBuisnRegnum(loginVO.getBuisnRegnum()); - * ssologinVO.setCompTitle(loginVO.getCompTitle()); - */ - - session.setAttribute("SSOLoginVO", ssologinVO); - - } else { //sso login - - ssologinVO = (SsoLoginVO) session.getAttribute("SSOLoginVO"); - - String SsoLoginResult = ""; -/* if (ssologinVO == null) { - SSO로그인 및 SSOLoginVO 세선 생성 - SsoLogin ssoLogin = new SsoLogin(); - SsoLoginResult = ssoLogin.SsoLogin(loginVO.getId(), loginVO.getPassword(), request); - } - if ("fail".equals(SsoLoginResult)) { - redirectAttributes.addAttribute("message", "아이디 비밀번호를 확인해 주세요."); - redirectAttributes.addFlashAttribute("message", "아이디 비밀번호를 확인해 주세요."); - return "redirect:/web/user/login/ssoLogin.do"; - }*/ - } - -// ssologinVO = (SsoLoginVO) session.getAttribute("SSOLoginVO"); - - /*if ("".equals(ssologinVO.getDispsettMembDivisCode())) { - 신청 관련코드 받아오면 처리 - System.out.println("조정분류코드 없음"); - - }*/ - - // 기존에 있던 회원이 아니면 DB에 일련번호 저장 - /* UserManageVO userManageVO = new UserManageVO(); - userManageVO.setMberSeq(ssologinVO.getMembSeq()); - userManageVO = userManageService.selectKccadrUser(userManageVO); - if (null == userManageVO) { - UserManageVO tmpUserManageVO = new UserManageVO(); - tmpUserManageVO.setMberSeq(ssologinVO.getMembSeq()); - tmpUserManageVO.setAuthorCode("ROLE_USER_MEMBER"); - tmpUserManageVO.setEmplyrNm(ssologinVO.getMembName()); - tmpUserManageVO = egovCryptoUtil.encryptUserManageVO(tmpUserManageVO); - String result = userManageService.insertUser(tmpUserManageVO); - - userManageVO = userManageService.selectKccadrUser(tmpUserManageVO); - }else { //기존에 있던 회원이라면 이름 최신화 - UserManageVO tmpUserManageVO = new UserManageVO(); - tmpUserManageVO.setMberSeq(ssologinVO.getMembSeq()); - tmpUserManageVO.setEmplyrNm(ssologinVO.getMembName()); - - tmpUserManageVO = egovCryptoUtil.encryptUserManageVO(tmpUserManageVO); - userManageService.updateUserNm(tmpUserManageVO); - }*/ - - /*loginVO.setId(userManageVO.getEmplyrId()); - loginVO.setPassword(userManageVO.getPassword()); -*/ - /* - * ssoLoginVO에서 아이디와, 일련번호, 부가가입여부 체크해서 DB에 일치하는 정보가 있는지 체크하고 일치하면 통과, 없으면 - * ssoLoginVO에서 일련번호, 부가가입여부를 포함한 사용자 정보 DB에 insert - */ - - loginVO.setUserSe("GNR"); - // 로그인 정보 check - - /* - * if(loginVO.getId() == null || loginVO.getPassword() == null){ // 회원가입 시 로그인 - * 처리 LoginVO pLoginVO = (LoginVO)request.getAttribute("pLoginVO"); if (pLoginVO - * == null) { // RSA 키 생성 initRsa(request); return - * "redirect:/web/user/login/login.do"; } else { - * loginVO.setId(pLoginVO.getId()); loginVO.setPassword(pLoginVO.getPassword()); - * loginVO.setBeforeUrl(pLoginVO.getBeforeUrl()); - * loginVO.setMessage(pLoginVO.getMessage()); } } - */ - - // 관리자 유무 체크 - List authorities = (List) loginService.selectAuthorities(loginVO); - Boolean adminFlag = false; - for (EgovMap authority : authorities) { - // admin_auth_code 최하위 관리자 Roll 코드 - if (authority.get("authorCode").equals(propertiesService.getString("admin_auth_code"))) - adminFlag = true; - } - - // 관리자 시 로그인 막기 - if (adminFlag) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - // RSA 키 생성 -// initRsa(request); - return "web/site/login/EgovLoginGnrlUsr"; - } - - // 1. 일반 로그인 처리 - LoginVO resultVO; - // 복호화 - - loginVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 - /* loginVO.setUserSe("GNR"); */ - resultVO = loginService.actionLogin(loginVO); - // 로그인 시 권한조회 - resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority()); - - System.out.println("==1=="); - - String alertMessage = ""; - if (!"admin".equals(loginVO.getId())) { - if (null == resultVO.getId()) { // 로그인 실패 - /* loginService.updatePassMissPlus(loginVO); */ - alertMessage = egovMessageSource.getMessage("fail.common.login"); - // 로그인 실패이면 메인페이지로 이동 - return goUserLoginPage(redirectAttributes, request, model, alertMessage); - } /* - * else{ if(resultVO.getPassMiss() > 5) { alertMessage = - * "패스워드가 5회 이상 틀려 로그인 할수 없습니다. 관리자에게 문의하시기 바랍니다."; return - * goUserLoginPage(redirectAttributes, request, model, alertMessage); }else - * if("A".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = - * "신청하신 아이디가 현제 승인대기 상태입니다."; return goUserLoginPage(redirectAttributes, - * request, model, alertMessage); }else - * if("B".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = - * "아이디가 차단상태가 되어 사용할수 없습니다."; return goUserLoginPage(redirectAttributes, - * request, model, alertMessage); } loginService.updatePassMissReset(loginVO); } - */ - } - - boolean loginPolicyYn = true; - System.out.println("==12=="); - // 접속IP - String userIp = EgovClntInfo.getClntIP(request); - - // resultVO.siteId 의 각 로그인 ip를 조회함 - if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("") && loginPolicyYn) { - // 세션에다 ip 등록 - resultVO.setIp(userIp); - System.out.println("==13=="); - // LoginVO세션에 사용자 정보 넣기 - resultVO.setMembSeq(ssologinVO.getMembSeq()); - resultVO.setMembId(ssologinVO.getMembId()); - resultVO.setMembName(ssologinVO.getMembName()); - resultVO.setMembSeq(ssologinVO.getMembSeq()); - resultVO.setMembCi(ssologinVO.getMembCi()); - resultVO.setMembEmail(ssologinVO.getMembEmail()); - resultVO.setMembCelnum(ssologinVO.getMembCelnum()); - resultVO.setMembBirth(ssologinVO.getMembBirth()); - resultVO.setMembSmsRecpYn(ssologinVO.getMembSmsRecpYn()); - resultVO.setMembEmailRecpYn(ssologinVO.getMembEmailRecpYn()); - resultVO.setSexCode(ssologinVO.getSexCode()); - resultVO.setDispsettMembDivisCode(ssologinVO.getDispsettMembDivisCode()); - resultVO.setCorpnum(ssologinVO.getCorpnum()); - resultVO.setBuisnRegnum(ssologinVO.getBuisnRegnum()); - resultVO.setCompTitle(ssologinVO.getCompTitle()); - - // 2. spring security 연동 - request.getSession().setAttribute("LoginVO", resultVO); // LoginVO세션 생성 - System.out.println("@@@@로그인VO:"+resultVO+"@@@@@@"); - UsernamePasswordAuthenticationFilter springSecurity = new UsernamePasswordAuthenticationFilter(); - ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()); - Map beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class); - if (beans.size() > 0) { - springSecurity = (UsernamePasswordAuthenticationFilter) beans.values().toArray()[0]; - springSecurity.setUsernameParameter("egov_security_username"); - springSecurity.setPasswordParameter("egov_security_password"); - springSecurity.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher(request.getServletContext().getContextPath() + "/egov_security_login", "POST")); - - } else { - throw new IllegalStateException("No AuthenticationProcessingFilter"); - } - System.out.println("==14=1="); - - springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId(), resultVO.getUniqId()), response, null); - - try{ - System.out.println("==14=1="); - System.out.println("EgovUserDetailsHelper.isAuthenticated()"); - System.out.println(EgovUserDetailsHelper.isAuthenticated()); - }catch(Exception ex){ - ex.printStackTrace(); - } - - { // 관리자 로그인 log 저장 - String uniqId = ""; - String ip = ""; - - /* Authenticated */ - LoginLog loginLog = new LoginLog(); - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if (isAuthenticated.booleanValue()) { - LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); - uniqId = user.getUniqId(); - ip = EgovClntInfo.getClntIP(request); - - HttpSession httpSession = request.getSession(true); - { - List siteManageList = new ArrayList(); - SiteManagerVO siteManagerVO = new SiteManagerVO(); - siteManagerVO.setFirstIndex(0); - siteManagerVO.setRecordCountPerPage(100); - siteManageList = egovSiteManagerService.selectSiteManagerList(siteManagerVO); - httpSession.setAttribute("siteManageList", siteManageList); - httpSession.setAttribute("loginId", user.getId()); // 자동완성 공통으로 쓰기위해 - httpSession.setAttribute("esntlId", user.getPassword()); - } - } - - loginLog.setLoginId(uniqId); - loginLog.setLoginIp(ip); - loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O - loginLog.setErrOccrrAt("N"); - loginLog.setErrorCode(""); - // 로그인은 관리자, PC만 됨 - loginLog.setUserAt("U"); // 사용자 - loginLog.setDeviceType("P"); // PC - loginLog.setProgrmFileNm("adminLogin"); - loginLog.setMenuNm("관리자로그인"); - loginLogService.logInsertLoginLog(loginLog); - System.out.println("==15=0="); - } - -// session.setAttribute("beforeSiteUrl", request.getRequestURI()); - System.out.println("session.getAttributesession.getAttributesession.getAttributesession.getAttribute"); - loginVO.setBeforeUrl((String) request.getSession().getAttribute("beforeSiteUrl")); - // 로그인 전 URL 호출 시 - if (loginVO.getBeforeUrl() != null && !("").equals(loginVO.getBeforeUrl())) { - request.getSession().setAttribute("usrBeforeUrl", loginVO.getBeforeUrl()); - // 회원가입 시 메세지 처리 - if (loginVO.getMessage() != null && !("").equals(loginVO.getMessage())) { - request.getSession().setAttribute("registMessage", loginVO.getMessage()); - } - } - System.out.println("==16=0="); - // 개인키 삭제 - // 성공시 웹페이지 분기로 인해 session에 페이지 타입을 넣어준다. - request.getSession().setAttribute("pageType", "web"); - return "blank"; // 성공 시 페이지.. (redirect 불가) - } else { - String message = egovMessageSource.getMessage("fail.common.login"); - redirectAttributes.addAttribute("beforeUrl", loginVO.getBeforeUrl()); - redirectAttributes.addAttribute("message", message); - return "redirect:/web/user/login/login.do"; - } - } - - /** - * (사용자) 일반(스프링 시큐리티) 로그인을 처리한다(SSO Token를 통한 로그인 처리) 통합회원 SSO 로그인 후 찾교시스템 배너 - * 클릭으로 로그인 - * - * @param vo - 아이디, 비밀번호가 담긴 LoginVO - * @param request - 세션처리를 위한 HttpServletRequest - * @return result - 로그인결과(세션정보) - * @exception Exception - */ - /* @RequestMapping(value = "/web/user/login/actionSecurityLoginToken.do") */ - @RequestMapping(value = "/kccadr/ssoLogin.do") - public String selectActionSecurityLoginTokenWeb(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletResponse response, HttpServletRequest request, ModelMap model, HttpSession session, - RedirectAttributes redirectAttributes) throws Exception { - - ScriptEngineManager engine = new ScriptEngineManager(); - - SsoLoginVO ssologinVO = new SsoLoginVO(); - ssologinVO = (SsoLoginVO) session.getAttribute("SSOLoginVO"); - String SsoLoginResult = ""; - if( - request.getParameter("accessToken") == null - || request.getParameter("refreshToken") == null) { - System.out.println("토큰값 없음."); - return "redirect:/"; - } - - if (ssologinVO == null) { - /* SSO로그인 및 SSOLoginVO 세선 생성 */ - SsoLoginVO tmpssologinVO = new SsoLoginVO(); - - tmpssologinVO.setAccess_token(request.getParameter("accessToken")); - tmpssologinVO.setRefresh_token(request.getParameter("refreshToken")); - - SsoLoginResult = SsoTokenLogin.SsoTokenLogin(tmpssologinVO.getAccess_token(), tmpssologinVO.getRefresh_token(), request); - } - if ("fail".equals(SsoLoginResult)) { - model.addAttribute("message", "아이디, 비밀번호를 확인해 주세요."); - return "redirect:/web/user/login/ssoLogin.do"; - } - - ssologinVO = (SsoLoginVO) session.getAttribute("SSOLoginVO"); - - if ("".equals(ssologinVO.getDispsettMembDivisCode())) { - /* 신청 관련코드 받아오면 처리 */ - } - - // 기존에 있던 회원이 아니면 DB에 일련번호 저장 - UserManageVO userManageVO = new UserManageVO(); - userManageVO.setMberSeq(ssologinVO.getMembSeq()); - userManageVO = userManageService.selectKccadrUser(userManageVO); - if (null == userManageVO) { - UserManageVO tmpUserManageVO = new UserManageVO(); - tmpUserManageVO.setMberSeq(ssologinVO.getMembSeq()); - tmpUserManageVO.setAuthorCode("ROLE_USER_MEMBER"); - tmpUserManageVO.setEmplyrNm(ssologinVO.getMembName()); - tmpUserManageVO = egovCryptoUtil.encryptUserManageVO(tmpUserManageVO); - String result = userManageService.insertUser(tmpUserManageVO); - - userManageVO = userManageService.selectKccadrUser(tmpUserManageVO); - }else { //기존에 있던 회원이라면 이름 최신화 - UserManageVO tmpUserManageVO = new UserManageVO(); - tmpUserManageVO.setMberSeq(ssologinVO.getMembSeq()); - tmpUserManageVO.setEmplyrNm(ssologinVO.getMembName()); - tmpUserManageVO = egovCryptoUtil.encryptUserManageVO(tmpUserManageVO); - userManageService.updateUserNm(tmpUserManageVO); - } - - loginVO.setId(userManageVO.getEmplyrId()); - loginVO.setPassword(userManageVO.getPassword()); - - /* - * ssoLoginVO에서 아이디와, 일련번호, 부가가입여부 체크해서 DB에 일치하는 정보가 있는지 체크하고 일치하면 통과, 없으면 - * ssoLoginVO에서 일련번호, 부가가입여부를 포함한 사용자 정보 DB에 insert - */ - - loginVO.setUserSe("GNR"); - // 로그인 정보 check - - /* - * if(loginVO.getId() == null || loginVO.getPassword() == null){ // 회원가입 시 로그인 - * 처리 LoginVO pLoginVO = (LoginVO)request.getAttribute("pLoginVO"); if (pLoginVO - * == null) { // RSA 키 생성 initRsa(request); return - * "redirect:/web/user/login/login.do"; } else { - * loginVO.setId(pLoginVO.getId()); loginVO.setPassword(pLoginVO.getPassword()); - * loginVO.setBeforeUrl(pLoginVO.getBeforeUrl()); - * loginVO.setMessage(pLoginVO.getMessage()); } } - */ - - // 관리자 유무 체크 - List authorities = (List) loginService.selectAuthorities(loginVO); - Boolean adminFlag = false; - for (EgovMap authority : authorities) { - // admin_auth_code 최하위 관리자 Roll 코드 - if (authority.get("authorCode").equals(propertiesService.getString("admin_auth_code"))) - adminFlag = true; - } - - // 관리자 시 로그인 막기 - if (adminFlag) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - // RSA 키 생성 -// initRsa(request); - return "web/site/login/EgovLoginGnrlUsr"; - } - - // 1. 일반 로그인 처리 - LoginVO resultVO; - loginVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 - resultVO = loginService.actionLogin(loginVO); - // 로그인 시 권한조회 - resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority()); - - String alertMessage = ""; - if (!"admin".equals(loginVO.getId())) { - if (null == resultVO.getId()) { // 로그인 실패 - /* loginService.updatePassMissPlus(loginVO); */ - alertMessage = egovMessageSource.getMessage("fail.common.login"); - // 로그인 실패이면 메인페이지로 이동 - return goUserLoginPage(redirectAttributes, request, model, alertMessage); - } /* - * else{ if(resultVO.getPassMiss() > 5) { alertMessage = - * "패스워드가 5회 이상 틀려 로그인 할수 없습니다. 관리자에게 문의하시기 바랍니다."; return - * goUserLoginPage(redirectAttributes, request, model, alertMessage); }else - * if("A".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = - * "신청하신 아이디가 현제 승인대기 상태입니다."; return goUserLoginPage(redirectAttributes, - * request, model, alertMessage); }else - * if("B".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = - * "아이디가 차단상태가 되어 사용할수 없습니다."; return goUserLoginPage(redirectAttributes, - * request, model, alertMessage); } loginService.updatePassMissReset(loginVO); } - */ - } - - boolean loginPolicyYn = true; - - // 접속IP - String userIp = EgovClntInfo.getClntIP(request); - - // resultVO.siteId 의 각 로그인 ip를 조회함 - if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("") && loginPolicyYn) { - // 세션에다 ip 등록 - resultVO.setIp(userIp); - - // LoginVO세션에 사용자 정보 넣기 - resultVO.setMembSeq(ssologinVO.getMembSeq()); - resultVO.setMembId(ssologinVO.getMembId()); - resultVO.setMembName(ssologinVO.getMembName()); - resultVO.setMembSeq(ssologinVO.getMembSeq()); - resultVO.setMembCi(ssologinVO.getMembCi()); - resultVO.setMembEmail(ssologinVO.getMembEmail()); - resultVO.setMembCelnum(ssologinVO.getMembCelnum()); - resultVO.setMembBirth(ssologinVO.getMembBirth()); - resultVO.setMembSmsRecpYn(ssologinVO.getMembSmsRecpYn()); - resultVO.setMembEmailRecpYn(ssologinVO.getMembEmailRecpYn()); - resultVO.setSexCode(ssologinVO.getSexCode()); - resultVO.setDispsettMembDivisCode(ssologinVO.getDispsettMembDivisCode()); - resultVO.setCorpnum(ssologinVO.getCorpnum()); - resultVO.setBuisnRegnum(ssologinVO.getBuisnRegnum()); - resultVO.setCompTitle(ssologinVO.getCompTitle()); - - // 2. spring security 연동 - request.getSession().setAttribute("LoginVO", resultVO); // LoginVO세션 생성 - UsernamePasswordAuthenticationFilter springSecurity = new UsernamePasswordAuthenticationFilter(); - ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()); - Map beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class); - if (beans.size() > 0) { - springSecurity = (UsernamePasswordAuthenticationFilter) beans.values().toArray()[0]; - springSecurity.setUsernameParameter("egov_security_username"); - springSecurity.setPasswordParameter("egov_security_password"); - springSecurity.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher(request.getServletContext().getContextPath() + "/egov_security_login", "POST")); - - } else { - throw new IllegalStateException("No AuthenticationProcessingFilter"); - } - - System.out.println("==15=1="); - - springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId(), resultVO.getUniqId()), response, null); - - try{ - System.out.println("==15=1="); - System.out.println("EgovUserDetailsHelper.isAuthenticated()"); - System.out.println(EgovUserDetailsHelper.isAuthenticated()); - }catch(Exception ex){ - ex.printStackTrace(); - } - - { // 관리자 로그인 log 저장 - String uniqId = ""; - String ip = ""; - - /* Authenticated */ - LoginLog loginLog = new LoginLog(); - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if (isAuthenticated.booleanValue()) { - LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); - uniqId = user.getUniqId(); - ip = EgovClntInfo.getClntIP(request); - - HttpSession httpSession = request.getSession(true); - { - List siteManageList = new ArrayList(); - SiteManagerVO siteManagerVO = new SiteManagerVO(); - siteManagerVO.setFirstIndex(0); - siteManagerVO.setRecordCountPerPage(100); - siteManageList = egovSiteManagerService.selectSiteManagerList(siteManagerVO); - httpSession.setAttribute("siteManageList", siteManageList); - httpSession.setAttribute("loginId", user.getId()); // 자동완성 공통으로 쓰기위해 - httpSession.setAttribute("esntlId", user.getPassword()); - - // 최근검색어 조회 후 세션에 넣어줌 - /* - * UserManageVO tempUserManageVO = new UserManageVO(); - * tempUserManageVO.setEmplyrId(user.getId()); tempUserManageVO = - * userManageService.selectRecentSearchWord(tempUserManageVO); - * - * List lisRecentSearch = new ArrayList(); if(null != - * tempUserManageVO){ //ArrayList 로 세션 저장 - * Collections.addAll(lisRecentSearch,tempUserManageVO.getSearchWord().split("," - * )) ; } httpSession.setAttribute("recentSearch", lisRecentSearch) ; - */ - } - } - - loginLog.setLoginId(uniqId); - loginLog.setLoginIp(ip); - loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O - loginLog.setErrOccrrAt("N"); - loginLog.setErrorCode(""); - // 로그인은 관리자, PC만 됨 - loginLog.setUserAt("U"); // 사용자 - loginLog.setDeviceType("P"); // PC - loginLog.setProgrmFileNm("adminLogin"); - loginLog.setMenuNm("관리자로그인"); - loginLogService.logInsertLoginLog(loginLog); - } - - // 로그인 전 URL 호출 시 - if (loginVO.getBeforeUrl() != null && !("").equals(loginVO.getBeforeUrl())) { - request.getSession().setAttribute("usrBeforeUrl", loginVO.getBeforeUrl()); - // 회원가입 시 메세지 처리 - if (loginVO.getMessage() != null && !("").equals(loginVO.getMessage())) { - request.getSession().setAttribute("registMessage", loginVO.getMessage()); - } - } - // 개인키 삭제 - // 성공시 웹페이지 분기로 인해 session에 페이지 타입을 넣어준다. - request.getSession().setAttribute("pageType", "web"); - return "blank"; // 성공 시 페이지.. (redirect 불가) - } else { - String message = egovMessageSource.getMessage("fail.common.login"); - redirectAttributes.addAttribute("beforeUrl", loginVO.getBeforeUrl()); - redirectAttributes.addAttribute("message", message); - return "redirect:/web/user/login/login.do"; - } - } - - /** - * (사용자) 외부 개발자용 로그인 처리 일반(스프링 시큐리티) 로그인을 처리한다 - * - * @param vo - 아이디, 비밀번호가 담긴 LoginVO - * @param request - 세션처리를 위한 HttpServletRequest - * @return result - 로그인결과(세션정보) - * @exception Exception - */ - @RequestMapping(value = "/web/user/login/actionSecurityLogin2.do") - public String selectActionSecurityLoginWeb2(@ModelAttribute("loginVO") LoginVO loginVO, HttpServletResponse response, HttpServletRequest request, ModelMap model, HttpSession session, - RedirectAttributes redirectAttributes) throws Exception { - - ScriptEngineManager engine = new ScriptEngineManager(); - - /* - * //로그인 정보 check if(loginVO.getId() == null || loginVO.getPassword() == null){ - * SsoLoginVO SsoLoginSessionChk = - * (SsoLoginVO)session.getAttribute("SSOLoginVO"); //SSOLoginVO 세션 체크 - * if(SsoLoginSessionChk != null) { - * - * loginVO.setId(SsoLoginSessionChk.getMembId()); loginVO.setPassword("1"); - * }else { model.addAttribute("message", "로그인을 다시 해주세요."); //로그인 페이지로 이동 return - * "/web/kccadr/login/SsoLoginUsr"; } } - * - * SsoLoginVO ssologinVO = new SsoLoginVO(); ssologinVO = - * (SsoLoginVO)session.getAttribute("SSOLoginVO"); String SsoLoginResult = ""; - * if(ssologinVO == null) { SSO로그인 및 SSOLoginVO 세선 생성 SsoLogin ssoLogin = new - * SsoLogin(); SsoLoginResult = ssoLogin.SsoLogin(loginVO.getId(), - * loginVO.getPassword(), request); } if("fail".equals(SsoLoginResult)) { - * model.addAttribute("message", "아이디, 비밀번호를 확인해 주세요."); return - * "/web/user/login/ssoLogin.do"; } - * - * ssologinVO = (SsoLoginVO)session.getAttribute("SSOLoginVO"); - * - * if("".equals(ssologinVO.getDispsettMembDivisCode())) { 신청 관련코드 받아오면 처리 } - */ - - // 기존에 있던 회원이 아니면 DB에 일련번호 저장 - UserManageVO userManageVO = new UserManageVO(); - userManageVO.setMberSeq(loginVO.getMembSeq()); - userManageVO = userManageService.selectKccadrUser(userManageVO); - SsoLoginVO ssoLoginVO = new SsoLoginVO(); - ssoLoginVO.setOtherUser("Y"); - ssoLoginVO.setMembSeq(userManageVO.getMberSeq()); - request.getSession().setAttribute("SSOLoginVO", ssoLoginVO); - - loginVO.setId(userManageVO.getEmplyrId()); - loginVO.setPassword(userManageVO.getPassword()); - - /* - * ssoLoginVO에서 아이디와, 일련번호, 부가가입여부 체크해서 DB에 일치하는 정보가 있는지 체크하고 일치하면 통과, 없으면 - * ssoLoginVO에서 일련번호, 부가가입여부를 포함한 사용자 정보 DB에 insert - */ - - loginVO.setUserSe("GNR"); - // 로그인 정보 check - - /* - * if(loginVO.getId() == null || loginVO.getPassword() == null){ // 회원가입 시 로그인 - * 처리 LoginVO pLoginVO = (LoginVO)request.getAttribute("pLoginVO"); if (pLoginVO - * == null) { // RSA 키 생성 initRsa(request); return - * "redirect:/web/user/login/login.do"; } else { - * loginVO.setId(pLoginVO.getId()); loginVO.setPassword(pLoginVO.getPassword()); - * loginVO.setBeforeUrl(pLoginVO.getBeforeUrl()); - * loginVO.setMessage(pLoginVO.getMessage()); } } - */ - - // 관리자 유무 체크 - List authorities = (List) loginService.selectAuthorities(loginVO); - Boolean adminFlag = false; - for (EgovMap authority : authorities) { - // admin_auth_code 최하위 관리자 Roll 코드 - if (authority.get("authorCode").equals(propertiesService.getString("admin_auth_code"))) - adminFlag = true; - } - - // 관리자 시 로그인 막기 - if (adminFlag) { - model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); - // RSA 키 생성 -// initRsa(request); - return "web/site/login/EgovLoginGnrlUsr"; - } - - // 1. 일반 로그인 처리 - LoginVO resultVO; - String password = loginVO.getPassword(); - loginVO.setId(loginVO.getId()); - loginVO.setPassword(password); - - loginVO.setStatusAll("Y"); // 신청대기중인 사용자까지 조회 - /* loginVO.setUserSe("GNR"); */ - resultVO = loginService.actionLogin(loginVO); - // 로그인 시 권한조회 - resultVO.setAuthority(loginService.getUserAuth(resultVO).getAuthority()); - - String alertMessage = ""; - if (!"admin".equals(loginVO.getId())) { - if (null == resultVO.getId()) { // 로그인 실패 - /* loginService.updatePassMissPlus(loginVO); */ - alertMessage = egovMessageSource.getMessage("fail.common.login"); - // 로그인 실패이면 메인페이지로 이동 - return goUserLoginPage(redirectAttributes, request, model, alertMessage); - } /* - * else{ if(resultVO.getPassMiss() > 5) { alertMessage = - * "패스워드가 5회 이상 틀려 로그인 할수 없습니다. 관리자에게 문의하시기 바랍니다."; return - * goUserLoginPage(redirectAttributes, request, model, alertMessage); }else - * if("A".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = - * "신청하신 아이디가 현제 승인대기 상태입니다."; return goUserLoginPage(redirectAttributes, - * request, model, alertMessage); }else - * if("B".equals(resultVO.getEmplyrSttusCode())){ //신청상태 alertMessage = - * "아이디가 차단상태가 되어 사용할수 없습니다."; return goUserLoginPage(redirectAttributes, - * request, model, alertMessage); } loginService.updatePassMissReset(loginVO); } - */ - } - - boolean loginPolicyYn = true; - - // 접속IP - String userIp = EgovClntInfo.getClntIP(request); - - // resultVO.siteId 의 각 로그인 ip를 조회함 - if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("") && loginPolicyYn) { - // 세션에다 ip 등록 - resultVO.setIp(userIp); - // 2. spring security 연동 - request.getSession().setAttribute("LoginVO", resultVO); // LoginVO세션 생성 - UsernamePasswordAuthenticationFilter springSecurity = new UsernamePasswordAuthenticationFilter(); - ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext()); - Map beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class); - if (beans.size() > 0) { - springSecurity = (UsernamePasswordAuthenticationFilter) beans.values().toArray()[0]; - springSecurity.setUsernameParameter("egov_security_username"); - springSecurity.setPasswordParameter("egov_security_password"); - springSecurity.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher(request.getServletContext().getContextPath() + "/egov_security_login", "POST")); - - } else { - throw new IllegalStateException("No AuthenticationProcessingFilter"); - } - - System.out.println("==16=1="); - - springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId(), resultVO.getUniqId()), response, null); - - try{ - System.out.println("==16=1="); - System.out.println("EgovUserDetailsHelper.isAuthenticated()"); - System.out.println(EgovUserDetailsHelper.isAuthenticated()); - }catch(Exception ex){ - ex.printStackTrace(); - } - - - { // 관리자 로그인 log 저장 - String uniqId = ""; - String ip = ""; - - /* Authenticated */ - LoginLog loginLog = new LoginLog(); - Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); - if (isAuthenticated.booleanValue()) { - LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); - uniqId = user.getUniqId(); - ip = EgovClntInfo.getClntIP(request); - - HttpSession httpSession = request.getSession(true); - { - List siteManageList = new ArrayList(); - SiteManagerVO siteManagerVO = new SiteManagerVO(); - siteManagerVO.setFirstIndex(0); - siteManagerVO.setRecordCountPerPage(100); - siteManageList = egovSiteManagerService.selectSiteManagerList(siteManagerVO); - httpSession.setAttribute("siteManageList", siteManageList); - httpSession.setAttribute("loginId", user.getId()); // 자동완성 공통으로 쓰기위해 - httpSession.setAttribute("esntlId", user.getPassword()); - - // 최근검색어 조회 후 세션에 넣어줌 - /* - * UserManageVO tempUserManageVO = new UserManageVO(); - * tempUserManageVO.setEmplyrId(user.getId()); tempUserManageVO = - * userManageService.selectRecentSearchWord(tempUserManageVO); - * - * List lisRecentSearch = new ArrayList(); if(null != - * tempUserManageVO){ //ArrayList 로 세션 저장 - * Collections.addAll(lisRecentSearch,tempUserManageVO.getSearchWord().split("," - * )) ; } httpSession.setAttribute("recentSearch", lisRecentSearch) ; - */ - } - } - - loginLog.setLoginId(uniqId); - loginLog.setLoginIp(ip); - loginLog.setLoginMthd("I"); // 로그인:I, 로그아웃:O - loginLog.setErrOccrrAt("N"); - loginLog.setErrorCode(""); - // 로그인은 관리자, PC만 됨 - loginLog.setUserAt("U"); // 사용자 - loginLog.setDeviceType("P"); // PC - loginLog.setProgrmFileNm("adminLogin"); - loginLog.setMenuNm("관리자로그인"); - loginLogService.logInsertLoginLog(loginLog); - } - - // 로그인 전 URL 호출 시 - if (loginVO.getBeforeUrl() != null && !("").equals(loginVO.getBeforeUrl())) { - request.getSession().setAttribute("usrBeforeUrl", loginVO.getBeforeUrl()); - // 회원가입 시 메세지 처리 - if (loginVO.getMessage() != null && !("").equals(loginVO.getMessage())) { - request.getSession().setAttribute("registMessage", loginVO.getMessage()); - } - } - // 개인키 삭제 - // 성공시 웹페이지 분기로 인해 session에 페이지 타입을 넣어준다. - request.getSession().setAttribute("pageType", "web"); - - return "blank"; // 성공 시 페이지.. (redirect 불가) - } else { - String message = egovMessageSource.getMessage("fail.common.login"); - redirectAttributes.addAttribute("beforeUrl", loginVO.getBeforeUrl()); - redirectAttributes.addAttribute("message", message); - return "redirect:/web/user/login/login.do"; - } - } /** * 로그인 후 메인화면으로 들어간다 @@ -1934,30 +1049,6 @@ public class EgovLoginController { @RequestMapping(value = "/web/uat/uia/actionLogout.do") public String selectActionLogoutWeb(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { - SsoAgentInfo ssoagentinfo = new SsoAgentInfo(); - - String client_ip = "127.0.0.1"; - - if (!ProfileUtil.isLocal()) { - // SsoLoginVO 세션 정보 취득 - SsoLoginVO ssoLoginVO = new SsoLoginVO(); - HttpSession session = request.getSession(); - /*ssologin에서 e배움터 API 로그인으로 변경*/ - /*ssoLoginVO = (SsoLoginVO) session.getAttribute("SSOLoginVO"); - if (ssoLoginVO != null) { - if (!"USRCNFRM_00000002940".equals(ssoLoginVO.getMembId()) || !"USRCNFRM_00000002941".equals(ssoLoginVO.getMembId()) || !"USRCNFRM_00000002942".equals(ssoLoginVO.getMembId()) - || !"USRCNFRM_00000002943".equals(ssoLoginVO.getMembId()) || !"USRCNFRM_00000002944".equals(ssoLoginVO.getMembId()) || !"USRCNFRM_00000002550".equals(ssoLoginVO.getMembId()) - || !"USRCNFRM_00000002542".equals(ssoLoginVO.getMembId()) || !"USRCNFRM_00000002541".equals(ssoLoginVO.getMembId()) || !"USRCNFRM_00000002540".equals(ssoLoginVO.getMembId()) - || !"USRCNFRM_00000002533".equals(ssoLoginVO.getMembId())) { - BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope); - BandiSSOAgent agent = new BandiSSOAgent(ssoagentinfo.getSsoUri(), ssoagentinfo.getClientId(), ssoagentinfo.getClientSecret(), ssoagentinfo.getScope()); - - // sso 로그아웃 - agent.logout(ssoLoginVO.getAccess_token(), client_ip); - } - }*/ - } - // Spring Security 로그아웃 Authentication auth = SecurityContextHolder.getContext().getAuthentication(); if (auth != null) { @@ -1970,54 +1061,6 @@ public class EgovLoginController { return "redirect:/web/main/mainPage.do"; } - /* 캡차 테스트 */ - @RequestMapping(value = "/captcha/captchaTest.do") - public String captchaTest(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO, ModelMap model) throws Exception { - return "cmm/chptcha/captchaTest"; - } - - /* 캡차 이미지 */ - @RequestMapping(value = "/captcha/captchaImg.do") - public String captchaImg1(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { - - return "cmm/chptcha/captchaImg"; - } - - /* 캡차 오디오 */ - @RequestMapping(value = "/captcha/captchaAudio.do") - public String captchaAudio1(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception { - return "cmm/chptcha/captchaAudio"; - } - - /* 캡차 submit */ - @RequestMapping(value = "/captcha/captchaSubmit.do") - public ModelAndView captchaSubmit(@RequestParam Map commandMap, HttpServletRequest request, HttpServletResponse response) throws Exception { - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - String answer = (String) commandMap.get("answer"); - String captcha = (String) request.getSession().getAttribute("captcha"); - String message = "캡차 입력값이 일치하지 않습니다."; - if (answer != null && !"".equals(answer)) { - if (answer.equals(captcha)) { - message = "캡차 입력값이 일치합니다."; - } - } - modelAndView.addObject("message", message); - return modelAndView; - } - - /* 캡차 이미지 */ - @RequestMapping(value = "captchaImg.do") - public void cpatchaImg(HttpServletRequest request, HttpServletResponse response) throws Exception { - new CaptchaUtil().captchaImg(request, response); - } - - @RequestMapping(value = "captchaAudio.do") - public void cpatchaAudio(HttpServletRequest request, HttpServletResponse response) throws Exception { - new CaptchaUtil().captchaAudio(request, response); - } - /** * 로그인 후 메인화면으로 들어간다 * @@ -2457,168 +1500,6 @@ public class EgovLoginController { return "redirect:/"; } - /* SNS 추가 내역 */ - - @RequestMapping(value = "/snsLogin/naverOauth.do", produces = "application/json", method = { RequestMethod.GET, RequestMethod.POST }) - public String naverRedirect(Model model, @RequestParam("code") String code, @RequestParam String state, HttpSession session, HttpServletRequest req, RedirectAttributes redirectAttributes) { - - String siteId = (String) session.getAttribute("siteId"); - JsonNode node = getAccessToken("naver", code, state); - - // 결과값 출력 - System.out.println("node : " + node); - - // 노드 안에 있는 access_token값을 꺼내 문자열로 변환 - String token = node.get("access_token").toString(); - - // 세션에 담아준다. - session.setAttribute("token", token); - JsonNode userInfo = getUserInfo("naver", node.get("access_token")); - JsonNode response = userInfo.path("response"); - - String id = response.path("id").asText(); - String name = response.path("name").asText(); - String snsEmail = response.path("email").asText(); - - LoginVO loginVO = new LoginVO(); - loginVO.setSnsId(id); - loginVO.setName(name); - loginVO.setSnsEmail(snsEmail); - loginVO.setSnsSite("naver"); - model.addAttribute("loginVO", loginVO); - return "web/login/EgovUserSNSLogin"; - } - - @RequestMapping(value = "/snsLogin/kakaoOauth.do", produces = "application/json", method = { RequestMethod.GET, RequestMethod.POST }) - public String kakaoRedirect(Model model, @RequestParam("code") String code, HttpSession session, HttpServletRequest req, RedirectAttributes redirectAttributes) { - JsonNode node = getAccessToken("kakao", code, ""); - - // 노드 안에 있는 access_token값을 꺼내 문자열로 변환 - String token = node.get("access_token").toString(); - // 세션에 담아준다. - session.setAttribute("token", token); - JsonNode userInfo = getUserInfo("kakao", node.get("access_token")); - - String id = userInfo.path("id").asText(); - String name = userInfo.path("name").asText(); - String snsEmail = userInfo.path("email").asText(); - - // 유저정보 카카오에서 가져오기 Get properties - JsonNode properties = userInfo.path("properties"); - JsonNode kakao_account = userInfo.path("kakao_account"); - - id = userInfo.path("id").asText(); - name = null; - snsEmail = null; - - name = properties.path("nickname").asText(); - snsEmail = kakao_account.path("email").asText(); - - LoginVO loginVO = new LoginVO(); - loginVO.setSnsId(id); - loginVO.setName(name); - loginVO.setSnsEmail(snsEmail); - loginVO.setSnsSite("kakao"); - model.addAttribute("loginVO", loginVO); - -// return "forward:/"+siteId+"/web/user/login/actionSecurityLogin.do?snsnsId="+id+"&name="+name+"&email="+email+"&snsSite=kakao"; - return "web/login/EgovUserSNSLogin"; - - } - - public JsonNode getAccessToken(String site, String code, String state) { - - String RequestUrl = ""; - List postParams = new ArrayList(); - - if (site.equals("kakao")) { - RequestUrl = "https://kauth.kakao.com/oauth/token"; - postParams.add(new BasicNameValuePair("grant_type", "authorization_code")); - postParams.add(new BasicNameValuePair("client_id", itnKakaoRestApiKey)); - postParams.add(new BasicNameValuePair("code", code)); - - } else if (site.equals("naver")) { - RequestUrl = "https://nid.naver.com/oauth2.0/token"; - - postParams.add(new BasicNameValuePair("grant_type", "authorization_code")); - postParams.add(new BasicNameValuePair("client_id", itnNaverClientId)); - postParams.add(new BasicNameValuePair("client_secret", itnNaverClientSecret)); - postParams.add(new BasicNameValuePair("code", code)); - postParams.add(new BasicNameValuePair("state", state)); - - } else if (site.equals("google")) { - - } - - final HttpClient client = HttpClientBuilder.create().build(); - final HttpPost post = new HttpPost(RequestUrl); - - JsonNode returnNode = null; - - try { - post.setEntity(new UrlEncodedFormEntity(postParams)); - final HttpResponse response = client.execute(post); - final int responseCode = response.getStatusLine().getStatusCode(); - - // JSON 형태 반환값 처리 - ObjectMapper mapper = new ObjectMapper(); - returnNode = mapper.readTree(response.getEntity().getContent()); - - } catch (UnsupportedEncodingException e) { - System.out.println("UnsupportedEncodingException Occured!!!"); - } catch (ClientProtocolException e) { - System.out.println("ClientProtocolException Occured!!!"); - } catch (IOException e) { - System.out.println("IOException Occured!!!"); - } finally { - } - return returnNode; - } - - public JsonNode getUserInfo(String site, JsonNode accessToken) { - - // String CLIENT_ID = K_CLIENT_ID; // REST API KEY - // String REDIRECT_URI = K_REDIRECT_URI; // 리다이렉트 URI - // String code = autorize_code; // 로그인 과정중 얻은 토큰 값 - String RequestUrl = ""; - - if (site.equals("kakao")) { - RequestUrl = "https://kapi.kakao.com/v2/user/me"; - - } else if (site.equals("naver")) { - RequestUrl = "https://openapi.naver.com/v1/nid/me"; - - } else if (site.equals("google")) { - - } - - final HttpClient client = HttpClientBuilder.create().build(); - final HttpPost post = new HttpPost(RequestUrl); - - // add header - post.addHeader("Authorization", "Bearer " + accessToken); - - JsonNode returnNode = null; - - try { - final HttpResponse response = client.execute(post); - final int responseCode = response.getStatusLine().getStatusCode(); - // JSON 형태 반환값 처리 - ObjectMapper mapper = new ObjectMapper(); - returnNode = mapper.readTree(response.getEntity().getContent()); - - } catch (UnsupportedEncodingException e) { - System.out.println("UnsupportedEncodingException Occured!!!"); - } catch (ClientProtocolException e) { - System.out.println("ClientProtocolException Occured!!!"); - } catch (IOException e) { - System.out.println("IOException Occured!!!"); - } finally { - // clear resources - } - return returnNode; - } - } class RequestWrapperForSecurity extends HttpServletRequestWrapper { diff --git a/src/main/java/kcc/let/uat/uia/web/SsoAgentInfo.java b/src/main/java/kcc/let/uat/uia/web/SsoAgentInfo.java deleted file mode 100644 index d949c0c0..00000000 --- a/src/main/java/kcc/let/uat/uia/web/SsoAgentInfo.java +++ /dev/null @@ -1,48 +0,0 @@ -package kcc.let.uat.uia.web; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -@Component -public class SsoAgentInfo { - - //SSO agent 관련 설정 - - private static String ssoUri; - - private static String clientId; - - private static String clientSecret; - - private static String scope; - - @Value("#{globalSettings['Globals.sso.ssoUri']}") - public void setSsoUri(String ssoUri) { - SsoAgentInfo.ssoUri = ssoUri; - } - @Value("#{globalSettings['Globals.sso.clientId']}") - public void setClientId(String clientId) { - SsoAgentInfo.clientId = clientId; - } - @Value("#{globalSettings['Globals.sso.clientSecret']}") - public void setClientSecret(String clientSecret) { - SsoAgentInfo.clientSecret = clientSecret; - } - @Value("#{globalSettings['Globals.sso.scope']}") - public void setScope(String scope) { - SsoAgentInfo.scope = scope; - } - public String getSsoUri() { - return ssoUri; - } - public String getClientId() { - return clientId; - } - public String getClientSecret() { - return clientSecret; - } - public String getScope() { - return scope; - } - -} diff --git a/src/main/java/kcc/let/uat/uia/web/SsoLogin.java b/src/main/java/kcc/let/uat/uia/web/SsoLogin.java deleted file mode 100644 index 259d12cc..00000000 --- a/src/main/java/kcc/let/uat/uia/web/SsoLogin.java +++ /dev/null @@ -1,156 +0,0 @@ -package kcc.let.uat.uia.web; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.bandi.oauth.BandiSSOAgent; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; - -import kcc.com.cmm.service.EgovFileMngUtil; -import kcc.let.uat.uia.service.SsoLoginVO; - -public class SsoLogin { - - - - private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class); - - //실서버 적용시 변경 - // agent 관련 설정 - /*private static String ssoUri = "https://devsso.copyright.or.kr/oauth2/token.do"; // 개발서버 URL - private static String clientId = "해당 시스템의 클라이언트 아이디"; - private static String clientId = "30354835c3684ff79e7fb1bfd3a768f6"; - private static String clientSecret = "해당 시스템의 클라이언트 시크릿"; - private static String clientSecret = "1ueil5ee05wr0t1gjy1ppt212"; - private static String scope = "http://sso.copyright.or.kr"; // 고정 -*/ - // 1 : id/pw 로그인, 2 : hp/pw 로그인, 3 : seq/ci 로그인 - private static String type = "1"; - - public static String SsoLogin(String Id, String Password, HttpServletRequest request) throws Exception { - SsoAgentInfo ssoagentinfo = new SsoAgentInfo(); - // SSO 로그인 연계 "BandiSSOAgent 생성" 참조 - /*BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);*/ - BandiSSOAgent agent = new BandiSSOAgent(ssoagentinfo.getSsoUri(), ssoagentinfo.getClientId(), ssoagentinfo.getClientSecret(), ssoagentinfo.getScope()); - - // 사용자 접속 ip - // agent.getLocalServerIp(request); - String client_ip = "127.0.0.1"; - - // https://devoneid.copyright.or.kr 에서 가입함 ID/PW 입력 - /*String user_id = "itn0801@gmail.com";*/ - String user_id = Id; - /*String user_pwd = "itntest123$";*/ - String user_pwd = Password; - - SsoLoginVO ssoLoginVO = new SsoLoginVO(); - - // SSO 로그인 연계 "accessToken 함수 요청" 및 "accessToken 함수 결과" 참조 - HashMap login = agent.accessToken(user_id, user_pwd, client_ip, type); - - /*에러코드*/ - String error = login.get("error"); - /*에러 메시지*/ - String error_message = login.get("error_message"); - - /*에러 콘솔 로거*/ - LOGGER.debug("error : ", error); - LOGGER.debug("error_message : ", error_message); -// try { - if(login.get("error").equals("0000") || login.get("error").equals("VL-3130")) { - String access_token = login.get("access_token"); - String refresh_token = login.get("refresh_token"); - - /*쿠키유지시간*/ - String expires_in = login.get("expires_in"); - - // userInfo의 type은 무조건 1을 입력한다. - // SSO 로그인 연계 "userInfo 함수 요청" 및 "userInfo 함수 결과" 참조 - HashMap userInfo = agent.userInfo(access_token, client_ip, type); - - //법인회원 정보 처리 - if(userInfo.get("corpUserInfo") != null) { - List> info = new Gson().fromJson(String.valueOf(userInfo.get("corpUserInfo")), - new TypeToken>>(){}.getType()); - for (Map userInfo2 : info) { - userInfo.put("compAddr", userInfo2.get("compAddr")); - userInfo.put("mangCelnum", userInfo2.get("mangCelnum")); - userInfo.put("membEmail", userInfo2.get("membEmail")); - userInfo.put("membType", userInfo2.get("membType")); - userInfo.put("membDivis", userInfo2.get("membDivis")); - userInfo.put("compZipcd", userInfo2.get("compZipcd")); - userInfo.put("compDetAddr", userInfo2.get("compDetAddr")); - userInfo.put("membBuisnRegnum", userInfo2.get("membBuisnRegnum")); - userInfo.put("membCorpnum", userInfo2.get("membCorpnum")); - userInfo.put("mangName", userInfo2.get("mangName")); - } - } - - userInfo.remove("corpUserInfo"); - - //map -> vo 매칭 - ObjectMapper test = new ObjectMapper(); - ssoLoginVO = test.convertValue(userInfo, SsoLoginVO.class); - - //통합회원 SSO연동 유효성 체크를 위한 토큰값 set - ssoLoginVO.setAccess_token(access_token); - ssoLoginVO.setRefresh_token(refresh_token); - - if(userInfo.get("error").equals("0000")) { - // "userInfo 함수 결과"의 필드를 기준으로 맵핑 - /*Object[] keys = (Object[]) userInfo.keySet().toArray(); - for(int i=0;i HttpServletRequest request*/ - HttpSession session = request.getSession(); - session.setMaxInactiveInterval(Integer.parseInt(expires_in)); - //SSOLoginVO세션 생성 - ssoLoginVO.setOtherUser("N"); - - session.setAttribute("SSOLoginVO", ssoLoginVO); - - // **중요(필요시) - // 연동 완료시 저장한 개별사이트의 통함회원 아이디와 SSO로그인시 취득한 통합회원 아이디가 다른경우에는 개별사이트의 통합회원 아이디를 SSO로그인시 취득한 통합외원 아이디로 갱신 필요 - - return "sucess"; - } else { - // 사용자 정보 조회 시 오류 - System.out.println("[getUserInfo error] "+userInfo.get("error")); - System.out.println("[getUserInfo error_message] "+userInfo.get("error_message")); - - return "fail"; - } - } else { - // 로그인 실패 - // 사용자 정보 조회 시 오류 - System.out.println("[login error] "+login.get("error")); - System.out.println("[login error_message] "+login.get("error_message")); - - return "fail"; - } - -// } catch (Exception e) { -// e.getStackTrace(); -// throw new BaseException("시퀀스관리 조회 오류") ; -// } - -// return "sucess"; - } - -} diff --git a/src/main/java/kcc/let/uat/uia/web/SsoTokenLogin.java b/src/main/java/kcc/let/uat/uia/web/SsoTokenLogin.java deleted file mode 100644 index b1359bf3..00000000 --- a/src/main/java/kcc/let/uat/uia/web/SsoTokenLogin.java +++ /dev/null @@ -1,135 +0,0 @@ -package kcc.let.uat.uia.web; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.codehaus.jackson.map.ObjectMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.bandi.oauth.BandiSSOAgent; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; - -import kcc.com.cmm.service.EgovFileMngUtil; -import kcc.let.uat.uia.service.SsoLoginVO; - -public class SsoTokenLogin { - - - - private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class); - - /*//실서버 적용시 변경 - // agent 관련 설정 - private static String ssoUri = "https://devsso.copyright.or.kr/oauth2/token.do"; // 개발서버 URL - private static String clientId = "해당 시스템의 클라이언트 아이디"; - private static String clientId = "30354835c3684ff79e7fb1bfd3a768f6"; - private static String clientSecret = "해당 시스템의 클라이언트 시크릿"; - private static String clientSecret = "1ueil5ee05wr0t1gjy1ppt212"; - private static String scope = "http://sso.copyright.or.kr"; // 고정 -*/ - // 1 : id/pw 로그인, 2 : hp/pw 로그인, 3 : seq/ci 로그인 - private static String type = "1"; - - public static String SsoTokenLogin(String access_token, String refresh_token, HttpServletRequest request) throws Exception { - SsoAgentInfo ssoagentinfo = new SsoAgentInfo(); - // SSO 로그인 연계 "BandiSSOAgent 생성" 참조 - /*BandiSSOAgent agent = new BandiSSOAgent(ssoUri, clientId, clientSecret, scope);*/ - BandiSSOAgent agent = new BandiSSOAgent(ssoagentinfo.getSsoUri(), ssoagentinfo.getClientId(), ssoagentinfo.getClientSecret(), ssoagentinfo.getScope()); - - // 사용자 접속 ip - // agent.getLocalServerIp(request); - String client_ip = "127.0.0.1"; - - SsoLoginVO ssoLoginVO = new SsoLoginVO(); - -// try { - HashMap tokenValid = agent.tokenValid(access_token, client_ip); - if(tokenValid.get("error").equals("0000")) { - /*쿠키유지시간*/ - // String expires_in = login.get("expires_in"); - - // userInfo의 type은 무조건 1을 입력한다. - // SSO 로그인 연계 "userInfo 함수 요청" 및 "userInfo 함수 결과" 참조 - HashMap userInfo = agent.userInfo(access_token, client_ip, type); - - //법인회원 정보 처리 - if(userInfo.get("corpUserInfo") != null) { - List> info = new Gson().fromJson(String.valueOf(userInfo.get("corpUserInfo")), - new TypeToken>>(){}.getType()); - for (Map userInfo2 : info) { - userInfo.put("compAddr", userInfo2.get("compAddr")); - userInfo.put("mangCelnum", userInfo2.get("mangCelnum")); - userInfo.put("membEmail", userInfo2.get("membEmail")); - userInfo.put("membType", userInfo2.get("membType")); - userInfo.put("membDivis", userInfo2.get("membDivis")); - userInfo.put("compZipcd", userInfo2.get("compZipcd")); - userInfo.put("compDetAddr", userInfo2.get("compDetAddr")); - userInfo.put("membBuisnRegnum", userInfo2.get("membBuisnRegnum")); - userInfo.put("membCorpnum", userInfo2.get("membCorpnum")); - userInfo.put("mangName", userInfo2.get("mangName")); - } - } - - userInfo.remove("corpUserInfo"); - - //map -> vo 매칭 - ObjectMapper test = new ObjectMapper(); - ssoLoginVO = test.convertValue(userInfo, SsoLoginVO.class); - - //통합회원 SSO연동 유효성 체크를 위한 토큰값 set - ssoLoginVO.setAccess_token(access_token); - ssoLoginVO.setRefresh_token(refresh_token); - - if(userInfo.get("error").equals("0000")) { - // "userInfo 함수 결과"의 필드를 기준으로 맵핑 - Object[] keys = (Object[]) userInfo.keySet().toArray(); - for(int i=0;i HttpServletRequest request*/ - HttpSession session = request.getSession(); - session.setMaxInactiveInterval(Integer.parseInt("7200")); - //SSOLoginVO세션 생성 - ssoLoginVO.setOtherUser("N"); - - session.setAttribute("SSOLoginVO", ssoLoginVO); - - // **중요(필요시) - // 연동 완료시 저장한 개별사이트의 통함회원 아이디와 SSO로그인시 취득한 통합회원 아이디가 다른경우에는 개별사이트의 통합회원 아이디를 SSO로그인시 취득한 통합외원 아이디로 갱신 필요 - - return "sucess"; - } else { - // 사용자 정보 조회 시 오류 - System.out.println("[getUserInfo error] "+userInfo.get("error")); - System.out.println("[getUserInfo error_message] "+userInfo.get("error_message")); - - return "fail"; - } - } else { - // 로그인 실패 - // 사용자 정보 조회 시 오류 -// System.out.println("[login error] "+login.get("error")); -// System.out.println("[login error_message] "+login.get("error_message")); - - return "fail"; - } -// } catch (Exception e) { -// System.out.println("Exception Error"); -// } -// return "sucess"; - } - -} diff --git a/src/main/java/kcc/ve/cmm/VeSendMail.java b/src/main/java/kcc/ve/cmm/VeSendMail.java index 1db33144..b9ae0e7d 100644 --- a/src/main/java/kcc/ve/cmm/VeSendMail.java +++ b/src/main/java/kcc/ve/cmm/VeSendMail.java @@ -21,8 +21,6 @@ public class VeSendMail { private static final Logger LOGGER = LoggerFactory.getLogger(EgovFileMngUtil.class); - @Value("#{globalSettings['Globals.edu.mail.template']}") - private String TEMPLATE_URI; //================================================================ //찾교 메일 발송 계정 ID, PW 넣는 부분 diff --git a/src/main/java/kcc/ve/cmm/crt/CertPhoneInfo.java b/src/main/java/kcc/ve/cmm/crt/CertPhoneInfo.java new file mode 100644 index 00000000..45a3226f --- /dev/null +++ b/src/main/java/kcc/ve/cmm/crt/CertPhoneInfo.java @@ -0,0 +1,81 @@ +package kcc.ve.cmm.crt; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +@Component +public class CertPhoneInfo { + + private static String cryptoUrl; + private static String reqNo; + private static String id; + private static String clientId; + private static String srvNo; + private static String retUrl; + private static String accessToken; + private static String stosUrl; + + @Value("#{globalSettings['globals.certPhone.cryptoUrl']}") + public void setCryptoUrl(String value) { + CertPhoneInfo.cryptoUrl = value; + } + public String getCryptoUrl() { + return cryptoUrl; + } + + @Value("#{globalSettings['globals.certPhone.reqNo']}") + public void setReqNo(String value) { + CertPhoneInfo.reqNo = value; + } + public String getReqNo() { + return reqNo; + } + + @Value("#{globalSettings['globals.certPhone.id']}") + public void setId(String value) { + CertPhoneInfo.id = value; + } + public String getId() { + return id; + } + + @Value("#{globalSettings['globals.certPhone.clientId']}") + public void setClientId(String value) { + CertPhoneInfo.clientId = value; + } + public String getClientId() { + return clientId; + } + + @Value("#{globalSettings['globals.certPhone.srvNo']}") + public void setSrvNo(String value) { + CertPhoneInfo.srvNo = value; + } + public String getSrvNo() { + return srvNo; + } + + @Value("#{globalSettings['globals.certPhone.retUrl']}") + public void setRetUrl(String value) { + CertPhoneInfo.retUrl = value; + } + public String getRetUrl() { + return retUrl; + } + + @Value("#{globalSettings['globals.certPhone.accessToken']}") + public void setAccessToken(String value) { + CertPhoneInfo.accessToken = value; + } + public String getAccessToken() { + return accessToken; + } + + @Value("#{globalSettings['globals.certPhone.stosUrl']}") + public void setStosUrl(String value) { + CertPhoneInfo.stosUrl = value; + } + public String getStosUrl() { + return stosUrl; + } +} diff --git a/src/main/java/kcc/ve/cmm/crt/CertPhoneRequestUtill.java b/src/main/java/kcc/ve/cmm/crt/CertPhoneRequestUtill.java index e6d6b269..697cbeb6 100644 --- a/src/main/java/kcc/ve/cmm/crt/CertPhoneRequestUtill.java +++ b/src/main/java/kcc/ve/cmm/crt/CertPhoneRequestUtill.java @@ -1,21 +1,157 @@ package kcc.ve.cmm.crt; +import com.fasterxml.jackson.databind.ObjectMapper; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; +import org.springframework.http.*; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.servlet.ModelAndView; -import javax.crypto.Cipher; -import javax.crypto.Mac; -import javax.crypto.SecretKey; +import javax.crypto.*; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; +import javax.servlet.http.HttpServletRequest; +import java.io.UnsupportedEncodingException; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; import java.util.Base64; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; @Service(value = "certPhoneRequestUtill") public class CertPhoneRequestUtill { - public String getEncReqData( String key, String iv, String reqData ) throws Exception { + public String requestResult( HttpServletRequest request, ModelAndView modelAndView ) throws Exception { + String result = "fail"; + CertPhoneInfo certPhoneInfo = new CertPhoneInfo(); + + String url = certPhoneInfo.getCryptoUrl(); + String reqNo = certPhoneInfo.getReqNo(); + String id = certPhoneInfo.getId(); + String clientId = certPhoneInfo.getClientId(); + String srvNo = certPhoneInfo.getSrvNo(); + String retUrl = certPhoneInfo.getRetUrl() + "web/cmm/crt/certPhoneReturn.do"; + String accessToken = certPhoneInfo.getAccessToken(); + + Date currentDate = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + String reqDate = sdf.format(currentDate); + + RestTemplate restTemplate = new RestTemplate(); + + // 1. Header 설정 + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + headers.set("Authorization", "bearer " + accessToken); + + // 2. Body 생성 + Map dataHeader = new HashMap<>(); + dataHeader.put("lang_code", "kr"); + + Map dataBody = new HashMap<>(); + dataBody.put("client_id", clientId); + dataBody.put("req_date", reqDate); + dataBody.put("req_no", reqNo); + dataBody.put("enc_mode", "1"); + + Map requestJson = new HashMap<>(); + requestJson.put("dataHeader", dataHeader); + requestJson.put("dataBody", dataBody); + + HttpEntity> entity = new HttpEntity<>(requestJson, headers); + + // 3. POST 요청 호출 + ResponseEntity response = restTemplate.exchange( + url, + HttpMethod.POST, + entity, + String.class + ); + + ObjectMapper mapper = new ObjectMapper(); + + Map json = mapper.readValue(response.getBody(), Map.class); + Map resDataBody = (Map) json.get("dataBody"); + + String cryptoTokenId = (String) resDataBody.get("crypto_token_id"); + String cryptoToken = (String) resDataBody.get("crypto_token"); + + String reqInfo = getReqData(id + , srvNo + , reqNo + , "72" + retUrl + , reqDate + , "H"); //4번시트 5 본인확인 서비스 요청데이터 암호화 항목참조 + + String symmetricKey = createSymmetricKey(reqDate, reqNo, cryptoToken); + + String key = symmetricKey.substring(0, 16); + String iv = symmetricKey.substring(symmetricKey.length() - 16, symmetricKey.length()); + + request.getSession().setAttribute("reqkey", key); + request.getSession().setAttribute("reqiv", iv); + + reqInfo = getEncReqData(key, iv, reqInfo); + + String hmacKey = symmetricKey.substring(0, 32); + byte[] hmacSha256 = hmac256(hmacKey.getBytes(), reqInfo.getBytes()); + String integrityValue = Base64.getEncoder().encodeToString(hmacSha256); + String baseEncStr = Base64.getEncoder().encodeToString(hmacSha256); + result = "success"; + + modelAndView.addObject("reqInfo", reqInfo); + modelAndView.addObject("cryptoTokenId", cryptoTokenId); + modelAndView.addObject("integrityValue", integrityValue); + modelAndView.addObject("verSion", "3"); + return result; + } + + public ModelAndView devLogin( HttpServletRequest request ) throws Exception{ + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + // 1. 클라이언트에서 넘어온 평문 JSON 문자열 + String retInfo = request.getParameter("retInfo"); + + // 2. 세션에서 키/IV 가져오기 + String reqkey = request.getSession().getAttribute("reqkey").toString(); + String reqiv = request.getSession().getAttribute("reqiv").toString(); + + // 3. AES 암호화 설정 + SecretKeySpec secureKey = new SecretKeySpec(reqkey.getBytes("UTF-8"), "AES"); + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + cipher.init(Cipher.ENCRYPT_MODE, secureKey, new IvParameterSpec(reqiv.getBytes("UTF-8"))); + + // 4. 평문 JSON 문자열을 바이트로 변환 후 암호화 + byte[] plainBytes = retInfo.getBytes("UTF-8"); + byte[] cipherBytes = cipher.doFinal(plainBytes); + + // 5. 암호문을 Base64 인코딩해서 최종 문자열로 변환 + String encRetInfo = Base64.getEncoder().encodeToString(cipherBytes); + + // 필요하다면 응답에 포함 + modelAndView.addObject("result", "success"); + modelAndView.addObject("encRetInfo", encRetInfo); + return modelAndView; + } + + + + + + + + + + + ///////// private Function + + private String getEncReqData( String key, String iv, String reqData ) throws Exception { String reqInfo = ""; try { SecretKey secureKey = new SecretKeySpec(key.getBytes(), "AES"); @@ -32,7 +168,7 @@ public class CertPhoneRequestUtill { return reqInfo; } - public String createSymmetricKey( String req_dtim, String req_no, String token_val ) throws Exception { + private String createSymmetricKey( String req_dtim, String req_no, String token_val ) throws Exception { String symmetricKey = ""; String value = req_dtim.trim() + req_no.trim() + token_val.trim(); MessageDigest md; @@ -49,7 +185,7 @@ public class CertPhoneRequestUtill { return symmetricKey; } - public byte[] hmac256( byte[] secretKey, byte[] message ) throws Exception { + private byte[] hmac256( byte[] secretKey, byte[] message ) throws Exception { byte[] hmac256 = null; try { Mac mac = Mac.getInstance("HmacSHA256"); @@ -64,7 +200,7 @@ public class CertPhoneRequestUtill { } } - public String getReqData( String id, String srvNo, String reqNum, String retUrl, String certDate, String certGb ) { + private String getReqData( String id, String srvNo, String reqNum, String retUrl, String certDate, String certGb ) { JSONObject msgMap = new JSONObject(); msgMap.put("id", id); @@ -79,7 +215,7 @@ public class CertPhoneRequestUtill { } //복호화 - public JSONObject getResData( String req_info, String key, String iv ) throws Exception { + private JSONObject getResData( String req_info, String key, String iv ) throws Exception { SecretKey secureKey = new SecretKeySpec(key.getBytes(), "AES"); Cipher c; String resData = ""; @@ -99,4 +235,6 @@ public class CertPhoneRequestUtill { return jsonResData; } + + } diff --git a/src/main/java/kcc/ve/cmm/crt/CertPhoneResultUtill.java b/src/main/java/kcc/ve/cmm/crt/CertPhoneResultUtill.java index 05f55586..a327a72e 100644 --- a/src/main/java/kcc/ve/cmm/crt/CertPhoneResultUtill.java +++ b/src/main/java/kcc/ve/cmm/crt/CertPhoneResultUtill.java @@ -28,34 +28,26 @@ import java.util.Map; @Service(value = "certPhoneResultUtill") public class CertPhoneResultUtill { - public String createCryptoTokenUrl = "https://sciapi.siren24.com:52099/authentication/api/v1.0/common/crypto/token"; - public String access_token = "994b5d96-3788-4239-a5b0-a0ba2e0cf089 "; - public String client_id = "5a2a72e2-16ce-420c-8816-57b3dda0e231"; - public CertPhoneResultUtill() throws Exception { - } + CertPhoneInfo certPhoneInfo = new CertPhoneInfo(); + public String createCryptoTokenUrl = certPhoneInfo.getCryptoUrl(); + public String access_token = certPhoneInfo.getAccessToken(); + public String client_id = certPhoneInfo.getClientId(); public String certResult( HttpServletRequest request ) throws Exception { String reqcryptotokenid = request.getParameter("crypto_token_id"); String integrity_value = request.getParameter("integrity_value"); - System.out.println("crypto_token_id -> " + reqcryptotokenid); - System.out.println("integrity_value -> " + integrity_value); - String id = "SKIP001"; - String url = "https://pcc.siren24.com/servlet/StoS"; - -// String reqInfo = certPhoneResultUtill.getReqData(id, crypto_token_id); -// -// String key = request.getSession().getAttribute("certPhoneKey").toString(); -// String iv = request.getSession().getAttribute("certPhoneIv").toString(); -// reqInfo = certPhoneResultUtill.getEncReqData(key, iv, reqInfo); + String id = certPhoneInfo.getId(); + String url = certPhoneInfo.getStosUrl(); //암호화키 얻기 Date currentDate = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String reqDate = sdf.format(currentDate); - String reqNo = "koipa_edu"; + + String reqNo = certPhoneInfo.getReqNo(); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); String cryptoToken = callCreateCryptoTokenAPI(currentDate, reqNo); @@ -109,7 +101,6 @@ public class CertPhoneResultUtill { String.class ); - System.out.println("Response: " + response.getBody()); ObjectMapper mapper = new ObjectMapper(); @@ -129,12 +120,8 @@ public class CertPhoneResultUtill { // Base64 디코딩 후 복호화 수행 byte[] cipherEnc = Base64.getDecoder().decode(retInfo); - String resData = new String(cipher.doFinal(cipherEnc), "UTF-8"); - - - /* ===== 복호화된 결과 ===== Commid = KTM @@ -223,7 +210,6 @@ public class CertPhoneResultUtill { req_info = Base64.getEncoder().encodeToString(encrypted); } catch(Exception e) { System.out.println(String.format("(APICERT)(ERR) getEncReqData Exception : %s", e.getMessage())); - e.printStackTrace(); throw e; } return req_info; @@ -239,7 +225,6 @@ public class CertPhoneResultUtill { return hmac256; } catch(Exception e) { System.out.println(String.format("(APICERT)(ERR) hmac256 Exception : %s", e.getMessage())); - e.printStackTrace(); throw e; } } @@ -255,7 +240,6 @@ public class CertPhoneResultUtill { symmetricKey = Base64.getEncoder().encodeToString(arrHashValue); } catch(Exception e) { System.out.println(String.format("(APICERT)(ERR) createSymmetricKey Exception : %s", e.getMessage())); - e.printStackTrace(); throw e; } return symmetricKey; @@ -272,7 +256,6 @@ public class CertPhoneResultUtill { isFail = false; } catch(Exception e) { System.out.println(String.format("(APICERT)(ERR) send Exception : %s", e.getMessage())); - e.printStackTrace(); throw e; } finally { if(bufferedWriter != null) { @@ -308,7 +291,6 @@ public class CertPhoneResultUtill { receiveMsg = stringBuilder.toString(); } catch(Exception e) { System.out.println(String.format("(APICERT)(ERR) receive Exception : %s", e.getMessage())); - e.printStackTrace(); throw e; } finally { if(bufferedReader != null) { @@ -333,20 +315,16 @@ public class CertPhoneResultUtill { return connection; } catch(Exception e) { System.out.println(String.format("(APICERT)(ERR) getURLConnection Exception : %s", e.getMessage())); - e.printStackTrace(); throw e; } finally { } } public String getReqData( String id, String reqcryptotokenid ) { - - JSONObject msgMap = new JSONObject(); msgMap.put("id", id); msgMap.put("reqcryptotokenid", reqcryptotokenid); - String reqData = msgMap.toJSONString(); return reqData; diff --git a/src/main/java/kcc/ve/cmm/crt/CertPhoneWebController.java b/src/main/java/kcc/ve/cmm/crt/CertPhoneWebController.java index ef3cb03e..4dcfd8e6 100644 --- a/src/main/java/kcc/ve/cmm/crt/CertPhoneWebController.java +++ b/src/main/java/kcc/ve/cmm/crt/CertPhoneWebController.java @@ -11,9 +11,6 @@ import org.springframework.web.client.RestTemplate; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; -import javax.crypto.Cipher; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; import java.util.Base64; @@ -32,10 +29,6 @@ public class CertPhoneWebController { @Resource(name = "certPhoneResultUtill") private CertPhoneResultUtill certPhoneResultUtill; - //로그인 체크 util - @Resource(name = "checkLoginUtil") - private CheckLoginUtil checkLoginUtil; - /** * 본인인증 */ @@ -45,100 +38,14 @@ public class CertPhoneWebController { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("jsonView"); - String result = "fail"; - - try { - String url = "https://sciapi.siren24.com:52099/authentication/api/v1.0/common/crypto/token"; - - Date currentDate = new Date(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); - String reqDate = sdf.format(currentDate); - String reqNo = "koipa_edu"; - String id = "SKIP001"; - String clientId = "5a2a72e2-16ce-420c-8816-57b3dda0e231"; - String srvNo = "001003"; - String retUrl = "https://dev-ipedu-cert.iten.co.kr/ipedu/web/cmm/crt/certPhoneReturn.do"; -// String retUrl = "https://dev-ipedu-cert.iten.co.kr/ipedu/web/user/login/actionSecurityLogin.do"; - - String accessToken = "994b5d96-3788-4239-a5b0-a0ba2e0cf089"; - - RestTemplate restTemplate = new RestTemplate(); - - // 1. Header 설정 - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON); - headers.set("Authorization", "bearer " + accessToken); - - // 2. Body 생성 - Map dataHeader = new HashMap<>(); - dataHeader.put("lang_code", "kr"); - - Map dataBody = new HashMap<>(); - dataBody.put("client_id", clientId); - dataBody.put("req_date", reqDate); - dataBody.put("req_no", reqNo); - dataBody.put("enc_mode", "1"); - - Map requestJson = new HashMap<>(); - requestJson.put("dataHeader", dataHeader); - requestJson.put("dataBody", dataBody); - - HttpEntity> entity = new HttpEntity<>(requestJson, headers); - - // 3. POST 요청 호출 - ResponseEntity response = restTemplate.exchange( - url, - HttpMethod.POST, - entity, - String.class - ); - - System.out.println("Response: " + response.getBody()); - - ObjectMapper mapper = new ObjectMapper(); - - Map json = mapper.readValue(response.getBody(), Map.class); - Map resDataBody = (Map) json.get("dataBody"); - - String cryptoTokenId = (String) resDataBody.get("crypto_token_id"); - String cryptoToken = (String) resDataBody.get("crypto_token"); - - String reqInfo = certPhoneRequestUtill.getReqData(id - , srvNo - , reqNo - , "72" + retUrl - , reqDate - , "H"); //4번시트 5 본인확인 서비스 요청데이터 암호화 항목참조 - - String symmetricKey = certPhoneRequestUtill.createSymmetricKey(reqDate, reqNo, cryptoToken); - - String key = symmetricKey.substring(0, 16); - String iv = symmetricKey.substring(symmetricKey.length() - 16, symmetricKey.length()); - - request.getSession().setAttribute("reqkey", key); - request.getSession().setAttribute("reqiv", iv); - - reqInfo = certPhoneRequestUtill.getEncReqData(key, iv, reqInfo); - - String hmacKey = symmetricKey.substring(0, 32); - byte[] hmacSha256 = certPhoneRequestUtill.hmac256(hmacKey.getBytes(), reqInfo.getBytes()); - String integrityValue = Base64.getEncoder().encodeToString(hmacSha256); - String baseEncStr = Base64.getEncoder().encodeToString(hmacSha256); - - modelAndView.addObject("reqInfo", reqInfo); - modelAndView.addObject("cryptoTokenId", cryptoTokenId); - modelAndView.addObject("integrityValue", integrityValue); - modelAndView.addObject("verSion", "3"); - result = "success"; - - } catch(Exception ex) { - System.out.println(ex.getMessage()); - } + String result = certPhoneRequestUtill.requestResult(request, modelAndView); modelAndView.addObject("result", result); return modelAndView; } + + @RequestMapping("/web/cmm/crt/certPhoneReturn.do") public String certPhoneReturn( HttpServletRequest request, ModelMap model ) throws Exception { @@ -153,36 +60,12 @@ public class CertPhoneWebController { public ModelAndView certPhoneRequestAjax_dev( HttpServletRequest request ) throws Exception { ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - // 1. 클라이언트에서 넘어온 평문 JSON 문자열 - String retInfo = request.getParameter("retInfo"); - System.out.println("plain retInfo -> " + retInfo); - - // 2. 세션에서 키/IV 가져오기 - String reqkey = request.getSession().getAttribute("reqkey").toString(); - String reqiv = request.getSession().getAttribute("reqiv").toString(); - - // 3. AES 암호화 설정 - SecretKeySpec secureKey = new SecretKeySpec(reqkey.getBytes("UTF-8"), "AES"); - Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - cipher.init(Cipher.ENCRYPT_MODE, secureKey, new IvParameterSpec(reqiv.getBytes("UTF-8"))); - - // 4. 평문 JSON 문자열을 바이트로 변환 후 암호화 - byte[] plainBytes = retInfo.getBytes("UTF-8"); - byte[] cipherBytes = cipher.doFinal(plainBytes); - - // 5. 암호문을 Base64 인코딩해서 최종 문자열로 변환 - String encRetInfo = Base64.getEncoder().encodeToString(cipherBytes); - - System.out.println("encrypted retInfo(Base64) -> " + encRetInfo); - - // 필요하다면 응답에 포함 - modelAndView.addObject("result", "success"); - modelAndView.addObject("encRetInfo", encRetInfo); + modelAndView = certPhoneRequestUtill.devLogin(request); return modelAndView; } + + } diff --git a/src/main/java/kcc/web/MainController.java b/src/main/java/kcc/web/MainController.java index d10baedb..9f64cac9 100644 --- a/src/main/java/kcc/web/MainController.java +++ b/src/main/java/kcc/web/MainController.java @@ -205,23 +205,7 @@ public class MainController { private String Globals_email_toEmail; @Value("#{globalSettings['Globals.email.toEmail.BCC']}") private String Globals_email_toEmail_BCC; - - /** SSO return URL */ - @Value("#{globalSettings['Globals.sso.returnSiteUrl']}") - private String returnSiteUrlGlobal; - @Value("#{globalSettings['Globals.sso.returnSiteCode']}") - private String returnSiteCodeGlobal; - - /** SSO 회원관련 URL */ - @Value("#{globalSettings['Globals.sso.joinUrl']}") - private String joinUrl_Global; - @Value("#{globalSettings['Globals.sso.modifyUrl']}") - private String modifyUrl_Global; - @Value("#{globalSettings['Globals.sso.idFindUrl']}") - private String idFindUrl_Global; - @Value("#{globalSettings['Globals.sso.pwFindUrl']}") - private String pwFindUrl_Global; - + /** 구동 환경 */ @Value("#{property['Globals.prod.islocal']}") private String environment; @@ -561,16 +545,6 @@ public class MainController { model.addAttribute("ssoLoginVO", ssoLoginVO); } - String returnSiteUrl = returnSiteUrlGlobal; - String returnSiteCode = returnSiteCodeGlobal; - - String joinUrl = joinUrl_Global; - String modifyUrl = modifyUrl_Global; - - model.addAttribute("returnSiteUrl", (URLEncoder.encode(returnSiteUrl))); - model.addAttribute("returnSiteCode", returnSiteCode); - model.addAttribute("joinUrl", joinUrl); - model.addAttribute("modifyUrl", modifyUrl); model.addAttribute("environment", environment); //로그인, 회원가입 URL 환경에 따른 구분 ex) local, dev, svr if(loginVO != null) diff --git a/src/main/resources/egovframework/egovProps/globals_svr.properties b/src/main/resources/egovframework/egovProps/globals_svr.properties index d9072573..632fc2aa 100644 --- a/src/main/resources/egovframework/egovProps/globals_svr.properties +++ b/src/main/resources/egovframework/egovProps/globals_svr.properties @@ -1,170 +1,79 @@ #----------------------------------------------------------------------- # -# globals.properties : \uc2dc\uc2a4\ud15c +# 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 +# 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) +# \uC6B4\uC601\uC11C\uBC84 \uD0C0\uC785(WINDOWS, UNIX) Globals.OsType = WINDOWS -# G4C \uc5f0\uacb0\uc6a9 IP (localhost) +# 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 +# DB\uC11C\uBC84 \uD0C0\uC785(mysql,oracle,altibase,tibero) - datasource \uBC0F sqlMap \uD30C\uC77C \uC9C0\uC815\uC5D0 \uC0AC\uC6A9\uB428 +Globals.DbType = postgresql +# \uAC1C\uBC1C\uC6A9 DB \uC11C\uBC84 tibero \uC5F0\uB3D9 +# \uD1B5\uD569DB - ipict1 +# schema - ipedu_scm +# User - ipedu_user +# password - qw3$kEduReal! +Globals.UserName= koipaEdu +Globals.Password= koipaEdu123 -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.DriverClassName=org.postgresql.Driver +#\uB85C\uCEEC DB +Globals.Url=jdbc:postgresql://192.168.0.60:5432/koipaEduDB?stringtype=unspecified +#\uC6B4\uC601 \uAC1C\uBC1CDB #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 +#\uC6B4\uC601 DB +#Globals.Url=jdbc:tibero:thin:@172.17.0.10:8629:copydb # MainPage Setting(admin) Globals.MainPage = /cmm/main/mainPage.do -#\ucee8\ud150\uce20 \ud30c\uc77c\uc704\uce58 +#\uCEE8\uD150\uCE20 \uD30C\uC77C\uC704\uCE58 #Globals.ckeditorUploadDir=/home/file/ckeditor/ Globals.ckeditorUploadDir=/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=ipedu +Globals.homepage.siteNm=\uC9C0\uC2DD\uC7AC\uC0B0\uBCF4\uD638\uAD50\uC721\uC2DC\uC2A4\uD15C -#\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 +#prod \uAC1C\uBC1C, \uC2E4\uC11C\uBC84 \uAD6C\uBD84\uAC12 +#\uB85C\uCEEC #Globals.prod.islocal=local -#\uc6b4\uc601 \uac1c\ubc1c +#\uC6B4\uC601 \uAC1C\uBC1C #Globals.prod.islocal=dev -#\uc6b4\uc601 +#\uC6B4\uC601 Globals.prod.islocal=real +#\uB300\uC6A9\uB7C9 innorix license +Globals.Innorix.License=dev +Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/ -#\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 \ No newline at end of file +# =========================== +# Siren24 \uC778\uC99D \uAD00\uB828 \uC124\uC815 +# =========================== +globals.certPhone.retUrl = https://dev-ipedu-cert.iten.co.kr/ipedu/ +globals.certPhone.cryptoUrl = https://sciapi.siren24.com:52099/authentication/api/v1.0/common/crypto/token +globals.certPhone.reqNo = koipa_edu +globals.certPhone.id = SKIP001 +globals.certPhone.clientId = 5a2a72e2-16ce-420c-8816-57b3dda0e231 +globals.certPhone.srvNo = 001003 +globals.certPhone.accessToken = 994b5d96-3788-4239-a5b0-a0ba2e0cf089 +globals.certPhone.stosUrl = https://pcc.siren24.com/servlet/StoS diff --git a/src/main/resources/egovframework/egovProps/globals_tLocal.properties b/src/main/resources/egovframework/egovProps/globals_tLocal.properties index 5d4124ac..5978abf5 100644 --- a/src/main/resources/egovframework/egovProps/globals_tLocal.properties +++ b/src/main/resources/egovframework/egovProps/globals_tLocal.properties @@ -1,31 +1,31 @@ #----------------------------------------------------------------------- # -# globals.properties : \uc2dc\uc2a4\ud15c +# 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 +# 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) +# \uC6B4\uC601\uC11C\uBC84 \uD0C0\uC785(WINDOWS, UNIX) Globals.OsType = WINDOWS -# G4C \uc5f0\uacb0\uc6a9 IP (localhost) +# 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 +# DB\uC11C\uBC84 \uD0C0\uC785(mysql,oracle,altibase,tibero) - datasource \uBC0F sqlMap \uD30C\uC77C \uC9C0\uC815\uC5D0 \uC0AC\uC6A9\uB428 Globals.DbType = postgresql -# \uac1c\ubc1c\uc6a9 DB \uc11c\ubc84 tibero \uc5f0\ub3d9 -# \ud1b5\ud569DB - ipict1 +# \uAC1C\uBC1C\uC6A9 DB \uC11C\uBC84 tibero \uC5F0\uB3D9 +# \uD1B5\uD569DB - ipict1 # schema - ipedu_scm # User - ipedu_user # password - qw3$kEduReal! @@ -33,143 +33,47 @@ Globals.UserName= koipaEdu Globals.Password= koipaEdu123 Globals.DriverClassName=org.postgresql.Driver -#\ub85c\uceec DB +#\uB85C\uCEEC DB Globals.Url=jdbc:postgresql://192.168.0.60:5432/koipaEduDB?stringtype=unspecified -#\uc6b4\uc601 \uac1c\ubc1cDB +#\uC6B4\uC601 \uAC1C\uBC1CDB #Globals.Url=jdbc:tibero:thin:@10.255.3.58:8629:copydb -#\uc6b4\uc601 DB +#\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 +#\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=ipedu +Globals.homepage.siteNm=\uC9C0\uC2DD\uC7AC\uC0B0\uBCF4\uD638\uAD50\uC721\uC2DC\uC2A4\uD15C -#\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 +#prod \uAC1C\uBC1C, \uC2E4\uC11C\uBC84 \uAD6C\uBD84\uAC12 +#\uB85C\uCEEC Globals.prod.islocal=local -#\uc6b4\uc601 \uac1c\ubc1c +#\uC6B4\uC601 \uAC1C\uBC1C #Globals.prod.islocal=dev -#\uc6b4\uc601 +#\uC6B4\uC601 #Globals.prod.islocal=real - -#\ub300\uc6a9\ub7c9 innorix license +#\uB300\uC6A9\uB7C9 innorix license Globals.Innorix.License=dev -Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/ +Globals.Innorix.FilePath=/usr/local/tomcat/file/sht/ -#\uad50\uc721 \uc54c\ub9bc \uba54\uc77c \ud15c\ud50c\ub9bf -#Globals.edu.mail.template=/template/offeduMain.html -Globals.edu.mail.template=template/offeduMain.html \ No newline at end of file + +# =========================== +# Siren24 \uC778\uC99D \uAD00\uB828 \uC124\uC815 +# =========================== +globals.certPhone.retUrl=https://dev-ipedu-cert.iten.co.kr/ipedu/ +globals.certPhone.cryptoUrl=https://sciapi.siren24.com:52099/authentication/api/v1.0/common/crypto/token +globals.certPhone.reqNo=koipa_edu +globals.certPhone.id=SKIP001 +globals.certPhone.clientId=5a2a72e2-16ce-420c-8816-57b3dda0e231 +globals.certPhone.srvNo=001003 +globals.certPhone.accessToken=994b5d96-3788-4239-a5b0-a0ba2e0cf089 +globals.certPhone.stosUrl=https://pcc.siren24.com/servlet/StoS diff --git a/src/main/resources/egovframework/spring/com/context-properties.xml b/src/main/resources/egovframework/spring/com/context-properties.xml index 90f2d53b..de73395e 100644 --- a/src/main/resources/egovframework/spring/com/context-properties.xml +++ b/src/main/resources/egovframework/spring/com/context-properties.xml @@ -25,5 +25,5 @@ - +