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> firewallList = firewallDAO.getFirewallList(); // // httpServletRequest.getHeader("WL-Proxy-Client-IP"); // // String memberIp = httpServletRequest.getRemoteAddr(); // // for(int i=0; i 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 -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"); } }