将 apache2 摘要身份验证信息传递给由 mod_wsgi 运行的 wsgi 脚本
Posted
技术标签:
【中文标题】将 apache2 摘要身份验证信息传递给由 mod_wsgi 运行的 wsgi 脚本【英文标题】:Passing apache2 digest authentication information to a wsgi script run by mod_wsgi 【发布时间】:2010-09-12 12:24:13 【问题描述】:我有指令
<VirtualHost *>
<Location />
AuthType Digest
AuthName "global"
AuthDigestDomain /
AuthUserFile /root/apache_users
<Limit GET>
Require valid-user
</Limit>
</Location>
WSGIScriptAlias / /some/script.wsgi
WSGIDaemonProcess mywsgi user=someuser group=somegroup processes=2 threads=25
WSGIProcessGroup mywsgi
ServerName some.example.org
</VirtualHost>
我想知道 /some/script.wsgi
def application(environ, start_response):
start_response('200 OK', [
('Content-Type', 'text/plain'),
])
return ['Hello']
什么用户登录了。
我该怎么做?
【问题讨论】:
【参考方案1】:添加WSGIPassAuthorization On
:
<VirtualHost *>
<Location />
AuthType Digest
AuthName "global"
AuthDigestDomain /
AuthUserFile /root/apache_users
<Limit GET>
Require valid-user
</Limit>
</Location>
WSGIPassAuthorization On
WSGIScriptAlias / /some/script.wsgi
WSGIDaemonProcess mywsgi user=someuser group=somegroup processes=2 threads=25
WSGIProcessGroup mywsgi
ServerName some.example.org
</VirtualHost>
那么就读environ['REMOTE_USER']
:
def application(environ, start_response):
start_response('200 OK', [
('Content-Type', 'text/plain'),
])
return ['Hello %s' % environ['REMOTE_USER']]
更多信息请访问mod_wsgi documentation。
【讨论】:
非常非常感谢。【参考方案2】:有关 Apache/mod_wsgi 和访问、身份验证和授权机制的其他信息可以在以下位置找到:
http://code.google.com/p/modwsgi/wiki/AccessControlMechanisms
默认情况下不会传递该信息,因为这样做可能会将密码信息泄露给可能不应该获取它的应用程序。
【讨论】:
以上是关于将 apache2 摘要身份验证信息传递给由 mod_wsgi 运行的 wsgi 脚本的主要内容,如果未能解决你的问题,请参考以下文章