Tenho uma API protegida por autenticação básica HTTP.
Quando desejo fazer solicitações AJAX na API, o navegador envia uma solicitação OPTIONS que não contém o cabeçalho Authorization, portanto é rejeitada e, portanto, minha chamada AJAX não é permitida pelo navegador.
Tentei configurar o Tomcat para não autenticar solicitações OPTIONS, mas não consegui fazê-lo funcionar.
Como posso desabilitar HTTP Auth para solicitações OPTIONS no Tomcat?
Responder1
Talvezesta respostavai ajudar. Resumindo, temos que configurar o servidor Tomcat para encaminhar a solicitação ao CorsFilter mesmo quando não autenticado, usando algo assim:
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
<http-method>OPTIONS</http-method>
</web-resource-collection>
<!-- no auth-constraint here -->
</security-constraint>
certifique-se de NÃO incluir o elemento "auth-constraint". Portanto, o exemplo a seguir NÃO 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>
Responder2
você deve escrever uma lista branca para seu propósito
para mais informações veja:Proibir métodos HTTP no Tomcat diferencia maiúsculas de minúsculas?