我有一个Apache 2.2(在负载平衡器后面)和一个通过LoadModule指令加载的额外的第三方模块(OpenAMnetworking代理)。 这个模块检查每个请求是否被授权。 整个设置工作,并在第三方模块的日志中,我可以看到,检查完成相应的每个请求在Apache的访问日志中find。
如果我通过将以下指令放入Apacheconfiguration的VirtualHost部分来激活基本身份validation,情况就会改变:
<Directory /path/to/docroot> Options -MultiViews AllowOverride All Order deny,allow Deny from all Allow from 10.0.0.0/8 Allow from <other ips> AuthType Basic AuthBasicProvider file AuthName "AuthZone" AuthUserFile /path/to/htpasswd Require valid-user Satisfy Any </Directory>
现在基本身份validation工作,但不是第三方模块的检查。 似乎每一个受到基本authentication处理的请求都没有交给第三方模块。 在后者的日志中,我只能看到匹配“允许”的请求,因此没有通过基本的authentication处理。
我可以看到访问日志中的所有请求,我可以看到Apache响应Code 200的“缺失”请求。
这可能是什么原因? 错误日志不包含任何有用的信息。
虽然我不能说第三方模块,以及它如何挂钩授权stream程,我敢打赌,原因是Satisfy Any 。
当一个授权方法匹配时,它允许其余的授权步骤被跳过 – 这听起来像你所看到的。