Merge branch 'JIWOO'

This commit is contained in:
JIWOO 2024-08-21 10:40:37 +09:00
commit beb3cfbc4f
156 changed files with 2771 additions and 52 deletions

View File

@ -0,0 +1,433 @@
package seed.com.gtm.seedfile;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.ibatis.logging.Log;
import org.apache.ibatis.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import seed.com.gtm.util.CommonsCompress;
import seed.com.gtm.util.JSPUtil;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import seed.utils.SeedDateUtil;
import seed.utils.SeedProperties;
import seed.utils.SeedUtils;
@Controller
public class SeedFileController {
@Autowired
private SeedFileService service;
protected Log log = LogFactory.getLog(this.getClass());
@RequestMapping(value="/seed/extra/temp/file.do", method=RequestMethod.POST)
public @ResponseBody HashMap<String, Object> tempFileUpload(HttpSession session, HttpServletRequest req, MultipartHttpServletRequest mreq){
String siteIdx = SeedUtils.setReplaceNull(session.getAttribute("siteIdx"));
if(siteIdx.equals("")){
siteIdx = SeedUtils.setReplaceNull(req.getParameter("siteIdx"));
}
// 파일 멀티로 받음
//MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) req;
Iterator<String> fileNames = mreq.getFileNames();
String funcType = req.getParameter("fileFuncType");
String copyContractYn = SeedUtils.setReplaceNull(req.getParameter("copyContractYn"));
String fileName = "";
String reFileName = "";
String fileType = "";
Long fileSize = 0L;
boolean success = false;
SeedProperties seedProperties = new SeedProperties();
String tempPath = "";
if(funcType.equals("trublchargermng")){
tempPath = seedProperties.getConfigValue("root.path");
}else{
tempPath = seedProperties.getConfigValue("file.temp.path");
}
//SeedUtils.setSeedMkDirs(rootPath + "/" + siteIdx + "/upload/tempFiles/"+funcType);
/*MultipartFile uploadFile = null;
if(copyContractYn.equals("Y")){
uploadFile = mreq.getFile("upFile");
}else if(copyContractYn.equals("N")){
uploadFile = mreq.getFile("upFile2");
}else{
uploadFile = mreq.getFile("upFile");
}
System.out.println("2222");*/
while(fileNames.hasNext())
{
String fileNm = fileNames.next();
MultipartFile mFile = mreq.getFile(fileNm);
SeedDateUtil seedDateUtil = new SeedDateUtil();
//File Null Check
if(mFile.getSize()!=0){
fileName = mFile.getOriginalFilename();
reFileName = funcType+"_" + seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMddHHmmss") + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
fileType = mFile.getOriginalFilename().substring(mFile.getOriginalFilename().lastIndexOf(".")+1);
if (!Pattern.matches("(?i)^[\\d\\D]*\\.(txt|jpeg|jpg|png|gif|bmp|mp3|mp4|hwp|doc|docx|xls|xlsx|ppt|pptx|pdf|zip|alz)$","."+fileType)) {
success = false;
session.setAttribute("sSiteIdx", siteIdx);
session.setAttribute("message", "(message)해당 파일은 업로드 하실수 없습니다.");
session.setAttribute("self", "history");
session.setAttribute("url", "");
}else{
reFileName = reFileName+"."+fileType;
File makeFile = null;
if(funcType.equals("trublchargermng")){
//위원회 사지파일만 site 밑으로 저장
makeFile = new File(tempPath+"/"+siteIdx+"/upload/tempFiles/"+funcType+"/"+reFileName);
}else{
makeFile = new File(tempPath+"/"+siteIdx+"/"+funcType+"/"+reFileName);
}
log.warn(tempPath+"/"+siteIdx+"/"+funcType+"/"+reFileName);
//경로상에 파일이 존재하지 않을 경우
if(! makeFile.exists()){
//경로에 해당하는 디렉토리들을 생성
if(makeFile.getParentFile().mkdirs()){
try {
makeFile.createNewFile(); //이후 파일 생성
} catch (IOException e) {
// TODO Auto-generated catch block
log.warn("SeedFileController 템프파일 업로드 에러1");
}
}
}
try {
mFile.transferTo(makeFile); //임시로 저장된 multipartFile을 실제 파일로 전송
} catch (IllegalStateException e) {
log.warn("SeedFileController 템프파일 업로드 에러2");
} catch (IOException e) {
log.warn("SeedFileController 템프파일 업로드 에러3");
}
fileSize = mFile.getSize();
success = true;
}
}
/*if(uploadFile!=null && !uploadFile.isEmpty()){
SeedDateUtil seedDateUtil = new SeedDateUtil();
fileName = uploadFile.getOriginalFilename();
reFileName = funcType+"_" + seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMddHHmmss") + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
fileType = uploadFile.getOriginalFilename().substring(uploadFile.getOriginalFilename().lastIndexOf(".")+1);
if (!Pattern.matches("(?i)^[\\d\\D]*\\.(txt|jpeg|jpg|png|gif|bmp|mp3|mp4|hwp|doc|docx|xls|xlsx|ppt|pptx|pdf|zip|alz)$","."+fileType)) {
success = false;
session.setAttribute("sSiteIdx", siteIdx);
session.setAttribute("message", "(message)해당 파일은 업로드 하실수 없습니다.");
session.setAttribute("self", "history");
session.setAttribute("url", "");
}else{
reFileName = reFileName+"."+fileType;
File makeFile = new File(rootPath+"/"+siteIdx+"/upload/tempFiles/"+funcType+"/"+reFileName);
System.out.println(rootPath+"/"+siteIdx+"/upload/tempFiles/"+funcType+"/"+reFileName);
try {
uploadFile.transferTo(makeFile);
} catch (IllegalStateException e) {
System.out.println("SeedFileController 템프파일 업로드 에러");
} catch (IOException e) {
System.out.println("SeedFileController 템프파일 업로드 에러");
}
fileSize = uploadFile.getSize();
success = true;
}
}*/
}
//JSON 변환을 위한
HashMap<String, Object> fileInfo = new HashMap<String, Object>();
fileInfo.put("fileName",fileName);
fileInfo.put("reFileName",reFileName);
fileInfo.put("fileSize",fileSize);
fileInfo.put("fileType",fileType);
fileInfo.put("funcType",funcType);
fileInfo.put("copyContractYn",copyContractYn);
return fileInfo;
}
@RequestMapping("/seed/extra/down/file.do")
public ModelAndView fileDown(ModelMap map, HttpSession session ,HttpServletResponse response,HttpServletRequest request,@RequestParam Map<String,Object> paramMap){
SeedProperties seedProperties = new SeedProperties();
String rootPath = seedProperties.getConfigValue("file.real.path");
String dataIdx = SeedUtils.setReplaceNull(paramMap.get("dataIdx"));
String pathKey1 = SeedUtils.setReplaceNull(paramMap.get("pathKey1"));
String pathKey2 = SeedUtils.setReplaceNull(paramMap.get("pathKey2"));
String funcType = SeedUtils.setReplaceNull(paramMap.get("funcType"));
if(funcType.equals("trublchargermng")){
rootPath = seedProperties.getConfigValue("root.path");
}
String path = SeedUtils.setReplaceNull(paramMap.get("filePath"));
pathKey1 = SeedUtils.setFilePathReplaceAll(pathKey1);
pathKey2 = SeedUtils.setFilePathReplaceAll(pathKey2);
funcType = SeedUtils.setFilePathReplaceAll(funcType);
String fileReName = "";
String fileName = "";
String filePath = rootPath + "/" + pathKey1 + "/"+funcType;
if(!"".equals(dataIdx) && !"".equals(funcType)){
//funcType이 download일 경우 download폴더 하위의 일반 파일 특정 파일을 다운로드 하는 로직으로 동작 하게 됩니다.
if("download".equals(funcType)){
fileReName = dataIdx;
fileName = dataIdx;
filePath = rootPath + "/" + pathKey1 + "/"+funcType;
}else if("mediation".equals(funcType) || "trublreqstmng".equals(funcType) || "trublcfrncmng".equals(funcType)){
Map<String, Object> fileList = service.caseFileOne(paramMap);
fileReName = SeedUtils.setReplaceNull(fileList.get("FILE_ORGNAME"));
fileName = SeedUtils.setReplaceNull(fileList.get("FILE_NAME"));
if(SeedUtils.setReplaceNull(paramMap.get("downUserl")).equals("user")){
//본인인증 시간 체크
if(SeedUtils.setReplaceNull(session.getAttribute("isGubun")).equals("")){
return new ModelAndView("redirect:/user/mediation/case/01/155/checkMediationStep01.do");
}
if(!SeedUtils.setReplaceNull(session.getAttribute("hpName")).equals("")){
paramMap.put("fileNo", SeedUtils.setReplaceNull(fileList.get("FILE_NO")));
paramMap.put("seqNo", SeedUtils.setReplaceNull(fileList.get("SEQ_NO")));
paramMap.put("hpName", SeedUtils.setReplaceNull(session.getAttribute("hpName")));
paramMap.put("isGubun", SeedUtils.setReplaceNull(session.getAttribute("isGubun")));
service.hisInsert(paramMap);
}
}
if(funcType.equals("trublchargermng")){
filePath = rootPath + "/" + pathKey1 + "/upload/uploadFiles/"+funcType+"/"+pathKey2;
}else{
filePath = rootPath + "/" + pathKey1 + "/"+funcType+"/"+pathKey2;
}
}else{
Map<String, Object> fileList = service.fileOne(paramMap);
fileReName = SeedUtils.setReplaceNull(fileList.get("EXTRA_FILE_RENAME"));
fileName = SeedUtils.setReplaceNull(fileList.get("EXTRA_FILE_NAME"));
if(funcType.equals("trublchargermng")){
filePath = rootPath + "/" + pathKey1 + "/upload/uploadFiles/"+funcType+"/"+pathKey2;
}else{
filePath = rootPath + "/" + pathKey1 + "/"+funcType+"/"+pathKey2;
}
}
}
ModelAndView mv = new ModelAndView("filedownLoad");
mv.addObject("fileReName", fileReName);
mv.addObject("fileName", fileName);
mv.addObject("filePath", filePath);
return mv;
}
@RequestMapping("/seed/extra/down/filedown.do")
public ModelAndView fileDown(HttpServletResponse response, HttpSession session, HttpServletRequest request)throws Exception{
EgovMap params;
params = JSPUtil.makeRequestParams(request, session, true);
log.warn(">>>>>>>>params<<<<<<<<<"+params);
SeedProperties seedProperties = new SeedProperties();
String fileOrgname = SeedUtils.setReplaceNull(params.get("fileOrgname"));
String fileName = SeedUtils.setReplaceNull(params.get("fileName"));
String filePath = SeedUtils.setReplaceNull(params.get("filePath"));
ModelAndView mv = new ModelAndView("filedownLoad");
mv.addObject("fileReName", fileOrgname);
mv.addObject("fileName", fileName);
mv.addObject("filePath", filePath);
return mv;
}
@RequestMapping("/seed/extra/down/zipfile.do")
public ModelAndView zipfileDown(HttpServletResponse response, HttpSession session, HttpServletRequest request)throws Exception{
EgovMap params;
params = JSPUtil.makeRequestParams(request, session, true);
log.warn(">>>>>>>>params<<<<<<<<<"+params);
SeedProperties seedProperties = new SeedProperties();
SeedDateUtil seedDateUtil = new SeedDateUtil();
String rootPath = seedProperties.getConfigValue("file.real.path");
String pathKey = SeedUtils.setReplaceNull(params.get("pathKey"));
String filePath = rootPath + "/" + pathKey + "/zipDown/" + params.get("memberId").toString()+"/"+seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMdd");
String fileCopyPath = rootPath + "/" + pathKey + "/zipDown/"
+ params.get("memberId").toString()+"/"+seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMdd")
+"/"+params.get("rceptNo").toString();
System.out.println("filePath:" + filePath);
System.out.println("fileCopyPath: "+fileCopyPath);
List <File> filelist = new ArrayList<File>();
List fileList = service.caseFileListEgov(params);
String fileGubunNm = "";
File orgFile = new File(filePath);
File copyFile = new File(fileCopyPath);
if(!orgFile.exists()){
//경로에 해당하는 디렉토리들을 생성
orgFile.mkdirs();
}
if(!copyFile.exists()){
//경로에 해당하는 디렉토리들을 생성
copyFile.mkdirs();
}
if(orgFile.exists() && copyFile.exists()){
for(int i = 0; i < fileList.size(); i++){
//System.out.println(i);
EgovMap emap = new EgovMap();
emap.putAll((EgovMap) fileList.get(i));
FileInputStream fis = null;
FileOutputStream fos = null;
BufferedInputStream bufferedInputStream = null;
BufferedOutputStream bufferedOutputStream = null;
//파일복사
try {
//FileInputStream fis = new FileInputStream(emap.get("filePath").toString()+emap.get("fileOrgname").toString());
if(emap.get("fileFunc").toString().equals("mediation")){
if(emap.get("filePath").toString().indexOf(".") <= -1){
fis = new FileInputStream(emap.get("filePath").toString() + "/" + emap.get("fileOrgname").toString());
}else{
fis = new FileInputStream(emap.get("filePath").toString());
}
}else{
fis = new FileInputStream(emap.get("filePath").toString() + "/" + emap.get("fileOrgname").toString());
}
fos = new FileOutputStream(fileCopyPath+"/"+emap.get("fileName").toString());
bufferedInputStream = new BufferedInputStream(fis);
bufferedOutputStream = new BufferedOutputStream(fos);
byte[] readBuffer = new byte[1024];
int data = 0;
//System.out.println("111111111");
while(bufferedInputStream.read(readBuffer, 0, readBuffer.length) != -1) {
//fos.write(data);
//System.out.println("aaaaaa");
bufferedOutputStream.write(readBuffer);
//System.out.println("bbbbbbb");
}
//System.out.println("22222222222");
} catch (IOException e) {
// TODO Auto-generated catch block
//여기서 에러남?
e.printStackTrace();
}finally{
try
{
// 파일 닫기. 여기에도 try/catch가 필요하다.
// 보조스트림을 닫으면 원스트림도 닫힌다.
if(bufferedInputStream != null){
bufferedInputStream.close();
}
if(bufferedOutputStream != null){
bufferedOutputStream.close();
}
if(fis != null){
fis.close();
}
if(fos != null){
fos.close();
}
}
catch (Exception e)
{
System.out.println("close failed!!!" + e);
}
}
filelist.add(new File(fileCopyPath+"/"+emap.get("fileName").toString()));
fileGubunNm = emap.get("fileGubunNm").toString();
}
}
Random generator = new Random();
String zipNm = params.get("rceptNo").toString()+"("+fileGubunNm+")_"+ seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMddHHmmss") + ".zip";
File zippedFile = new File (filePath);
//File zippedFile = new File (filePath, zipNm);
if(!zippedFile.exists()){
//경로에 해당하는 디렉토리들을 생성
zippedFile.mkdirs();
}
if(zippedFile.exists()){
zippedFile = new File (filePath+"/"+zipNm);
try {
//이후 파일 생성
CommonsCompress commonscompress = new CommonsCompress();
commonscompress.zip(filelist, new BufferedOutputStream(new FileOutputStream(zippedFile)) );
} catch (IOException e) {
// TODO Auto-generated catch block
log.warn("SeedFileController error1");
}
}
ModelAndView mv = new ModelAndView("filedownLoad");
mv.addObject("fileReName", zipNm);
mv.addObject("fileName", zipNm);
mv.addObject("filePath", filePath);
return mv;
}
}

View File

@ -0,0 +1,55 @@
package seed.com.gtm.util;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.util.List;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
public class CommonsCompress {
// 리스트로 파일을 받아 zip로 압축
public void zip(List<File> src, OutputStream os) throws IOException {
ZipArchiveOutputStream zos = new ZipArchiveOutputStream(os);
//20190916 org
//zos.setEncoding(Charset.defaultCharset().name());
zos.setEncoding("UTF-8");
FileInputStream fis = null;
BufferedInputStream bis = null;
int size = 8*1024;
int length;
ZipArchiveEntry ze;
byte[] buf = new byte[size];
try{
if (src.size() > 0) {
for (int i = 0; i < src.size(); i++) {
//System.out.println("name: " + src.get(i).getName());
ze = new ZipArchiveEntry(src.get(i).getName());
zos.putArchiveEntry(ze);
fis = new FileInputStream(src.get(i));
bis = new BufferedInputStream(fis, size);
while ((length = bis.read(buf, 0, buf.length)) >= 0) {
zos.write(buf, 0, length);
}
}
bis.close();
fis.close();
zos.closeArchiveEntry();
}
}catch(IOException e){
System.out.println("@@ CommonsCompress IOException @@");
e.printStackTrace();
}finally{
if(zos != null){
zos.close();
}
}
}
}

View File

@ -0,0 +1,374 @@
package seed.com.gtm.util;
import java.io.UnsupportedEncodingException;
import java.lang.Character.UnicodeBlock;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.json.JSONObject;
import org.json.XML;
import egovframework.rte.psl.dataaccess.util.EgovMap;
@SuppressWarnings("rawtypes")
public class JSPUtil {
private JSPUtil() {
}
public static EgovMap makeRequestParams(HttpServletRequest request, HttpSession session, boolean ishan) {
EgovMap params = new EgovMap();
Enumeration<?> e = request.getParameterNames();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
String[] Values = request.getParameterValues(key);
/*if (!(key.startsWith("content") || key.endsWith("Content"))) {
for (int i = 0; i < Values.length; i++) {
//한글깨짐문제로 주석처리
//if(ishan) Values[i] = convUTF8(Values[i]);
Values[i] = SQLInjection(Values[i]);
}
}*/
if (key.startsWith("encodingFilter."))
continue;
if (key.startsWith("openSessionInViewFilter."))
continue;
if (key.startsWith("multipartFilter."))
continue;
if (key.startsWith("org."))
continue;
if (key.startsWith("javax."))
continue;
// 배열
if (Values.length > 1) {
params.put(key, Values);
} else {
params.put(key, Values[0]);
}
}
Enumeration<?> ee = request.getAttributeNames();
while (ee.hasMoreElements()) {
String key = (String) ee.nextElement();
if (key.startsWith("encodingFilter."))
continue;
if (key.startsWith("openSessionInViewFilter."))
continue;
if (key.startsWith("multipartFilter."))
continue;
if (key.startsWith("org."))
continue;
if (key.startsWith("javax."))
continue;
params.put(key, request.getAttribute(key));
}
Enumeration<?> eee = session.getAttributeNames();
while (eee.hasMoreElements()) {
String key = (String) eee.nextElement();
if (key.startsWith("encodingFilter."))
continue;
if (key.startsWith("openSessionInViewFilter."))
continue;
if (key.startsWith("multipartFilter."))
continue;
if (key.startsWith("org."))
continue;
if (key.startsWith("javax."))
continue;
params.put(key, session.getAttribute(key));
}
return params;
}
public static EgovMap makeRequestClipParams(HttpServletRequest request, HttpSession session, boolean ishan) {
EgovMap params = new EgovMap();
Enumeration<?> e = request.getParameterNames();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
String[] Values = request.getParameterValues(key);
if (!(key.startsWith("content") || key.endsWith("Content"))) {
for (int i = 0; i < Values.length; i++) {
//한글깨짐문제로 주석처리
//if(ishan) Values[i] = convUTF8(Values[i]);
Values[i] = SQLInjection(Values[i]);
}
}
if (!key.startsWith("CLIP"))
continue;
// 배열
if (Values.length > 1) {
params.put(key, Values);
} else {
params.put(key, Values[0]);
}
}
Enumeration<?> ee = request.getAttributeNames();
while (ee.hasMoreElements()) {
String key = (String) ee.nextElement();
if (!key.startsWith("CLIP"))
continue;
params.put(key, request.getAttribute(key));
}
Enumeration<?> eee = session.getAttributeNames();
while (eee.hasMoreElements()) {
String key = (String) eee.nextElement();
if (key.startsWith("encodingFilter."))
continue;
if (key.startsWith("openSessionInViewFilter."))
continue;
if (key.startsWith("multipartFilter."))
continue;
if (key.startsWith("org."))
continue;
if (key.startsWith("javax."))
continue;
params.put(key, session.getAttribute(key));
}
return params;
}
public static EgovMap makeRequestParams1(HttpServletRequest request, HttpSession session, boolean ishan) {
EgovMap params = new EgovMap();
Enumeration<?> e = request.getParameterNames();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
String[] Values = request.getParameterValues(key);
if (!(key.startsWith("content") || key.endsWith("Content"))) {
for (int i = 0; i < Values.length; i++) {
//한글깨짐문제로 주석처리
//if(ishan) Values[i] = convUTF8(Values[i]);
Values[i] = Values[i];
}
}
if (key.startsWith("encodingFilter."))
continue;
if (key.startsWith("openSessionInViewFilter."))
continue;
if (key.startsWith("multipartFilter."))
continue;
if (key.startsWith("org."))
continue;
if (key.startsWith("javax."))
continue;
// 배열
if (Values.length > 1) {
params.put(key, Values);
} else {
params.put(key, Values[0]);
}
}
Enumeration<?> ee = request.getAttributeNames();
while (ee.hasMoreElements()) {
String key = (String) ee.nextElement();
if (key.startsWith("encodingFilter."))
continue;
if (key.startsWith("openSessionInViewFilter."))
continue;
if (key.startsWith("multipartFilter."))
continue;
if (key.startsWith("org."))
continue;
if (key.startsWith("javax."))
continue;
params.put(key, request.getAttribute(key));
}
Enumeration<?> eee = session.getAttributeNames();
while (eee.hasMoreElements()) {
String key = (String) eee.nextElement();
if (key.startsWith("encodingFilter."))
continue;
if (key.startsWith("openSessionInViewFilter."))
continue;
if (key.startsWith("multipartFilter."))
continue;
if (key.startsWith("org."))
continue;
if (key.startsWith("javax."))
continue;
params.put(key, session.getAttribute(key));
}
return params;
}
public static EgovMap makeRequestParams(HttpServletRequest request, boolean ishan) {
EgovMap params = new EgovMap();
Enumeration<?> e = request.getParameterNames();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
String[] Values = request.getParameterValues(key);
if (!(key.startsWith("content") || key.endsWith("Content"))) {
for (int i = 0; i < Values.length; i++) {
//한글깨짐문제로 주석처리
//if(ishan) Values[i] = convUTF8(Values[i]);
Values[i] = SQLInjection(Values[i]);
}
}
if (key.startsWith("encodingFilter."))
continue;
if (key.startsWith("openSessionInViewFilter."))
continue;
if (key.startsWith("multipartFilter."))
continue;
if (key.startsWith("org."))
continue;
if (key.startsWith("javax."))
continue;
// 배열
if (Values.length > 1) {
params.put(key, Values);
} else {
params.put(key, Values[0]);
}
}
Enumeration<?> ee = request.getAttributeNames();
while (ee.hasMoreElements()) {
String key = (String) ee.nextElement();
if (key.startsWith("encodingFilter."))
continue;
if (key.startsWith("openSessionInViewFilter."))
continue;
if (key.startsWith("multipartFilter."))
continue;
if (key.startsWith("org."))
continue;
if (key.startsWith("javax."))
continue;
params.put(key, request.getAttribute(key));
}
return params;
}
@SuppressWarnings("deprecation")
public static String SQLInjection(String str) {
String rStr = "";
for (int i = 0; i < str.length(); i++) {
if (JSPUtil.isSpecial(str.charAt(i))) {
rStr += URLEncoder.encode(String.valueOf(str.charAt(i)));
} else {
rStr += String.valueOf(str.charAt(i));
}
}
return rStr;
}
private static String convUTF8(String str) {
String rStr = "";
try {
rStr = new String(str.getBytes("8859_1"),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
rStr = str;
}
return rStr;
}
private static boolean isSpecial(char ch) {
char[] badChars = { '\'', '"', '%', '*', '<', '>', '&', ';', '\\', '=', '+', '^' };
for (int i = 0; i < badChars.length; i++) {
if (badChars[i] == ch)
return true;
}
return false;
}
public static boolean isHangule(String str) {
for(int i = 0 ; i < str.length() ; i++)
{
char ch = str.charAt(i);
Character.UnicodeBlock unicodeBlock = Character.UnicodeBlock.of(ch);
if(UnicodeBlock.HANGUL_SYLLABLES.equals(unicodeBlock) ||
UnicodeBlock.HANGUL_COMPATIBILITY_JAMO.equals(unicodeBlock) ||
UnicodeBlock.HANGUL_JAMO.equals(unicodeBlock))
return true;
}
return false;
}
public static String tagReplaceAll(String src) {
if (src == null)
src = "";
else {
src = src.trim();
src = src.replaceAll("&amp;", "&");
src = src.replaceAll("&lt;", "<");
src = src.replaceAll("&gt;", ">");
src = src.replaceAll("script", "");
src = src.replace("&quot;", "\"");
}
return src;
}
public static Object fixNull(Object obj) {
if (obj == null)
return null;
else
return obj;
}
public static EgovMap fixNull(EgovMap map) {
if (map == null)
return map;
for (int i = 0; i < map.size(); i++) {
if (map.getValue(i) == null){
map.setValue(i, "");
}else{
//tag modify add 2016.07.02 최병기
map.setValue(i, tagReplaceAll(map.getValue(i).toString()));
}
}
return map;
}
public static List<?> fixNull(List<?> list) {
if (list == null)
return list;
for (int i = 0; i < list.size(); i++) {
fixNull((EgovMap) list.get(i));
}
return list;
}
public static void fixNull(EgovMap map, String key, Object value) {
if (map.get(key) == null)
map.put(key, value);
}
public static String addZero(int param, int size) {
String ret = Integer.toString(param);
int length = ret.length();
for (int i = 0; i < size - length; i++) {
ret = "0" + ret;
}
return ret;
}
}

View File

@ -152,7 +152,7 @@
$("#paramFrm").submit();
}
</script>
<script src="/js/jquery.form.js"></script>
<script src="/js/seedFileUtil.js"></script>
<script src="/js/seed/jquery.form.js"></script>
<script src="/js/seed/seedFileUtil.js"></script>
</body>
</html>

View File

@ -17,36 +17,6 @@
<link rel="stylesheet" href="/kccadrPb/adm/css/content.css">
<link rel="stylesheet" href="/kccadrPb/adm/css/content_media.css">
<!-- AS-IS 분쟁조정 css -->
<link rel="stylesheet" href="/css/seed/seed.reset.css">
<link rel="stylesheet" href="/css/seed/seed.layout.css">
<link rel="stylesheet" href="/css/seed/layout.css">
<link rel="stylesheet" href="/css/seed/button.css">
<link rel="stylesheet" href="/css/seed/seed.contents.css">
<link rel="stylesheet" href="/css/seed/seed.mediaquery.css">
<link rel="stylesheet" href="/css/seed/lib/jquery.mCustomScrollbar.min.css">
<link rel="stylesheet" href="/css/seed/jquery-ui.css"/>
<link rel="stylesheet" href="/css/seed/jquery-ui.min.css"/>
<link rel="stylesheet" href="/css/seed/smartPop.css"/>
<link rel="stylesheet" href="/css/seed/space.css"/>
<link rel="stylesheet" href="/css/seed/picker.default.css">
<link rel="stylesheet" href="/css/seed/picker.default.date.css">
<link rel="stylesheet" href="/css/seed/case/common.css">
<!-- 캘린더css -->
<link rel="stylesheet" href="/css/seed/case/fullcalendar.min.css">
<link rel="stylesheet" href="/css/seed/case/fullcalendar.print.css" media='print'>
<link rel="stylesheet" href="/css/seed/case/scheduler.min.css">
<link type="text/css" rel="stylesheet" href="/css/case/jquery.qtip.css" />
<link rel="stylesheet" type="text/css" href="/css/seed/clipreport.css">
<link rel="stylesheet" type="text/css" href="/css/seed/UserConfig.css">
<link rel="stylesheet" type="text/css" href="/css/seed/font.css">
<!-- AS-IS 분쟁조정 css -->
<!-- script -->
<script src="/kccadrPb/adm/script/jquery-3.5.0.js"></script>
<script src="/kccadrPb/adm/script/common.js"></script>
@ -59,27 +29,85 @@
<script src="<c:url value='/js/kccadr/kccadrCom.js' />"></script>
<script src="<c:url value='/js/antdatepicker/moment.min.js'/>"></script>
<!-- AS-IS 분쟁조정 js -->
<!-- 라이브러리, 플러그인 -->
<script src="/js/lib/jquery-1.9.1.min.js"></script>
<script src="/js/lib/jquery-ui.min.js"></script>
<script src="/js/lib/jquery.blockUI.js"></script>
<script src="/js/lib/jquery.pjax.js"></script>
<script src="/js/lib/modernizr-custom.js"></script>
<script src="/js/lib/jquery.mCustomScrollbar.concat.min.js"></script>
<script src="/js/seed/lib/jquery.bxslider.min.js"></script>
<script src="/js/lib/picker.js"></script>
<script src="/js/lib/picker.date.js"></script>
<script src="/js/lib/legacy.js"></script>
<script src="/js/lib/base64.js"></script>
<!-- 라이브러리, 플러그인 끝 -->
<script src="/js/seed/jquery.seed.js"></script>
<script src="/js/seed/smartPop.js"></script>
<script src="/js/seed/seed.common.js"></script>
<script src="/js/seed/seed.tab.js"></script>
<script src="/js/seed/seed.app.js"></script>
<!-- AS-IS 분쟁조정 js -->
<!-- AS-IS 분쟁조정 -->
<link rel="shortcut icon" href="/img/seed/favicon.ico" type="image/x-icon">
<link rel="icon" href="/img/seed/favicon.ico" type="image/x-icon">
<!-- css -->
<link rel="stylesheet" href="/css/seed/seed.reset.css">
<link rel="stylesheet" href="/css/seed/seed.layout.css">
<link rel="stylesheet" href="/css/seed/layout.css">
<link rel="stylesheet" href="/css/seed/button.css">
<link rel="stylesheet" href="/css/seed/seed.contents.css">
<link rel="stylesheet" href="/css/seed/seed.mediaquery.css">
<!-- <link rel="stylesheet" href="/css/lib/jquery.mCustomScrollbar.min.css"> -->
<link rel="stylesheet" href="/css/seed/jquery-ui.css"/>
<link rel="stylesheet" href="/css/seed/jquery-ui.min.css"/>
<link rel="stylesheet" href="/css/seed/smartPop.css"/>
<link rel="stylesheet" href="/css/seed/space.css"/>
<link rel="stylesheet" href="/css/seed/picker.default.css">
<link rel="stylesheet" href="/css/seed/picker.default.date.css">
<!-- <link rel="stylesheet" href="/css/case/common.css"> -->
<!-- 캘린더css -->
<!-- <link rel="stylesheet" href="/css/case/fullcalendar.min.css">
<link rel="stylesheet" href="/css/case/fullcalendar.print.css" media='print'>
<link rel="stylesheet" href="/css/case/scheduler.min.css">
<link type="text/css" rel="stylesheet" href="/css/case/jquery.qtip.css" /> -->
<link rel="stylesheet" type="text/css" href="/css/seed/clipreport.css">
<link rel="stylesheet" type="text/css" href="/css/seed/UserConfig.css">
<link rel="stylesheet" type="text/css" href="/css/seed/font.css">
<!-- css -->
<!--[if lt IE 9]>
<script src="/js/lib/polyfill/IE9.js"></script>
<script src="/js/lib/polyfill/respond.min.js"></script>
<![endif]-->
<!-- js -->
<!-- 필요한 js 추후 추가 예정 -->
<!-- 라이브러리, 플러그인 -->
<!-- <script src="/js/lib/jquery-1.9.1.min.js"></script>
<script src="/js/lib/jquery-ui.min.js"></script>
<script src="/js/lib/jquery.blockUI.js"></script>
<script src="/js/lib/jquery.pjax.js"></script>
<script src="/js/lib/modernizr-custom.js"></script>
<script src="/js/lib/jquery.mCustomScrollbar.concat.min.js"></script>
<script src="/js/lib/jquery.bxslider.min.js"></script>
<script src="/js/lib/picker.js"></script>
<script src="/js/lib/picker.date.js"></script>
<script src="/js/lib/legacy.js"></script>
<script src="/js/lib/base64.js"></script> -->
<!-- 라이브러리, 플러그인 끝 -->
<!-- <script src="/js/jquery.seed.js"></script>
<script src="/js/smartPop.js"></script>
<script src="/js/seed.common.js"></script>
<script src="/js/seed.tab.js"></script> -->
<script src="/js/seed/seed.app.js"></script>
<script src="/js/seed/commonFileUtil.js"></script>
<!-- <script src="/js/jquery.form.js"></script>
<script src="/js/common_XHR.js"></script>
<script src="/js/common.js"></script>
<script src="/js/DateTimePicker.js"></script>
<script src="/js/jquery.selectboxes.js"></script> -->
<!-- 캘린더js -->
<!-- <script src="/js/moment.min.js"></script>
<script src="/js/fullcalendar.min.js"></script>
<script src="/js/scheduler.min.js"></script>
<script src="/js/gcal.js"></script>
<script src="/js/jquery.qtip.js"></script>
<script type='text/javascript' src='/js/clipreport.js'></script>
<script type='text/javascript' src='/js/UserConfig.js'></script> -->
<!-- js -->
<script>
</script>
</head>

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 889 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 918 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 700 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 681 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 816 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 825 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 932 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 715 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 641 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 666 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 594 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 835 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

Some files were not shown because too many files have changed in this diff Show More