python - WSGI/Django : pass username back to Apache for access log

标签 python django apache authentication 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)

最佳答案

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

from apache.httpd import request_rec
r = request_rec(environ['apache.request_rec'])
r.user = user

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

你真的应该把这个讨论带到 mod_wsgi 邮件列表。

关于python - WSGI/Django : pass username back to Apache for access log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2244244/

相关文章:

python - 将 python 列表增加 mod x_i 的量,其中 x_i 取决于位置

python - 如何管理一个漫长(数天)的Python进程

php - 如何使用 PHP 在 Linux/Apache 上使用 Windows 身份验证连接到 SQL Server?

linux - 部署地理服务器 WAR 后,Tomcat 未在浏览器上加载 - Ubuntu

具有多个 ServerAlias 的 Apache2 动态虚拟主机

python - 全局变量如何/为什么可用/在嵌套类实例的范围内,但 "nonlocal"变量不可用?

python - 如何使用不带引号的键从字符串中生成有效的 JSON?

python - choicefield的Django初始值

python - 如何验证跨外键的唯一性约束(django)

javascript - 这种 XSS 攻击是如何工作的?