テストサーバーでApache基本認証を有効にしていて、うまく機能します。
AuthType Basic
AuthName "testing"
AuthUserFile /home/www/.htpasswd
Require user MyUser
deny from all
ただし、OPTIONSメソッドを介して送信されたリクエストの認証も試みます。これは問題です。CORS仕様ではExclude user credentials
- https://www.w3.org/TR/cors/#cross-Origin-request-with-preflight-
OPTIONSメソッドで受信したリクエストの認証を無効にするにはどうすればよいですか?
(Tomcatの場合と同様: TomcatでOPTIONS要求の認証を無効にする )
おそらく、Apache式(Apache 2.4+)を使用して、要求メソッドがnot "OPTIONS"の場合にのみHTTP基本認証ディレクティブを適用できます。
例えば:
<If "%{REQUEST_METHOD} != 'OPTIONS'">
# Authentication directives...
</If>
参照:
https://httpd.Apache.org/docs/2.4/expr.html
deny from all
この(Apache 2.2)ディレクティブをBasic Authディレクティブで使用する必要はありません。