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?