admin:huo123456@qq
2019-01-21 d42cb45f8fc0932e9a0766f98c445635a85b22d3
gx_tieta/src/com/fgkj/Filters/CrossDomainLimitFilter.java
@@ -12,6 +12,9 @@
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.omg.CORBA.Request;
import com.fgkj.actions.ActionUtil;
import com.fgkj.dto.ServiceModel;
@@ -21,26 +24,40 @@
   
   public final static String CROSS_DOMAIN_KEY   = "44c4a294cb66d13727c14b065dbe8548";      //跨域请求 key
      
   public void doFilter(ServletRequest req, ServletResponse response,
   public void doFilter(ServletRequest req, ServletResponse resp,
         FilterChain chain) throws IOException, ServletException {
      HttpServletRequest request=(HttpServletRequest)req;
      HttpServletResponse response =(HttpServletResponse)resp;
      String URL=request.getRequestURI();
      request.setCharacterEncoding("UTF-8");
      response.setCharacterEncoding("UTF-8");
      response.setContentType("text/html;charset=utf-8");
      //检测跨域访问的请求
      if(URL != null && URL.endsWith("_ky")){
      if(URL != null && URL.endsWith("_ky") && false){
         String key = req.getParameter("key");                              //获取校验码
         ServiceModel model = new ServiceModel();                           //是否允许访问
         boolean isAlowVisit = false;
         ServiceModel model = new ServiceModel();
         boolean isAlowVisit = false;                                    //是否允许访问
         //System.out.println(key+"=="+CROSS_DOMAIN_KEY);
         if(key != null && CROSS_DOMAIN_KEY.equals(key)){
            isAlowCrossDomain(response);
            //System.out.println("开始休眠500毫秒秒");
            try {
               Thread.sleep(500);
            } catch (InterruptedException e) {
               e.printStackTrace();
            } finally{
               //System.out.println("休眠结束.....");
            }
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            System.out.println("跨域访问域名或ip:"+request.getRemoteHost()+" At "+sdf.format(new Date()));
            
            isAlowVisit = true;
         }else{
            model.setMsg("识别码错误");
            model.setMsg("校验码发送失败,key:"+key);
         }         
         if(isAlowVisit){
            //通过请求
            chain.doFilter(request, response);
            chain.doFilter(request, response);      //允许跨域
         }else{
            //不能放行的请求
            PrintWriter out = response.getWriter();
@@ -51,6 +68,8 @@
      }else{
         //非跨域请求
         chain.doFilter(request, response);
         //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         //System.out.println("非跨域请求不允许放行"+request.getRemoteHost()+" At "+sdf.format(new Date()));
      }
      
   }
@@ -63,6 +82,16 @@
      
   }
   
   /**
    * 允许跨域访问
    * @param response
    */
   public void isAlowCrossDomain(HttpServletResponse response){
      response.setHeader("Access-Control-Allow-Origin", "*");            //允许跨域访问
      response.setHeader("Access-Control-Allow-Headers", "X-Requested-With,content-type,token");
      response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
   }
   public static void main(String[] args) {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      System.out.println(sdf.format(new Date()));