Tomcat の OPTIONS リクエストの HTTP 認証を無効にする

Tomcat の OPTIONS リクエストの HTTP 認証を無効にする

HTTP 基本認証で保護された API があります。

API に対して AJAX リクエストを行うと、ブラウザは Authorization ヘッダーを含まない OPTIONS リクエストを送信するため、リクエストが拒否され、ブラウザによって AJAX 呼び出しが許可されません。

OPTIONS リクエストを認証しないように Tomcat を設定しようとしましたが、うまく動作しませんでした。

Tomcat で OPTIONS リクエストの HTTP 認証を無効にするにはどうすればいいですか?

答え1

多分この答え役に立ちます。つまり、次のようにして、認証されていない場合でもリクエストを CorsFilter に転送するように Tomcat サーバーを構成する必要があります。

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

「auth-constraint」要素を含めないようにしてください。したがって、次の例は機能しません。

<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>

答え2

目的に応じてホワイトリストを作成する必要があります

詳細については以下を参照してください:Tomcat で HTTP メソッドを禁止すると大文字と小文字が区別されますか?

関連情報