我正在维护一个用python构建的web应用程序。
应用程序的访问控制在Apache层处理(使用Apache htpasswd文件)。
现在,无论是谁使用它,该应用程序的工作方式都相同。该应用甚至不知道谁登录。但现在我需要为应用添加一项功能,该功能需要知道谁登录。
所以问题是:有没有办法访问Apache会话信息,并查看在此会话中记录的用户的用户名?
当然,我可以完全重做安全模型,以便应用程序处理用户登录,但是如果有任何方法可以访问Apache信息,那将为我节省大量工作。
提前致谢!
答案 0 :(得分:1)
如果您使用的是基本身份验证,则可以检查Authorization
HTTP标头:
>>> request.headers["Authorization"]
'Basic YWRtaW46aHVudGVyMg=='
>>> request.headers["Authorization"].partition(" ")[2].decode("base64")
'admin:hunter2'
或者,您可以检查REMOTE_USER
环境变量(虽然这不是保证的设置方式与Authorization
标题相同):< / p>
>>> import os
>>> os.environ['REMOTE_USER']
'admin'