2013-12-09 4 views
0

Я поддерживаю веб-приложение, встроенное в python.Как получить доступ к информации о сеансе Apache из python

Контроль доступа для приложения обрабатывается на уровне Apache (с использованием файла Apache htpasswd).

Прямо сейчас, приложение работает одинаково независимо от того, кто его использует. Приложение даже не знает, кто вошел в систему. Но теперь мне нужно добавить функцию в приложение, которое требует знать, кто вошел в систему.

Итак, вопрос в следующем: есть ли способ доступа к сеансу Apache информацию и посмотреть имя пользователя, зарегистрированного пользователем i, кроме этого сеанса?

Конечно, я мог бы полностью переделать модель безопасности, чтобы приложение обрабатывало логин пользователя, но если есть какой-либо способ просто получить доступ к информации Apache, это избавит меня от большого количества работы.

Заранее благодарен!

+0

Какие рамки вы используете? –

ответ

1

Если вы используете Basic Auth, вы можете проверить 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' 
Смежные вопросы