pysvn.Client.callback_ssl_server_trust_prompt ошибка - PullRequest
4 голосов
/ 04 февраля 2011

Эй, ребята, я получаю ошибку pysvn.Client.callback_ssl_server_trust_prompt required при попытке зафиксировать.Я понимаю, что это связано с доверием к интернет-валидации.

Вот документация, я просто ее не понимаю.

pysvn.Client.callback_ssl_server_trust_prompt

import pysvn

def ssl_server_trust_prompt( trust_dict ):
    return retcode, accepted_failures, save

client = pysvn.Client()
client.callback_ssl_server_trust_prompt = ssl_server_trust_prompt

Callback_ssl_server_trust_prompt вызывается каждый раз, когда HTTPS-сервер представляет сертификат, а Subversion не уверена, если онследует доверять.callback_ssl_server_trust_prompt вызывается с информацией о сертификате в доверительном канале.

сбои - int - битовая маска сбоев - [Что означают эти биты?] hostname - string - имя хоста, который сертификат был представлен из finger_print - string -фингерпринт сертификата valid_from - строка - действует с этой даты ISO8601 valid_until - строка - действует с этой датой ISO8601 Issue_DNAME - stirng - выданная область dname - строка - область pysvn ожидает, что callback_ssl_server_trust_prompt вернет кортеж из трех значений (retcode, accept_failures,сохранить).

retcode - логическое значение, False, если нет имени пользователя и пароля.True, если Subversion использует имя пользователя и пароль.accept_failures - int, принятые сбои позволили save - boolean, вернуть True, если вы хотите, чтобы subversion запомнила сертификат в каталоге конфигурации.верните False, чтобы предотвратить сохранение сертификата.

Ответы [ 2 ]

6 голосов
/ 24 февраля 2011

Когда pysvn пытается выполнить операции с хранилищем, к которому вы обращаетесь с помощью https, необходимо проверить подлинность сервера. Это делается путем вызова функции callback_ssl_server_trust_prompt. По умолчанию эта функция не определена. Вы, как программист, должны предоставить информацию о доверии, что вы делаете, написав функцию, которая просматривает информацию в словаре доверия и возвращает кортеж из 3 значений (описано в третьем абзаце документации).

Как только вы написали функцию, вы делаете ее callback_ssl_server_trust_prompt, присваивая имя вашей функции client.callback_ssl_server_trust_prompt

3 голосов
/ 16 августа 2016

Я исправил ошибку в документации, которая могла ввести в заблуждение относительно значения retcode.Обновленные документы действительны по адресу:

http://pysvn.tigris.org/docs/pysvn_prog_ref.html#pysvn_client_callback_ssl_server_trust_prompt

Все значения в trust_dict документированы.

Как правило, вы предлагаете человеку решить, должен ли сертификат серверабыть доверенным.

Но вот самая простая функция, которая всегда будет принимать сертификат сервера.

def ssl_server_trust_prompt( trust_dict ):
    return (True    # server is trusted
           ,trust_dict["failures"]
           ,True)   # save the answer so that the callback is not called again

Барри Скотт, автор pysvn.

...