Yansen пре 1 година
родитељ
комит
c0553b4ebe

+ 28
- 28
src/main/java/com/njyunzhi/invoice/config/cros/CorsConfig.java Прегледај датотеку

12
 @SpringBootConfiguration
12
 @SpringBootConfiguration
13
 public class CorsConfig implements WebMvcConfigurer {
13
 public class CorsConfig implements WebMvcConfigurer {
14
 
14
 
15
-    @Autowired
16
-    CorsProperties crosProperties;
17
-
18
-    @Autowired
19
-    HttpServletRequest request;
20
-
21
-    @Override
22
-    public void addCorsMappings(CorsRegistry registry) {
23
-        if (null == crosProperties.getEnabled() || !crosProperties.getEnabled()) return;
24
-
25
-//        //添加映射路径
26
-        CorsRegistration registration = registry.addMapping("/**");
27
-        //是否发送Cookie
28
-//        registration.allowCredentials(true);
29
-        // 域名
30
-        String origin = request.getHeader("Origin");
31
-        registration.allowedOrigins(origin);
32
-        //放行哪些请求方式
33
-        registration.allowedMethods("*");
34
-        //放行哪些原始请求头部信息
35
-        registration.allowedHeaders("*");
36
-        //暴露哪些原始请求头部信息
37
-        registration.exposedHeaders(toArray(crosProperties.getExposedHeaders()));
38
-    }
39
-
40
-    private String[] toArray(List<String> list) {
41
-        return list.toArray(new String[0]);
42
-    }
15
+//    @Autowired
16
+//    CorsProperties crosProperties;
17
+//
18
+//    @Autowired
19
+//    HttpServletRequest request;
20
+//
21
+//    @Override
22
+//    public void addCorsMappings(CorsRegistry registry) {
23
+//        if (null == crosProperties.getEnabled() || !crosProperties.getEnabled()) return;
24
+//
25
+////        //添加映射路径
26
+//        CorsRegistration registration = registry.addMapping("/**");
27
+//        //是否发送Cookie
28
+////        registration.allowCredentials(true);
29
+//        // 域名
30
+//        String origin = request.getHeader("Origin");
31
+//        registration.allowedOrigins(origin);
32
+//        //放行哪些请求方式
33
+//        registration.allowedMethods("*");
34
+//        //放行哪些原始请求头部信息
35
+//        registration.allowedHeaders("*");
36
+//        //暴露哪些原始请求头部信息
37
+//        registration.exposedHeaders(toArray(crosProperties.getExposedHeaders()));
38
+//    }
39
+//
40
+//    private String[] toArray(List<String> list) {
41
+//        return list.toArray(new String[0]);
42
+//    }
43
 }
43
 }

+ 40
- 0
src/main/java/com/njyunzhi/invoice/config/cros/CorsFilter.java Прегледај датотеку

1
+package com.njyunzhi.invoice.config.cros;
2
+
3
+import org.springframework.beans.factory.annotation.Autowired;
4
+import org.springframework.stereotype.Component;
5
+import org.springframework.web.filter.OncePerRequestFilter;
6
+
7
+import javax.servlet.FilterChain;
8
+import javax.servlet.ServletException;
9
+import javax.servlet.http.HttpServletRequest;
10
+import javax.servlet.http.HttpServletResponse;
11
+import java.io.IOException;
12
+
13
+@Component
14
+public class CorsFilter extends OncePerRequestFilter {
15
+
16
+    @Autowired
17
+    CorsProperties crosProperties;
18
+
19
+    @Override
20
+    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
21
+
22
+        if (null == crosProperties.getEnabled() || !crosProperties.getEnabled()) {
23
+            filterChain.doFilter(request, response);
24
+            return ;
25
+        };
26
+
27
+        String origin = request.getHeader("Origin");
28
+        response.setHeader("Access-Control-Allow-Origin", origin);
29
+        response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
30
+        response.setHeader("Access-Control-Max-Age", "3600");
31
+        response.setHeader("Access-Control-Allow-Headers", "*");
32
+        response.addHeader("Access-Control-Expose-Headers", String.join(", ", crosProperties.getExposedHeaders()));
33
+
34
+        if ("OPTIONS".equals(request.getMethod())) {
35
+            response.setStatus(HttpServletResponse.SC_OK);
36
+        } else {
37
+            filterChain.doFilter(request, response);
38
+        }
39
+    }
40
+}