package com.fgkj.Filters;
|
|
import java.io.IOException;
|
import java.io.PrintWriter;
|
import java.text.SimpleDateFormat;
|
import java.util.Arrays;
|
import java.util.Date;
|
import java.util.HashSet;
|
import java.util.Set;
|
|
import javax.servlet.Filter;
|
import javax.servlet.FilterChain;
|
import javax.servlet.FilterConfig;
|
import javax.servlet.ServletException;
|
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;
|
|
public class CrossDomainLimitFilter implements Filter{
|
public static final int max_connect_count = 10;
|
|
public final static String CROSS_DOMAIN_KEY = "44c4a294cb66d13727c14b065dbe8548"; //跨域请求 key
|
|
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");
|
|
//非跨域请求
|
isAlowCrossDomain(response,request);
|
chain.doFilter(request, response);
|
|
}
|
|
public void init(FilterConfig arg0) throws ServletException {
|
|
}
|
|
public void destroy() {
|
|
}
|
|
/**
|
* 允许跨域访问
|
* @param response
|
*/
|
public void isAlowCrossDomain(HttpServletResponse response,HttpServletRequest request){
|
// 设置允许多个域名请求
|
String[] allowDomains = {"http://localhost:8919","http://localhost:8080"};
|
Set allowOrigins = new HashSet(Arrays.asList(allowDomains));
|
// if (Arrays.asList(Constants.ALLOW_DOMAIN).contains(originHeader)) {
|
String originHeads = request.getHeader("Origin");
|
if(allowOrigins.contains(originHeads)){
|
//设置允许跨域的配置
|
// 这里填写你允许进行跨域的主机ip(正式上线时可以动态配置具体允许的域名和IP)
|
response.setHeader("Access-Control-Allow-Origin", originHeads);
|
}
|
/*String ip=request.getRemoteAddr();
|
//String originHeads = request.getHeader("Host");
|
String originHeads =ip+":8080";
|
System.out.println(originHeads);*/
|
response.setHeader("Access-Control-Allow-Origin", originHeads);
|
//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");
|
response.setHeader("Access-Control-Allow-Credentials", "true");
|
}
|
|
public static void main(String[] args) {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
System.out.println(sdf.format(new Date()));
|
}
|
}
|