Desativar autenticação HTTP para solicitações OPTIONS no Tomcat

Desativar autenticação HTTP para solicitações OPTIONS no Tomcat

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?

informação relacionada