python - deploy - Pasar apache2 digiere información de autenticación a un script wsgi ejecutado por mod_wsgi
wsgi django (2)
Tengo la directiva
<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>
Me gustaría saber en el /some/script.wsgi
def application(environ, start_response):
start_response(''200 OK'', [
(''Content-Type'', ''text/plain''),
])
return [''Hello'']
Qué usuario está conectado
¿Cómo puedo hacer eso?
Se puede encontrar información adicional sobre Apache / mod_wsgi y mecanismos de acceso, autenticación y autorización en:
http://code.google.com/p/modwsgi/wiki/AccessControlMechanisms
La información no se pasa de manera predeterminada porque al hacerlo podría perder información de contraseña a las aplicaciones que tal vez no deberían obtenerla.
agregar 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>
Luego solo lea environ[''REMOTE_USER'']
:
def application(environ, start_response):
start_response(''200 OK'', [
(''Content-Type'', ''text/plain''),
])
return [''Hello %s'' % environ[''REMOTE_USER'']]
Más información en la documentación de mod_wsgi .