fairnet/src/main/java/seed/utils/InterceptorCheck.java
tolag3 f7d819b7b8 이준호 분쟁조정시스템 커밋
- 분쟁조정 상담 관련 패키지 추가
2024-09-03 15:14:26 +09:00

358 lines
12 KiB
Java

package seed.utils;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import seed.dao.FirewallDAO;
public class InterceptorCheck extends HandlerInterceptorAdapter{
private Logger log = Logger.getLogger(this.getClass());
@Autowired
private FirewallDAO firewallDAO;
@Value("#{config['server.host.name']}")
private String serverHostName;
@Value("#{config['server.host.ip']}")
private String serverHostIp;
@Value("#{config['seed.key']}")
private String seedKey;
@Value("#{config['root.url']}")
private String rootUrl;
@Value("#{config['seed.key.date']}")
private String seedKeyDate;
private static String licenseKey = "seed";
public static String getLicenseKey() {
return licenseKey;
}
public void setSessionRemove(HttpSession session){
session.removeAttribute("memberIdx");
session.removeAttribute("memberId");
session.removeAttribute("memberName");
session.removeAttribute("memberDept");
session.removeAttribute("memberPosition");
session.removeAttribute("memberTel");
session.removeAttribute("memberPhone");
session.removeAttribute("memberEmail1");
session.removeAttribute("memberEmail2");
session.removeAttribute("memberGrant");
session.removeAttribute("url");
session.removeAttribute("message");
session.removeAttribute("opener");
session.removeAttribute("append");
session.removeAttribute("self");
}
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler) {
HttpSession session = httpServletRequest.getSession();
session.removeAttribute("url");
session.removeAttribute("message");
session.removeAttribute("opener");
session.removeAttribute("append");
session.removeAttribute("self");
/*try{
boolean hostNameChk = false;
boolean hostIpChk = false;
StandardPBEStringEncryptor pbeEnc = new StandardPBEStringEncryptor();
pbeEnc.setPassword(InterceptorCheck.getLicenseKey());
if(!pbeEnc.decrypt(seedKeyDate).equals("*")){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date getDate = new Date();
Date seedKeyDateChk = sdf.parse(pbeEnc.decrypt(seedKeyDate));
if(Integer.parseInt(sdf.format(getDate)) > Integer.parseInt(sdf.format(seedKeyDateChk))){
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("seedKeyDate Error");
httpServletResponse.sendRedirect("/common/message.do");
return false;
}
}
String seedKeys[] = seedKey.split(",");
String rootUrls[] = rootUrl.split(",");
if(seedKeys.length != rootUrls.length){
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("seedKeys.length Error, rootUrls.length Error");
httpServletResponse.sendRedirect("/common/message.do");
return false;
}
for(int i=0; i<seedKeys.length; i++){
if(!pbeEnc.decrypt(seedKeys[i]).equals(rootUrls[i])){
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("seedKeys Error");
httpServletResponse.sendRedirect("/common/message.do");
return false;
}
}
String hostName = "";
String hostIp = "";
InetAddress ip;
try{
ip = InetAddress.getLocalHost();
hostName = ip.getHostName();
hostIp = ip.getHostAddress();
}catch (UnknownHostException ex) {
log.error("CHECK ERROR:",ex);
}catch (Exception ex) {
log.error("CHECK ERROR:",ex);
}
String serverHostNames[] = serverHostName.split(",");
String serverHostIps[] = serverHostIp.split(",");
if(serverHostNames.length != serverHostIps.length){
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("serverHostNames.length Error, serverHostIps.length Error");
httpServletResponse.sendRedirect("/common/message.do");
return false;
}
for(int i=0; i<serverHostNames.length; i++){
if(hostName.replaceAll(" ", "").equals(pbeEnc.decrypt(serverHostNames[i].replaceAll(" ", "")))){
hostNameChk = true;
break;
}
}
for(int i=0; i<serverHostIps.length; i++){
if(hostIp.replaceAll(" ", "").equals(pbeEnc.decrypt(serverHostIps[i].replaceAll(" ", "")))){
hostIpChk = true;
break;
}
}
if(!hostNameChk || !hostIpChk){
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("hostName Error : " + hostNameChk + ", hostIp Error : " + hostIpChk);
httpServletResponse.sendRedirect("/common/message.do");
return false;
}
}catch (Exception e) {
session.setAttribute("url", "/common/seed.do");
session.setAttribute("message", "common.message.no.seed");
log.error("CHECK ERROR:",e);
try {
httpServletResponse.sendRedirect("/common/message.do");
} catch (IOException ex) {
log.error("CHECK ERROR:",ex);
}
return false;
}*/
// boolean firewallChk = false;
//테스트를 위한 수정_이준호_240704!!!!!!!!!!!!!!!!
// boolean firewallChk = true;
//
// System.out.println("tset");
// log.info("testsetset");
//
// List<Map<Object, Object>> firewallList = firewallDAO.getFirewallList();
//
// httpServletRequest.getHeader("WL-Proxy-Client-IP");
//
// String memberIp = httpServletRequest.getRemoteAddr();
//
// for(int i=0; i<firewallList.size(); i++){
//
// Map<Object, Object> tFirewallDB = firewallList.get(i);
//
// if(memberIp.indexOf(":") > 0){
//
// if(tFirewallDB.get("_firewallAClass").equals("*") && tFirewallDB.get("_firewallBClass").equals("*") && tFirewallDB.get("_firewallCClass").equals("*")
// && tFirewallDB.get("_firewallDClass").equals("*") && tFirewallDB.get("_firewallEClass").equals("*") && tFirewallDB.get("_firewallFClass").equals("*")
// && tFirewallDB.get("_firewallGClass").equals("*") && tFirewallDB.get("_firewallHClass").equals("*")){
// firewallChk = true;
// break;
// }
//
// String[] memberIps = memberIp.split(":");
//
// if((memberIps[0].equals(tFirewallDB.get("_firewallAClass")) || tFirewallDB.get("_firewallAClass").equals("*")) &&
// (memberIps[1].equals(tFirewallDB.get("_firewallBClass")) || tFirewallDB.get("_firewallBClass").equals("*")) &&
// (memberIps[2].equals(tFirewallDB.get("_firewallCClass")) || tFirewallDB.get("_firewallCClass").equals("*")) &&
// (memberIps[3].equals(tFirewallDB.get("_firewallDClass")) || tFirewallDB.get("_firewallDClass").equals("*")) &&
// (memberIps[4].equals(tFirewallDB.get("_firewallEClass")) || tFirewallDB.get("_firewallEClass").equals("*")) &&
// (memberIps[5].equals(tFirewallDB.get("_firewallFClass")) || tFirewallDB.get("_firewallFClass").equals("*")) &&
// (memberIps[6].equals(tFirewallDB.get("_firewallGClass")) || tFirewallDB.get("_firewallGClass").equals("*")) &&
// (memberIps[7].equals(tFirewallDB.get("_firewallHClass")) || tFirewallDB.get("_firewallHClass").equals("*"))){
//
// firewallChk = true;
// }
//
// }else{
//
// if(tFirewallDB.get("_firewallAClass").equals("*") && tFirewallDB.get("_firewallBClass").equals("*") && tFirewallDB.get("_firewallCClass").equals("*")){
// firewallChk = true;
// break;
// }
//
// String[] memberIps = memberIp.split("\\.");
//
// if((memberIps[0].equals(tFirewallDB.get("_firewallAClass")) || tFirewallDB.get("_firewallAClass").equals("*")) &&
// (memberIps[1].equals(tFirewallDB.get("_firewallBClass")) || tFirewallDB.get("_firewallBClass").equals("*")) &&
// (memberIps[2].equals(tFirewallDB.get("_firewallCClass")) || tFirewallDB.get("_firewallCClass").equals("*"))){
//
// firewallChk = true;
// }
// }
// }
//
//// if(!firewallChk){
////
//// setSessionRemove(session);
//// session.setAttribute("url", "/common/firewall.do");
//// session.setAttribute("message", "(message)현재 접속한 아이피("+memberIp+")는 접근하실수 없습니다.");
////
//// try {
//// httpServletResponse.sendRedirect("/common/message.do");
//// } catch (IOException ex) {
//// log.error("CHECK ERROR:",ex);
//// }
////
//// return false;
//// }
//
// boolean sessionChk = false;
//
// String[] urlChecks = {"/gta/login.do", "/gta/proc/loginProc.do", "/gta/proc/logoutProc.do",
// "/gtu/login.do", "/gtu/proc/loginProc.do", "/gtu/proc/logoutProc.do",
// "/gtm/login.do", "/gtm/proc/loginProc.do", "/gtm/proc/logoutProc.do",
// "/gte/login.do", "/gte/proc/loginProc.do", "/gte/proc/logoutProc.do",
// "Page.do", "PageProc.do"};
//
// for(int i=0; i<urlChecks.length; i++){
// if(httpServletRequest.getRequestURI().indexOf(urlChecks[i]) > -1){
// sessionChk = true;
// break;
// }
// }
//
// if(!sessionChk){
//
// Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0"));
// String memberGrant = (String)SeedUtils.setReplaceNull(session.getAttribute("memberGrant"),"N");
//
// if(memberIdx == 0 || (!memberGrant.equals("S") && !memberGrant.equals("U") && !memberGrant.equals("SM") && !memberGrant.equals("M"))){
//
// setSessionRemove(session);
// if(httpServletRequest.getRequestURI().indexOf("/gta/") >= 0){
// session.setAttribute("url", "/gta/login.do");
// }else if(httpServletRequest.getRequestURI().indexOf("/gtu/") >= 0){
// session.setAttribute("url", "/gtu/login.do");
// }else if(httpServletRequest.getRequestURI().indexOf("/gtm/") >= 0){
// session.setAttribute("url", "/gtm/login.do");
// }else if(httpServletRequest.getRequestURI().indexOf("/gte/") >= 0){
// session.setAttribute("url", "/gte/login.do");
// }
//
// session.setAttribute("message", "common.message.no.login");
//
// try {
// httpServletResponse.sendRedirect("/common/message.do");
// } catch (IOException ex) {
// log.error("CHECK ERROR:",ex);
// }
//
// return false;
// }
// }
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler, ModelAndView modelAndView) {
//log.error("postHandle : " + request.getRequestURI());
/*
log.error("request : " + request);
log.error("response : " + response);
log.error("handler : " + handler);
log.error("modelAndView : " + modelAndView);
*/
//log.error("check postHandle");
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler, Exception ex) {
//log.error("afterCompletion : " + request.getRequestURI());
/*
log.error("request : " + request);
log.error("response : " + response);
log.error("handler : " + handler);
*/
//log.error("check afterCompletion");
}
}