zoukankan      html  css  js  c++  java
  • spring boot AccessControlAllowOrigin设置多个域名

    原文链接:https://blog.csdn.net/woai671/article/details/115183267

    package common;

    import org.springframework.core.Ordered;
    import org.springframework.core.annotation.Order;

    import javax.servlet.*;
    import javax.servlet.annotation.WebFilter;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.Arrays;
    import java.util.HashSet;
    import java.util.Set;

    @Order(Ordered.HIGHEST_PRECEDENCE)
    @WebFilter(filterName = "CorsFilter", urlPatterns = "/*")
    public class CorsFilter implements Filter {

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    HttpServletResponse response = (HttpServletResponse) res;

    HttpServletRequest reqs = (HttpServletRequest) req;

    String[] allowDomain={"http://127.0.0.1:8080","http://localhost:8080","https://***.***.com"};
    Set<String> allowedOrigins=new HashSet<>(Arrays.asList(allowDomain));
    String originHeader=reqs.getHeader("Origin");
    if(allowedOrigins.contains(originHeader)){
    response.setHeader("Access-Control-Allow-Origin",originHeader);
    }else{
    response.setHeader("Access-Control-Allow-Origin","https://***.***.com");
    }

    response.setHeader("Access-Control-Allow-Credentials", "false");
    response.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, DELETE, PUT");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    chain.doFilter(req, res);
    }

    @Override
    public void init(FilterConfig filterConfig) {}

    @Override
    public void destroy() {}

    ————————————————————————————————————————————————————————————————————————

    我设置的ip是同事的192.168.1.178,是因为他的ip访问我的接口会遭到拦截,我自己的ip不会被拦截,所以不用设置

    复制代码package com.xgt.config;

    import javax.servlet.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.Arrays;
    import java.util.HashSet;
    import java.util.Set;
    
    /**
     * 解决跨域问题
     */
    public class SimpleCORSFilter implements Filter {
    
        public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
            HttpServletResponse response = (HttpServletResponse) res;
            String []  allowDomain= {"http://127.0.0.1:1841","http://192.168.1.178"};
            Set<String> allowedOrigins= new HashSet<String>(Arrays.asList(allowDomain));
            String originHeader=((HttpServletRequest) req).getHeader("Origin");
         if(originHeader==null){
          originHeader=((HttpServletRequest) req).getRequestURI();
    }

    if (allowedOrigins.contains(originHeader)) { response.setHeader("Access-Control-Allow-Origin", originHeader); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "content-type, x-requested-with"); response.setHeader("Access-Control-Allow-Credentials", "true"); } chain.doFilter(req, res); } public void init(FilterConfig filterConfig) {} public void destroy() {} }
  • 相关阅读:
    java中创建线程的方式
    idea查看一个接口的子接口或实现类的快捷键
    idea查看源码没有注释的问题
    spring中的Aop
    spring中的ApplicationListener监听器
    spring中的事务管理
    IDEA创建springboot 项目
    xiaopiu产品设计
    java 6大设计原则 一:观察者模式
    java面向对象
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/15619344.html
Copyright © 2011-2022 走看看