cors在java应用中如何配置

   2024-09-30 8470
核心提示:CORS(跨域资源共享)是一种安全机制,用于控制Web浏览器允许从不同源加载的资源。在Java应用中,我们可以使用过滤器(Filter)

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

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

使用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响应中。

使用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;@Configurationpublic 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。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号