couchDB, Python и аутентификация

(Система импорта. IO)

if Not Directory.Exists(Path) then
  Directory.CreateDirectory(Path)
end if
11
задан idiotype 21 November 2009 в 19:15
поделиться

3 ответа

Класс Couch в примере не передает никакой аутентификационной информации в базу данных, поэтому не чудо, что он не разрешает привилегированные операции. Итак, ваши единственные варианты:

  • полностью отключить аутентификацию (как вы упомянули)
  • передать имя пользователя и пароль как часть URI
  • передать имя пользователя и пароль как Авторизация HTTP заголовок запроса

Если вы хотите передать имя пользователя и пароль, вам нужно будет изменить класс Couch . Отправить заголовок HTTP-запроса Authorization проще, поскольку класс Couch использует класс httplib.HTTPConnection . Вы можете добавить такой заголовок рядом с Accept следующим образом:

headers = {
    "Accept": "application/json",
    "Authorization": "Basic " + 'username:password'.encode('base64')[:-1]}

То же самое для других методов HTTP-запроса.

Документация по базовой аутентификации находится здесь:

http://books.couchdb.org/relax/reference/security

5
ответ дан 3 December 2019 в 01:53
поделиться

Вы также можете:

db = couchdb.Database("http://your.url/yourdb")
db.resource.http.add_credentials(username, password)

, после чего все ваши запросы должны работать.

6
ответ дан 3 December 2019 в 01:53
поделиться

Есть несколько патчей для python-couchdb, включающих аутентификацию. Вероятно, код будет включен в версию 0.7, но до тех пор вы можете использовать вилку по адресу http://github.com/mdornseif/couchdb-python - это позволяет вам использовать _COPY11@127.0.0.1:5984/ URL типа.

http://blogs.23.nu/c0re/2009/12/running-a-couchdb-cluster-on-amazon-ec2/ (внизу) - показывает, как использовать пароли CouchDB.

.
0
ответ дан 3 December 2019 в 01:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: