cors在java应用中如何配置

avatar
作者
筋斗云
阅读量:0

CORS(跨域资源共享)是一种安全机制,用于控制Web浏览器允许从不同源加载的资源。在Java应用中,我们可以使用过滤器(Filter)或者Spring框架的配置来实现CORS。

以下是两种常见的Java Web框架中配置CORS的方法:

  1. 使用Java Servlet Filter配置CORS:

创建一个名为CORSFilter.java的过滤器类:

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.annotation.WebFilter; import javax.servlet.http.HttpServletResponse;  @WebFilter(asyncSupported = true, urlPatterns = { "/*" }) public class CORSFilter implements Filter {      @Override     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)             throws IOException, ServletException {          HttpServletResponse httpResponse = (HttpServletResponse) response;         httpResponse.setHeader("Access-Control-Allow-Origin", "*");         httpResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");         httpResponse.setHeader("Access-Control-Max-Age", "3600");         httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");          chain.doFilter(request, response);     }      @Override     public void init(FilterConfig filterConfig) throws ServletException {     }      @Override     public void destroy() {     } } 

这个过滤器将CORS相关的HTTP头添加到每个HTTP响应中。

  1. 使用Spring框架配置CORS:

在Spring Boot应用中,你可以通过创建一个全局CORS配置类来实现CORS。创建一个名为GlobalCorsConfig.java的配置类:

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;  @Configuration public class GlobalCorsConfig {      @Bean     public WebMvcConfigurer corsConfigurer() {         return new WebMvcConfigurer() {             @Override             public void addCorsMappings(CorsRegistry registry) {                 registry.addMapping("/**")                         .allowedOrigins("*")                         .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")                         .allowedHeaders("*")                         .allowCredentials(true)                         .maxAge(3600);             }         };     } } 

这个配置类将CORS相关的HTTP头添加到每个HTTP响应中。

以上就是在Java应用中配置CORS的两种方法。根据你的项目需求和使用的框架,你可以选择其中一种方法来实现CORS。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!