Passando le informazioni di autenticazione digest di apache2 a uno script wsgi eseguito da mod_wsgi

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

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?

È stato utile?

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
scroll top