2016-04-11 14 views
0

Ich habe CKAN auf einem Ubuntu-Server installiert. Da wir den Zugriff auf jeden beschränken müssen, haben wir Basic Auth auf dem Server konfiguriert. Wir haben apache2 mit den Authentifizierungsmodulen konfiguriert und eine .htaccess-Datei verwendet, um die Anmeldeinformationen zu verwalten. Es funktioniert wie vorgesehen, um den Zugriff zu beschränken, aber sobald ein Endbenutzer den Benutzernamen/das Passwort eingegeben hat, werden sie automatisch bei CKAN mit diesen Zugangsdaten angemeldet. Leider kann ich mich nicht einloggen.Basic Auth Issue mit CKAN

Die apache.wsgi Datei, die ich mit begann in der Dokumentation aufgeführt ist: http://docs.ckan.org/en/ckan-2.0/deployment.html#create-the-wsgi-script-file

Anleitung hier beschrieben verfolgt (https://lists.okfn.org/pipermail/ckan-discuss/2013-August/002862.html), habe ich ein paar neue Zeilen meiner apache.wsgi Datei. Leider funktioniert es immer noch nicht richtig. z.B. Es meldet sich in CKAN mit den grundlegenden Auth-Parametern an.

Unten ist die aktuelle Version meiner Apache.wsgi-Datei.

import os 
activate_this = os.path.join('/usr/lib/ckan/default/bin/activate_this.py') 
execfile(activate_this, dict(__file__=activate_this)) 

from paste.deploy import loadapp 

config_filepath = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'production.ini') 
from paste.script.util.logging_config import fileConfig 
fileConfig(config_filepath) 
_application = loadapp('config:%s' % config_filepath) 
def application(environ, start_response): 
    environ['wsgi.url_scheme'] = environ.get('HTTP_X_SCHEME', 'http') 
    return _application(environ, start_response) 

Irgendwelche Richtlinien oder Empfehlungen auf eine Weise, das zu beheben? Muss ich meiner apache.wsgi-Datei zusätzliche Informationen hinzufügen?

Antwort

1

Sie benötigen die Zeile mit dem Pop, nicht das url_scheme.

das heißt in Ihrem apache.wsgi Änderung:

application = loadapp('config:%s' % config_filepath) 

zu:

_application = loadapp('config:%s' % config_filepath) 
def application(environ, start_response): 
    environ.pop('REMOTE_USER', None) 
    return _application(environ, start_response) 
+0

Ihnen danken. Dies behebt das Problem. – AtomEye

Verwandte Themen