Solr аутентификация (с использованием Django Haystack) - PullRequest
1 голос
/ 21 сентября 2011

Мой сервис solr работает без HTTP-аутентификации, но мой веб-хостинг предоставляет его, и я хотел бы воспользоваться этим.

Мне дали имя пользователя и пароль для доступа к моему сервису solr через dotcloud вформа URL:

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

Когда я указываю своему браузеру на этот адрес, он работает просто отлично.

В моем файле settings.py есть следующая строка:

    HAYSTACK_SOLR_URL = 'http://dotcloud:XXXXXXXXXXXXXXXXXXX@gigsmash-teamfoobar.dotcloud.com/solr/' 

, но когда я запускаю ./manage.py build_solr_schema, я получаю следующую ошибку:

ValueError: недопустимый литерал для int () с основанием 10:'XXXXXXXXXXXXXXXXXX@gigsmash-teamfoobar.dotcloud.com'

У меня нет проблем при создании схемы, если я удалю URL, но затем яя не могу создать индекс («Ошибка 401: не авторизован»), что, конечно, имеет смысл.

Я не могу найти ничего в документах по стогу сена, в которых говорится об аутентификации.Это похоже на то, что можно решить с помощью дополнительной пары строк в settings.py, например:

    HAYSTACK_SOLR_USER = 'dotcloud'
    HAYSTACK_SOLR_PSSWD = 'XXXXXXXXXXXXXXXXXXX'

, но без кубиков.Полный список настроек Haystack ничего не показывает по этим направлениям: http://docs.haystacksearch.org/dev/settings.html.

Любые идеи ??

Спасибо.

1 Ответ

2 голосов
/ 27 сентября 2011

Я столкнулся с той же проблемой на dotcloud. Ошибка на самом деле не в стоге сена - это в pysolr. Pysolr предполагает, что если в URL есть двоеточие, все после него должно быть номером порта.

Одним из кратковременных решений было бы использование следующей конфигурации в вашем сервисе dotcloud solr для отключения аутентификации:

конфигурация: solr_authentication: false

Я бы делал это только в среде разработчиков, и если у вас там есть данные, которые не являются конфиденциальными (поскольку любой может получить этот URL). Окончательное решение заключается в исправлении pysolr.

...