Apache + OpenID,使用<if>指令与不受限制的<location>配对的<location>的条件访问?

时间:2018-10-03 09:18:53

标签: apache if-statement location mod-auth-openidc

我正在尝试将Apache与OpenID Connect(mod_auth_openidc)一起使用来限制访问,但是在特定的路径上我希望不受限制地访问。我的httpd.conf包含这样的内容

    <Location />
        Require valid-user
    </Location>
    <Location /myPath>
        Require all granted
    </Location>

和/ myPath确实具有不受限制的访问权限,即未经授权的用户可以访问。

现在,我尝试使用“ If”指令添加一些条件限制,但保持/ myPath不受限制,例如

    <Location />
        <If someBoolean>
            Require valid-user
        </If>
    </Location>
    <Location /myPath>
        Require all granted
    </Location>

在这种情况下,如果someBoolean为“ false”,则仅获得对/ myPath的无限制访问。如果为“ true”,则需要有效的用户访问/ myPath,这不是我想要的。默认路径“ /”可以正常工作,即,当且仅当someBoolean为“ true”时,它才需要有效的用户。

现在我尝试进一步测试:添加“ Else”指令后,例如

    <If someBoolean>
        Require valid-user
    </If>
    <Else>
        Require valid-user
    </Else>

在我看来,这应该等同于使用

    Require valid-user

我从来没有不受限制地访问/ myPath。

如何获得所需的行为?

0 个答案:

没有答案