无关风月
2025-01-02 7cdea9831fa9b97fe672073abbe80d30edab0ae0
定时任务
2个文件已修改
136 ■■■■■ 已修改文件
common/src/main/java/com/jilongda/common/config/CorsConfig.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/src/main/java/com/jilongda/common/security/filter/CorsFilter.java 121 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/src/main/java/com/jilongda/common/config/CorsConfig.java
@@ -16,6 +16,7 @@
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.function.RequestPredicates;
import org.springframework.web.servlet.function.RouterFunction;
import org.springframework.web.servlet.function.RouterFunctions;
@@ -77,4 +78,18 @@
        };
    }
    @Bean
    public CorsRegistry addCorsMappings() {
        return new CorsRegistry();
    }
     @Bean
     public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
            .allowedOriginPatterns("*")
            .allowedMethods("*")
            .maxAge(3600)
            .allowCredentials(true);
    }
}
common/src/main/java/com/jilongda/common/security/filter/CorsFilter.java
@@ -1,60 +1,61 @@
//package com.jilongda.common.security.filter;
//
//import com.aliyun.oss.HttpMethod;
//import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
//import com.google.common.net.HttpHeaders;
//import lombok.extern.slf4j.Slf4j;
//import org.mybatis.logging.LoggerFactory;
//
//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.List;
//import java.util.logging.Logger;
//
//@Slf4j
//@WebFilter(urlPatterns = {"/*"}, filterName = "corsFilter")
//public class CorsFilter implements Filter {
////    private static final Logger logger = LoggerFactory.getLogger(IsvSearchController.class);
//
//    private String allowOrigin = "http://***.**.com,http://***.**.com:8080,http://***.**.com";
//
//    @Override
//    public void init(FilterConfig filterConfig) throws ServletException {
//
//    }
//
//    @Override
//    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
////        logger.info("doFilter start ...");
//        HttpServletRequest request = (HttpServletRequest) servletRequest;
//        HttpServletResponse response = (HttpServletResponse) servletResponse;
//        if (StringUtils.isNotEmpty(allowOrigin)) {
//            List<String> allowOriginList = Arrays.asList(allowOrigin.split(","));
//            if (!CollectionUtils.isEmpty(allowOriginList)) {
//                String currentOrigin = request.getHeader("Origin");
//                if (allowOriginList.contains(currentOrigin)) {
//                    response.setHeader("Access-Control-Allow-Origin", currentOrigin);
//                }
//            }
//        }
//        response.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS");
//        response.setHeader("Access-Control-Allow-Credentials", "true");
//        response.setHeader("Access-Control-Allow-Headers", "content-Type");
//        if (HttpMethod.OPTIONS.name().equalsIgnoreCase(request.getMethod()) &&/*options 请求返回允许跨域的头*/
//                request.getHeader(HttpHeaders.ORIGIN) != null) {
////            logger.info("doFilter options request");
//            return;
//        }
//        filterChain.doFilter(servletRequest, servletResponse);
//    }
//
//    @Override
//    public void destroy() {
//
//    }
//}
package com.jilongda.common.security.filter;
import com.aliyun.oss.HttpMethod;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.google.common.net.HttpHeaders;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.logging.LoggerFactory;
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.List;
import java.util.logging.Logger;
@Slf4j
@WebFilter(urlPatterns = {"/*"}, filterName = "corsFilter")
public class CorsFilter implements Filter {
//    private static final Logger logger = LoggerFactory.getLogger(IsvSearchController.class);
    private String allowOrigin = "*";
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//        logger.info("doFilter start ...");
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        if (StringUtils.isNotEmpty(allowOrigin)) {
            List<String> allowOriginList = Arrays.asList(allowOrigin.split(","));
            if (!CollectionUtils.isEmpty(allowOriginList)) {
                String currentOrigin = request.getHeader("Origin");
                if (allowOriginList.contains(currentOrigin)) {
                    response.setHeader("Access-Control-Allow-Origin", currentOrigin);
                }
            }
        }
        response.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Headers", "content-Type");
        if (HttpMethod.OPTIONS.name().equalsIgnoreCase(request.getMethod()) &&/*options 请求返回允许跨域的头*/
                request.getHeader(HttpHeaders.ORIGIN) != null) {
//            logger.info("doFilter options request");
            return;
        }
        filterChain.doFilter(servletRequest, servletResponse);
    }
    @Override
    public void destroy() {
    }
}