2

Apache-2.4 によって提供される新しい認証および承認フレームワークを使用しており、認証 Cookie を取得できる 1 つのサブディレクトリ (場所 /foo) を除いて、サイト全体 (場所 /) を不正アクセスに対して閉じる必要があります。AuthMerging が使用するディレクティブであるように見えますが、うまくいきません:

    <Location />
            AuthType                form
            AuthFormProvider        foo
            Session                 On
            SessionCookieName       ti2f
            Include                 conf/sessionpw.conf
            AuthName                TI
            <RequireAll>
                    Require         foo ipaddress
                    Require         foo expiration
            </RequireAll>
            ErrorDocument           401     /foo/
    </Location>

    <Location /foo>
            AuthMerging Or
            Require  all granted
            DirectoryIndex index.php
    </Location>

残念ながら、/foo へのアクセスはブロックされたままです -- 401 Unauthorized. LogLevel をクランクアップすると、mod_authz_core によってログに記録された次のメッセージが表示されます。

authorization result of Require all granted: granted
authorization result of <RequireAny>: granted
authorization result of AuthMerging Any: granted
authorization result of Require all granted: granted
authorization result of <RequireAny>: granted
authorization result of AuthMerging Any: granted
authorization result of Require foo ipaddress: denied (no authenticated user yet)
authorization result of Require foo expiration: denied (no authenticated user yet)
authorization result of <RequireAll>: denied (no authenticated user yet)
authorization result of <RequireAny>: denied (no authenticated user yet)

サブロケーション /foo に対して AuthMerging が「Or」に設定されている場合、Apache が「許可されたすべてを要求する」許可の後に親ロケーションの require-directives を調べるのはなぜですか?

4

2 に答える 2