主要解决跨域请求的问题,原理就不多做介绍了,知道怎么用就行了。
官网:http://software.dzhuvinov.com/cors-filter.html
pom.xml
<dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>cors-filter</artifactId>
<version>2.4</version>
</dependency>
web.xml
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
<init-param>
<param-name>cors.configurationFile</param-name>
<param-value>cors.properties</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
cors.properties
引用
#cors.allowGenericHttpRequests {true|false} defaults to true.
#If true generic HTTP requests will be allowed to pass through the filter, else only valid and accepted CORS requests will be allowed (strict CORS filtering).
cors.allowGenericHttpRequests = true
#cors.allowOrigin {"*"|origin-list} defaults to *.
#Whitespace-separated list of origins that the CORS filter must allow. Requests from origins not included here will be refused with an HTTP 403 "Forbidden" response. If set to * (asterisk) any origin will be allowed.
cors.allowOrigin = http://fanfq.com
#cors.allowSubdomains {true|false} defaults to false.
#If true the CORS filter will allow requests from any origin which is a subdomain origin of the allowed origins. A subdomain is matched by comparing its scheme and suffix (host name / IP address and optional port number).
cors.allowSubdomains = true
#cors.supportedMethods {method-list} defaults to "GET, POST, HEAD, OPTIONS".
#List of the supported HTTP methods. These are advertised through the Access-Control-Allow-Methods header and must also be implemented by the actual CORS web service. Requests for methods not included here will be refused by the CORS filter with an HTTP 405 "Method not allowed" response.
cors.supportedMethods = GET, POST, HEAD, OPTIONS
#cors.supportedHeaders {"*"|header-list} defaults to *.
#The names of the supported author request headers. These are advertised through the Access-Control-Allow-Headers header.
#If the configuration property value is set to * (asterisk) any author request header will be allowed. The CORS Filter implements this by simply echoing the requested value back to the browser.
#What is an author request header? This any custom header set by the browser JavaScript application through the XMLHttpRequest.setRequestHeader() method.
cors.supportedHeaders = *
#cors.exposedHeaders {header-list} defaults to empty list.
#List of the response headers other than simple response headers that the browser should expose to the author of the cross-domain request through the XMLHttpRequest.getResponseHeader() method. The CORS filter supplies this information through the Access-Control-Expose-Headers header.
cors.exposedHeaders = X-Test-1, X-Test-2
#cors.supportsCredentials {true|false} defaults to true.
#Indicates whether user credentials, such as cookies, HTTP authentication or client-side certificates, are supported. The CORS filter uses this value in constructing the Access-Control-Allow-Credentials header.
cors.supportsCredentials = true
#cors.maxAge {int} defaults to -1 (unspecified).
#Indicates how long the results of a preflight request can be cached by the web browser, in seconds. If -1 unspecified. This information is passed to the browser via the Access-Control-Max-Age header.
cors.maxAge = 3600
#cors.tagRequests {true|false} defaults to false (no tagging).
#Enables HTTP servlet request tagging to provide CORS information to downstream handlers (filters and/or servlets).
cors.tagRequests = false
分享到:
相关推荐
#### 二、配置详解 ##### 2.1 Web.xml中的配置 在Java Web应用中,可以通过在`web.xml`文件中配置过滤器来实现CORS功能。具体配置如下: ```xml <!-- 跨域请求过滤器 --> <filter-name>CORS <filter-class>...
【标题】"Tomcat CORS配置详解" 在现代Web应用程序开发中,跨域资源共享(CORS)是一个关键概念,它允许浏览器安全地从不同源(如不同的域名或端口)加载资源。Tomcat作为广泛使用的Java Servlet容器,支持CORS配置...
三、跨域配置详解 1. `allowedOrigins`: 允许的源,可以是特定域名或通配符"*"表示允许任何源。 2. `allowedHeaders`: 允许的请求头,如"Content-Type"、"Authorization"等。 3. `allowedMethods`: 允许的HTTP方法,...
【标题】:Tomcat 跨域配置详解及解决方法 【描述】:本文将深入探讨在 Tomcat 服务器上处理跨域问题的解决方案,包括理解跨域策略和配置 CORS(跨源资源共享)过滤器。 【标签】:Tomcat跨域,CORS 【正文】: ...
《Geoserver跨域配置详解及jar包应用》 在Web GIS开发中,Geoserver作为一款开源且功能强大的地理信息系统服务器,广泛应用于地图服务的发布与管理。然而,在进行Web应用开发时,经常会遇到一个棘手的问题——跨域...
【标题】"Tomcat跨域配置详解" 在Web开发中,由于浏览器的同源策略限制,不同源(协议、域名、端口)的请求会被阻止,这对于前后端分离的项目或者需要通过API获取数据的场景来说,是一个常见的问题。本教程主要针对...
public class CORSFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException {} @Override public void doFilter(ServletRequest request, ServletResponse...
《ArcGIS Server与Tomcat的跨域配置详解》 在当今的Web开发环境中,跨域资源共享(CORS)已经成为一个重要的议题,特别是在GIS(地理信息系统)应用中,如ArcGIS Server与Tomcat集成的场景。ArcGIS Server是Esri...
配置项中,`CORSFilter`是过滤器类,`allowGenericHttpRequests`参数表示是否允许非简单请求。其他可配置参数包括: - `cors.allowOrigin`:允许的源 - `cors.supportedMethods`:支持的方法 - `cors....
使用 CorsConfig 需要定义一个配置类,并在该类中设置 CORS 相关的配置。 无论使用哪种方式,都可以实现 CORS 跨域请求,提高 Web 应用程序的安全性和灵活性。 扩展知识点 1. 什么是 CORS? CORS(Cross-Origin ...
1. **添加CORS配置**:ArcGIS Server允许我们通过修改其配置来启用CORS。首先,你需要登录到ArcGIS Server Manager,找到“站点”>“安全”>“身份验证”部分,确保服务器使用的是“基本”或“Kerberos”认证,因为...
SpringCloud Gateway 跨域配置代码实例详解 在本文中,我们将详细介绍 SpringCloud Gateway 跨域配置代码实例。跨域配置是指在不同的源之间共享资源时,如何配置服务器以允许跨域请求。SpringCloud Gateway 提供了...
《狂神SpringSecurity静态资源详解》 在Java Web开发领域,Spring Security是一个强大的安全框架,它为应用程序提供了全面的安全管理解决方案。"狂神 SpringSecurity 静态资源.zip"这个压缩包,想必是包含了关于...
Spring Boot 跨域设置实例详解 跨域设置是指从一个域名的网页去请求另一个域名的资源。这种情况下,浏览器默认不允许跨域访问,包括我们平时ajax也是限制跨域访问的。产生跨域访问的情况主要是因为请求的发起者与...
Spring Boot 提供了 `CorsConfiguration` 和 `CorsFilter` 来配置跨域策略。 **3.4 什么是 CSRF 攻击?** CSRF (Cross-Site Request Forgery) 攻击是指攻击者诱导受害者在一个已经登录的应用程序上执行非本意的...
该配置类可以使用`@Configuration`注解,并且需要注册一个`CorsFilter` bean。该bean可以使用`UrlBasedCorsConfigurationSource`来配置跨域请求的规则。 知识点5:配置跨域请求的规则 配置跨域请求的规则需要使用`...
<filter-name>CorsFilter <url-pattern>/* ``` 使用这个 Filter,即可让整个服务器全局允许跨域。 总结 本文介绍了 SpringMVC 跨域解决方案的两种方案,即通过注解的方式和通过配置文件的方式。通过这两种方案...
例如,上面的代码片段展示了如何创建一个自定义的`CorsFilter`,该过滤器设置了一些允许跨域访问的关键响应头: 1. `Access-Control-Allow-Origin`: 允许来自任何域的请求,通过设置为`"*"`。 2. `Access-Control-...
在Springboot后端,可以通过实现`Filter`接口来创建一个名为`CorsFilter`的过滤器。在过滤器中,设置响应头`Access-Control-Allow-Origin`,`Access-Control-Allow-Headers`,`Access-Control-Allow-Methods`等,...