たごもりすメモ

コードとかその他の話とか。

Apache trunk(2.3) での認証制御の変更

Apacheのtrunkを使ってたら、アクセスごとに以下のエラーメッセージが出力されて、あれー?とか思って何時間もハマっていた。

 [error] [client 192.168.x.x] no authorization providers configured

認証プロバイダとは何ぞや、と思ってひたすら2.2のドキュメントを漁っていたがよくわからず。ソレっぽい記述は端々にあるんだが。
で、ふと思いついてtrunkのリファレンスを眺めてみたら、mod_authz_host のディレクティブ体系が変わってるという情報が。なんだってー。

とりあえず全部通すために、今まで下記のように書いていたのが

 Order Allow,Deny
 Allow from all

以下のようになるらしい。

 Require all granted

全部通さない場合は以下。

 Require all denied

わかりやすくはなってるが、今更そんな記法に変更がやってくるとは思いもしなかったのが敗因。
ドキュメントはちゃんと読みましょう。

なお、認証プロバイダが確認できない(新形式での認証設定が行われていない)場合、アクセスは許可されるようだ。2.4がリリースされたら、適用する前に十分注意する必要があると思う。
追記:ちゃんと確認してみたら、一応以前のディレクティブの認証が正しく反映されている?ように見える。が、条件によってはそうでもない(意に反してForbiddenになったりする)ようにも見える。動作が不安定なのはまだtrunkだから?