origin hstsenabled example cross control configurar cache allow tomcat http-headers

hstsenabled - Access-Control-Allow-Origin:*en tomcat



hstsenabled tomcat (6)

Cambia esto:

<init-param> <param-name>cors.supportedHeaders</param-name> <param-value>Content-Type, Last-Modified</param-value> </init-param>

A esto

<init-param> <param-name>cors.supportedHeaders</param-name> <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value> </init-param>

Tenía que hacer esto para que todo funcionara.

Quiero establecer un encabezado http predeterminado en mi contenedor Tomcat -

Access-Control-Allow-Origin: *

Desde varios enlaces diferentes en stackoverslow y desde google, la mayoría ha apuntado a un resource . This nuevamente dice lo mismo sobre cómo hacerlo. He replicado lo mismo, pero todavía no se muestra el encabezado. Esto es lo que he hecho: 1) Copié el archivo cors.jar en la carpeta / lib de Tomcat 2) Inserté este texto en web.xml

<filter> <filter-name>CORS</filter-name> <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> <init-param> <param-name>cors.allowOrigin</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>cors.supportedMethods</param-name> <param-value>GET, POST, HEAD, PUT, DELETE</param-value> </init-param> <init-param> <param-name>cors.supportedHeaders</param-name> <param-value>Content-Type, Last-Modified</param-value> </init-param> <init-param> <param-name>cors.exposedHeaders</param-name> <param-value>Set-Cookie</param-value> </init-param> <init-param> <param-name>cors.supportsCredentials</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CORS</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

No funciona y estoy indefenso. Mi versión de tomcat es -6.0.6. Por favor ayuda.


El problema surgió debido a que no se incluyó el archivo jar como parte del proyecto. Solo lo estaba incluyendo en tomcat lib. Usar el siguiente en web.xml funciona ahora:

<filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class> org.springframework.web.filter.DelegatingFilterProxy </filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>CORS</filter-name> <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> <init-param> <param-name>cors.allowOrigin</param-name> <param-value>*</param-value> </init-param> <init-param> <param-name>cors.supportsCredentials</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>cors.supportedHeaders</param-name> <param-value>accept, authorization, origin</param-value> </init-param> <init-param> <param-name>cors.supportedMethods</param-name> <param-value>GET, POST, HEAD, OPTIONS</param-value> </init-param> </filter> <filter-mapping> <filter-name>CORS</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

Y a continuación en su dependencia de proyecto:

<dependency> <groupId>com.thetransactioncompany</groupId> <artifactId>cors-filter</artifactId> <version>1.3.2</version> </dependency>



Por favor revisa tu web.xml nuevamente. Es posible que estés cometiendo un error tonto. Como mi aplicación funciona bien con la misma configuración init-param ...

Copie y pegue el archivo web.xml, si el problema persiste.


Prueba esto.

1. escribir un filtro personalizado

package com.dtd.util; import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class CORSFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletResponse httpResponse = (HttpServletResponse) servletResponse; httpResponse.addHeader("Access-Control-Allow-Origin", "*"); filterChain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { } }

2.añadir a web.xml

<filter> <filter-name>CorsFilter</filter-name> <filter-class>com.dtd.util.CORSFilter</filter-class> </filter> <filter-mapping> <filter-name>CorsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>


Tuve que reiniciar el navegador después de cambiar la dirección IP (DHCP inalámbrico del ordenador portátil) que era mi "servidor cruzado" al que me refería en mi aplicación web, que resolvió el problema.

También asegúrese de que todos los encabezados corporales agregados por su navegador / host sean aceptados / permitidos al incluirlos en los cors.allowed.headers