Passando le informazioni di autenticazione digest di apache2 a uno script wsgi eseguito da mod_wsgi
-
02-07-2019 - |
Domanda
Ho la direttiva
<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>
Mi piacerebbe sapere in /some/script.wsgi
def application(environ, start_response):
start_response('200 OK', [
('Content-Type', 'text/plain'),
])
return ['Hello']
Quale utente ha effettuato l'accesso.
Come posso farlo?
Soluzione
aggiungi 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>
Quindi leggi environment ['REMOTE_USER']
:
def application(environ, start_response):
start_response('200 OK', [
('Content-Type', 'text/plain'),
])
return ['Hello %s' % environ['REMOTE_USER']]
Ulteriori informazioni su mod_wsgi documentazione .
Altri suggerimenti
Ulteriori informazioni su Apache / mod_wsgi e sui meccanismi di accesso, autenticazione e autorizzazione sono disponibili in:
http://code.google.com/p/modwsgi/wiki/AccessControlMechanisms
Le informazioni non vengono passate per impostazione predefinita perché ciò potrebbe far trapelare informazioni sulla password alle applicazioni che forse non dovrebbero ottenerle.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow