Deshabilite la autenticación HTTP para solicitudes de OPCIONES en Tomcat

Deshabilite la autenticación HTTP para solicitudes de OPCIONES en Tomcat

Tengo una API protegida por autenticación básica HTTP.

Cuando quiero realizar solicitudes AJAX contra la API, el navegador envía una solicitud de OPCIONES que no lleva el encabezado de Autorización, por lo que es rechazada y, por lo tanto, el navegador no permite mi llamada AJAX.

Intenté configurar Tomcat para que no autentique las solicitudes de OPCIONES pero no logré que funcione.

¿Cómo puedo desactivar la autenticación HTTP para solicitudes de OPCIONES en Tomcat?

Respuesta1

Tal vezesta respuestaayudará. En resumen, tenemos que configurar el servidor Tomcat para reenviar la solicitud a CorsFilter incluso cuando no esté autenticado, usando algo como esto:

<security-constraint>
    <web-resource-collection>
        <url-pattern>/*</url-pattern>
        <http-method>OPTIONS</http-method>
    </web-resource-collection>
    <!-- no auth-constraint here -->
</security-constraint>

asegúrese de NO incluir el elemento "auth-constraint". Entonces, el siguiente ejemplo NO FUNCIONARÁ:

<security-constraint>
    <web-resource-collection>
        <url-pattern>/*</url-pattern>
        <http-method>OPTIONS</http-method>
    </web-resource-collection>
    <auth-constraint/><!-- this will prevent OPTIONS request -->
</security-constraint>

Respuesta2

debes escribir una lista blanca para tu propósito

para más información ver:¿No permitir métodos HTTP en Tomcat distingue entre mayúsculas y minúsculas?

información relacionada