Passando apache2 digerir informações de autenticação para um script wsgi executado por mod_wsgi
-
02-07-2019 - |
Pergunta
Eu tenho a 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>
Eu gostaria de saber na /some/script.wsgi
def application(environ, start_response):
start_response('200 OK', [
('Content-Type', 'text/plain'),
])
return ['Hello']
O usuário está conectado.
Como posso fazer isso?
Solução
add 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']
Em seguida, basta ler-se:
def application(environ, start_response):
start_response('200 OK', [
('Content-Type', 'text/plain'),
])
return ['Hello %s' % environ['REMOTE_USER']]
Mais informações em mod_wsgi .
Outras dicas
Informações adicionais sobre Apache / mod_wsgi e acesso, autenticação e mecanismos de autorização pode ser encontrado em:
http://code.google.com/p/modwsgi/wiki/AccessControlMechanisms
A informação não é passado por padrão, pois isso poderia vazar informações senha para aplicativos que talvez não deve obtê-lo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow