WSGI/Django:将用户名传递回Apache以获取访问日志

Gun*_*iem 9 python apache authentication django mod-wsgi

我的Django应用程序使用Django的标准WSGIHandler在Apache下部署在mod_wsgi中,通过Django端的表单登录对用户进行身份验证.所以对于Apache来说,用户是匿名的.这使得Apache访问日志不那么有用.

有没有办法在处理请求后将用户名通过WSGI包装器传回Apache,以便它出现在Apache访问日志中?

(版本:Django 1.1.1,mod_wsgi 2.5,Apache 2.2.9)

Gra*_*ton 4

只有使用嵌入模式并且使用名为 apswigpy 的单独包(它为原始 Apache 请求对象提供 Python 绑定)时才可以执行此操作。mod_wsgi 包提供了一种可选机制,允许原始 Apache 请求对象作为 WSGI 环境中的 Python CObject 引用传递。您可以将其与 apswigpy 结合使用,例如:

from apache.httpd import request_rec
r = request_rec(environ['apache.request_rec'])
r.user = user
Run Code Online (Sandbox Code Playgroud)

至少我认为这将设置访问日志记录可以使用的适当信息。

您确实应该将此讨论转移到 mod_wsgi 邮件列表。