i hava an apple!
公司svn采用证书管理,使用pysvn来进行svn的diff、getlog等操作时,就需要有权限,不进行设置直接使用会提示如下:
ClientError: unhandled exception in callback_ssl_client_cert_promptcopy from google ┓( ´∀` )┏
http://pysvn.stage.tigris.org/docs/pysvn_prog_ref.html
callback_ssl_client_cert_prompt在每次需要客户端认证的时候会被调用,然后返回的参数有限制。
在使用的时候,我没有设置过callback,所有需要客户端认证的时候就出了问题,报了一个异常。
copy!
自定义证书以及密码的回调函数:
#出于安全考虑,这边不直接写证书具体存放位置以及密码,只说明原因
import pysvn
CERT_FILE= "/test/A/youcertfile.pfx" #实际svn签名证书在本机的绝对路径
PASS_WORD= "test" #svn证书对应的密码
#自定义svn的回调函数
def ssl_client_cert_prompt(realm, may_save):
return True, CERT_FILE, True
def ssl_client_cert_password_prompt(realm, may_save ):
return True, PASS_WORD, True
#替换pysvn client对象的认证回调函数,使其可以使用所有的pysvn操作
def svn_client():
client= pysvn.Client()
client.callback_ssl_client_cert_prompt= ssl_client_cert_prompt
client.callback_ssl_client_cert_password_prompt= ssl_client_cert_password_prompt
return client
网友评论