龙空技术网

tomcat之过滤器

爱学习的小菜鸟 104

前言:

现时我们对“apache cors”大概比较看重,朋友们都想要学习一些“apache cors”的相关资讯。那么小编也在网上搜集了一些对于“apache cors””的相关知识,希望各位老铁们能喜欢,同学们一起来了解一下吧!

过滤器CorsFilter

org.apache.catalina.filters.CorsFilter是W3C CORS(跨域资源共享)规范的一种实现,在HttpServletResponse中增加Acess-Control-*头,同时保护HTTP响应避免拆分。

<filter>    <filter-name>CorsFilter</filter-name>  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>  <init-param>    <!-- 允许访问资源的域列表  多个域以,分隔 -->      <param-name>cors.allowed.origins</param-name>    <param-value>*</param-value>  </init-param>  <init-param>    <!-- 允许访问资源的HTTP方法   Access-Control-Allow-Methods的一部分 -->      <param-name>cors.allowed.methods</param-name>    <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>  </init-param>  <init-param>    <!-- 构造实际请求时可以使用的请求头  Access-Control-Allow-Headers的一部分 -->      <param-name>cors.allowed.headers</param-name>    <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>  </init-param>  <init-param>    <!-- 允许访问的头信息列表  Access-Control-Allow-Headers的一部分 -->      <param-name>cors.exposed.headers</param-name>    <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>  </init-param>  <init-param>    <!-- 资源是否支持用户证书 -->      <param-name>cors.support.credentials</param-name>    <param-value>true</param-value>  </init-param>  <init-param>    <!-- 浏览器允许缓存Preflight请求结果的时间  单位s -->      <param-name>cors.preflight.maxage</param-name>    <param-value>10</param-value>  </init-param></filter><filter-mapping>    <filter-name>CorsFilter</filter-name>  <url-pattern>/*</url-pattern></filter-mapping>
CsrfPreventionFilter

CSRF 跨域请求伪造 CsrfPreventionFilter过滤器提供了基本的CSRF保护,通过生成一个随机数存储到会话中,URL使用该随机数进行编码。当接收到下一个请求时,请求中的随机数与会话中的进行对比,两者相同,请求才会允许

ExpiresFilter

负责设置服务器响应中的Expires头和Cache-Control头的max-age

FailedRequestFilter

参数解析失败时,拒绝该请求,原理是先调用getParameter进行解析参数

可能会消费HTTP的请求体,如果使用该Filter保护请求,为了POST请求可以正常解析,需要在该Filter之前配置SetCharacterEncodingFilter过滤器

RemoteAddrFilter

比较提交请求的客户端ip地址是否符合指定的正则表达式

RemoteHostFilter

比较提交请求的客户端主机域名是否符合指定的正则表达式

RemoteIpFilter

使用X-Forwarded-For来获取最原始的客户端ip

X-Forwarded-For: client,proxy1,proxy2

SetCharacterEncodingFilter

设置编码格式

标签: #apache cors