CKAN的基本身份验证问题

时间:2016-04-11 19:25:16

标签: apache2 ckan

我在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文件中添加其他信息?

1 个答案:

答案 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)