Browse Source

换一种方式允许跨域访问

sunyj 8 years ago
parent
commit
c43a932fbd

+ 0 - 47
kanban-console/src/main/java/com/uas/kanban/CORSFilter.java

@@ -1,47 +0,0 @@
-package com.uas.kanban;
-
-import java.io.IOException;
-
-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.HttpServletResponse;
-
-import org.springframework.stereotype.Component;
-
-/**
- * 跨域访问
- * 
- * @author sunyj
- * @since 2017年9月5日 下午10:45:32
- */
-@Component
-public class CORSFilter implements Filter {
-
-	@Override
-	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
-			throws IOException, ServletException {
-		HttpServletResponse httpServletResponse = (HttpServletResponse) response;
-		// 不需要限制的域,可以配置多个
-		httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
-		// 允许请求的方法
-		httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
-		// 表明在3600秒内,不需要再发送预检验请求,可以缓存该结果
-		httpServletResponse.setHeader("Access-Control-Max-Age", "3600");
-		// 表明它允许跨域请求包含x-requested-with头
-		httpServletResponse.setHeader("Access-Control-Allow-Headers", "x-requested-with");
-		chain.doFilter(request, response);
-	}
-
-	@Override
-	public void init(FilterConfig filterConfig) throws ServletException {
-	}
-
-	@Override
-	public void destroy() {
-	}
-
-}

+ 7 - 11
kanban-console/src/main/java/com/uas/kanban/WebAppConfiguration.java

@@ -4,14 +4,12 @@ import java.nio.charset.Charset;
 import java.util.Arrays;
 import java.util.List;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.http.MediaType;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.http.converter.StringHttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
 import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
@@ -32,9 +30,6 @@ import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
 @ComponentScan(basePackages = "com.uas.kanban.controller")
 public class WebAppConfiguration extends WebMvcConfigurerAdapter {
 
-	@Autowired
-	private CORSFilter corsFilter;
-
 	@Override
 	public void addResourceHandlers(ResourceHandlerRegistry registry) {
 		// Spring boot默认资源路径在src/main/resources下,而非/src/main/webapp
@@ -77,11 +72,12 @@ public class WebAppConfiguration extends WebMvcConfigurerAdapter {
 		super.configureMessageConverters(converters);
 	}
 
-	@Bean
-	public FilterRegistrationBean filterRegistrationBean() {
-		FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
-		filterRegistrationBean.setFilter(corsFilter);
-		return filterRegistrationBean;
+	/*
+	 * 允许跨域访问
+	 */
+	@Override
+	public void addCorsMappings(CorsRegistry registry) {
+		registry.addMapping("/**").allowedOrigins("*");
 	}
 
 }