2013-12-09 55 views
0

我正在維護一個使用python構建的web應用程序。如何從python訪問Apache會話信息

應用程序的訪問控制在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標題將會是):

>>> import os 
>>> os.environ['REMOTE_USER'] 
'admin'