2011-02-04 1 views
4

ちょっと、コミットしようとしたときにpysvn.Client.callback_ssl_server_trust_prompt requiredエラーが表示されます。私はそれがインターネット検証との信頼関係と関係していることを理解しています。pysvn.Client.callback_ssl_server_trust_promptエラー

ここにドキュメントがありますが、わかりません。

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サーバ は、証明書を提示し、それが信頼すべきかどう転覆 は確認されていませんたびに呼び出されます。 callback_ssl_server_trust_promptは、 証明書に関する情報とともに信頼dictで呼び出された です。

障害 - INT - 障害 のビットマスク - [これらのビットが何を意味するのですか?]ホスト名 - 文字列 - 証明書が finger_printから提示されたホスト名 - 文字列 - 証明書 指紋VALID_FROM - 文字列 - 有効な本からISO8601日付 valid_until - 文字列 - stirng - - 発行DNAMEレルム - 文字列 - この ISO8601日付issuer_dname utilの有効 レルムpysvnは、3つの値のタプルが (リターンコード、accepted_failuresは、保存) 復帰へ callback_ssl_server_trust_promptを期待しています。

retcode - ブール値でない場合はFalse、ユーザー名とパスワードは です。 サブバージョンで のユーザー名とパスワードを使用する場合は真です。 accepted_failures - int、受け入れられました 失敗しましたsave - boolean、 にサブバージョンを設定する場合は、 設定ディレクトリの証明書を覚えておいてください。証明書を保存しないようにするには、偽 を返します。

答えて

6

pysvnは、httpsを使用してアクセスするリポジトリに対して操作を実行しようとすると、サーバーのIDを検証する必要があります。これは、callback_ssl_server_trust_promptという関数を呼び出すことによって行われます。デフォルトではこの関数は定義されていません。プログラマは、信頼辞書にある情報を調べる関数を書くことによって行う信頼情報を提供し、3つの値のタプルを返します(ドキュメントの第3段落で説明します)。

あなたが機能を書かれたら、あなたはそれ私がリターンコードの意味について誤解している可能性があり、ドキュメント内のエラーを修正した

+1

「信頼する辞書」には正確にどのような情報が含まれていますか?それはどのように構造化されるべきですか?キーと値のペアは何ですか? – Enrique

2

をclient.callback_ssl_server_trust_promptためにあなたの関数名を割り当てることでcallback_ssl_server_trust_promptします。更新ドキュメントがで生きている:

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の著者。

+0

すべての証明書を受け入れることは安全ではありませんか?これにより、証明書のチェックが効果的に行われず、簡単にMitM攻撃が可能になります。 –

+0

だから私は "人間に尋ねる"と言ったのです... –

+0

申し訳ありません。オペレーティングシステムに尋ねる方法を知っていますか?証明書がルートCAまたはその子孫のいずれかによって署名されている場合は、これで十分です。 –

関連する問題