我在Ubuntu服务器上安装了CKAN。由于我们要求限制对任何人的访问,因此我们在服务器上配置了Basic Auth。我们使用auth模块配置了apache2,并使用.htaccess文件来管理凭据。它按预期限制访问,但一旦最终用户输入用户名/密码,他们就会使用这些凭据自动登录CKAN。不幸的是,它不允许我以我自己的身份登录。
我开始使用的apache.wsgi文件列在文档:http://docs.ckan.org/en/ckan-2.0/deployment.html#create-the-wsgi-script-file
中按照此处描述的指导(https://lists.okfn.org/pipermail/ckan-discuss/2013-August/002862.html),我在apache.wsgi文件中添加了一些新行。不幸的是,它仍然无法正常工作。例如它使用基本的auth params登录CKAN。
以下是我的apache.wsgi文件的当前版本。
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)
有关解决此问题的方法的任何指导或建议?我是否需要在apache.wsgi文件中添加其他信息?
答案 0 :(得分:1)
你需要带有pop的行,而不是url_scheme。
即。在你的apache.wsgi改变:
application = loadapp('config:%s' % config_filepath)
为:
_application = loadapp('config:%s' % config_filepath)
def application(environ, start_response):
environ.pop('REMOTE_USER', None)
return _application(environ, start_response)