Передача информации аутентификации дайджеста apache2 в сценарий wsgi, запускаемый mod_wsgi

StackOverflow https://stackoverflow.com/questions/123499

Вопрос

У меня есть директива

<VirtualHost *>
    <Location />
        AuthType Digest
        AuthName "global"
        AuthDigestDomain /
        AuthUserFile /root/apache_users
        <Limit GET>
            Require valid-user
        </Limit>
    </Location>
    WSGIScriptAlias / /some/script.wsgi
    WSGIDaemonProcess mywsgi user=someuser group=somegroup processes=2 threads=25
    WSGIProcessGroup mywsgi
    ServerName some.example.org
</VirtualHost>

Я хотел бы знать в /some/script.wsgi

def application(environ, start_response):
    start_response('200 OK', [
        ('Content-Type', 'text/plain'),
    ])
    return ['Hello']

Какой пользователь вошел в систему.

Как мне это сделать?

Это было полезно?

Решение

добавлять WSGIPassAuthorization On:

<VirtualHost *>
    <Location />
        AuthType Digest
        AuthName "global"
        AuthDigestDomain /
        AuthUserFile /root/apache_users
        <Limit GET>
            Require valid-user
        </Limit>
    </Location>
    WSGIPassAuthorization On
    WSGIScriptAlias / /some/script.wsgi
    WSGIDaemonProcess mywsgi user=someuser group=somegroup processes=2 threads=25
    WSGIProcessGroup mywsgi
    ServerName some.example.org
</VirtualHost>

Тогда просто прочти environ['REMOTE_USER']:

def application(environ, start_response):
    start_response('200 OK', [
        ('Content-Type', 'text/plain'),
    ])
    return ['Hello %s' % environ['REMOTE_USER']]

Дополнительная информация на документация mod_wsgi.

Другие советы

Дополнительную информацию об Apache/mod_wsgi и механизмах доступа, аутентификации и авторизации можно найти в:

http://code.google.com/p/modwsgi/wiki/AccessControlMechanisms

По умолчанию информация не передается, поскольку это может привести к утечке информации о пароле в приложения, которые, возможно, не должны ее получать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top