Solr身份验证(使用Django Haystack)

Solr身份验证(使用Django Haystack),solr,django-haystack,dotcloud,Solr,Django Haystack,Dotcloud,我的solr服务在没有HTTP身份验证的情况下工作,但是我的webhost提供了它,我想利用它 dotcloud以url的形式为我提供了访问solr服务的用户名和密码: "http://dotcloud:XXXXXXXXXXXXXXXXXXXX@gigsmash teamfoobar.dotcloud.com/solr/' 当我把浏览器指向这个地址时,它工作正常 在my settings.py文件中,我有以下行: HAYSTACK_SOLR_URL = 'http://dotcloud:

我的solr服务在没有HTTP身份验证的情况下工作,但是我的webhost提供了它,我想利用它

dotcloud以url的形式为我提供了访问solr服务的用户名和密码:

"http://dotcloud:XXXXXXXXXXXXXXXXXXXX@gigsmash teamfoobar.dotcloud.com/solr/'

当我把浏览器指向这个地址时,它工作正常

在my settings.py文件中,我有以下行:

    HAYSTACK_SOLR_URL = 'http://dotcloud:XXXXXXXXXXXXXXXXXXX@gigsmash-teamfoobar.dotcloud.com/solr/' 
但是,当我运行./manage.py build\u solr\u schema时,会出现以下错误:

ValueError:基数为10的int()的文本无效:'XXXXXXXXXXXXXXXXXX@gigsmash-teamfoobar.dotcloud.com'

如果删除URL,构建模式不会有任何问题,但是我无法构建索引(“错误401:UNAUTHORIZED”),这当然是有意义的

我在haystack文档中找不到任何关于身份验证的内容。这似乎可以通过settings.py中的额外两行来解决,如:

    HAYSTACK_SOLR_USER = 'dotcloud'
    HAYSTACK_SOLR_PSSWD = 'XXXXXXXXXXXXXXXXXXX'
但是,没有骰子。一个完整的干草堆设置列表并没有显示任何内容:

有什么想法吗


谢谢。

我在dotcloud上遇到了同样的问题。这个错误实际上并不存在于草堆中——而是在pysolr中。Pysolr假设,如果url中有冒号,那么它后面的所有内容都必须是端口号

一个短期修复方法是在dotcloud solr服务上使用以下配置来禁用身份验证:

配置: solr_身份验证:false


我只会在开发环境中这样做,如果你有不敏感的数据(因为任何人都可以访问该url)。最终的解决方案是修补pysolr。

如何“修补pysolr”?我甚至不知道这意味着什么:-/pysolr项目托管在这里:。您可以通过github提交特性/错误请求,也可以下载源代码,修改连接到solr的行,并在部署中替换版本。能够使用用户名和密码处理solr URL将非常有用,因此我建议提交功能请求。谢谢@Borys。我提出了一个特性请求,因为我太新手了,不知道从哪里开始源代码!如果有什么不对劲,我会发回这里。