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>
En el momento de escribir esto, la versión actual de Tomcat 7 (7.0.41) tiene incorporado un filtro CORS http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter
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