/ / CORS: el origen no se encuentra en el encabezado access-control-allow-origin (IE11) - java, networking, cors, internet-explorer-11, infraestructura

CORS: el origen no se encuentra en el encabezado de acceso-control-permitir-origen (IE11) - java, networking, cors, internet-explorer-11, infraestructura

Tengo una página web que hace un POST a otra páginaen otro subdominio (subdominio1.dominio.com -> subdominio2.dominio.com) y entiendo que necesito configurar cors para permitir esa situación. Hice todas las configuraciones y funciona en CHROME, FIREFOX E IE11 ..

pero hay una excepción, solo en IE11 EN MI RED DE CLIENTES la solicitud no funciona y devuelve "el origen no se encuentra en el encabezado de acceso-control-permitir-origen"

Me entero de que ocurre porque en la red de mi cliente la solicitud no devuelve el encabezado de SEGURIDAD. Las imágenes de abajo pueden explicarlo mejor:

IE11 FUERA DE LA RED DE MI CLIENTE (En rojo el retorno de CORS desde el servidor)

IE11 RED DE CLIENTES EXTERNOS

IE11 DENTRO DE LA RED DE MI CLIENTE (No hay retorno de encabezado de seguridad del servidor)

enter image description here

FILTRO DE CORS DEL SERVIDOR JAVA CODE (No hay retorno de encabezado de seguridad del servidor)

public class CorsFilter implements Filter {

@Override
public void init(FilterConfig filterConfig) throws ServletException {
}

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse resp = (HttpServletResponse) servletResponse;

resp.addHeader("Access-Control-Allow-Origin", "https://intranet2.culturainglesa.net");
resp.addHeader("Access-Control-Allow-Credentials", "true");
resp.addHeader("Access-Control-Allow-Methods", "GET,POST");
resp.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");

// Just ACCEPT and REPLY OK if OPTIONS
if (request.getMethod().equals("OPTIONS")) {
resp.setStatus(HttpServletResponse.SC_OK);
return;
}

chain.doFilter(request, servletResponse);
}

@Override
public void destroy() {
// TODO Auto-generated method stub

}

}

Respuestas

0 para la respuesta № 1

El problema no estaba en el lado del servidor ni en CORS, sino en IE11, que no envía credenciales en esta situación particular a través de AJAX:

SITIO DE ZONA DE INTERNET -> SITIO DE ZONA DE INTRANET

Después de cambiar esos dos subdominios para estar en la ZONA DE CONFIANZA, el problema se resolvió.

Esta es la pregunta que me ayuda a resolver:

Acceso denegado en IE 10 y 11 cuando ajax target es localhost