2016-04-12 9 views
1

私はLighttpd(1.4.28)をインストールしたLinuxサーバーを持っています。今、私はこのように複数のフォルダ(13)のセットアップ認証を持っている:Lighttpd認証

auth.debug = 2 
auth.backend = "plain" 
auth.backend.plain.userfile = "/home/.lighttpdpasswd" 
auth.require = (

"/test1" => 
      (
      "method" => "basic", 
      "realm" => "Password protected area", 
      "require" => "user=test1" 
      ), 
. 
. 
. 

"/test13" => 
      (
      "method" => "basic", 
      "realm" => "Password protected area", 
      "require" => "user=test13" 
      ), 
) 

そしてlighttpdpasswdは、このようなものです:

test1:test1 
test2:test2 
test3:test3 
test4:test4 
test5:test5 
test6:test6 
test7:test7 
test8:test8 
test9:test9 
test10:test10 
test11:test11 
test12:test12 
test13:test13 

、1から9までのフォルダに対して、認証は10のために、素晴らしい作品、11、.. 13アクセスは正しい資格で拒否されます!

これはlighttpdのバグですか、それともいくつかのパラメータを追加する必要がありますか?

答えて

1

lighttpd mod_authは、auth.requireリストを参照するため、単純なプレフィックスマッチを行います。それは完全なパスの一致を探すのではなく、プレフィックスの一致だけを探します。

長いパスをauth.requireリストの短いパスの前に置くことで、 "test1"より前の "test10"と "test11"