내 응용 프로그램에서 일부 사용자가 유효한 SVN 사용자인지 확인해야합니다. SVN 명령 줄 도구/Tortoise SVN Commndline 또는 Python을 사용하여이 작업을 수행하고 싶습니다. 나는 PySVN을 찾았지만 그 라이브러리에 현재 사용자를 인증 할 방법이 없다고 생각된다. 동일한 작업을 수행 할 수있는 방법을 제안하십시오. SVN 명령 줄 또는 파이썬을 사용하여 사용자 인증
는
1
A
답변
0
이 pysvn.Client.callback_*
에 대한 설명서에서 봐, 그리고 당신은 당신이 가지고있는 방법이 일치하지 않는 경우 암호 및 오류 메시지를 표시 핸들을 제공하는 것을 볼 수 있습니다 감사합니다.
0
pysvn을 사용하여 callback_get_login을 사용하여 인증 할 수 있습니다. documentation에 따르면
:
callback_get_login 각 시간 파괴라고는 저장소에 액세스하기 위해 영역에서 사용자 이름과 암호를 필요로하고 캐시 된 자격 증명이 없습니다.
+0
내 의견을 Steve Barnes의 대답을 참조하십시오. –
0
작동시키기가 매우 어려워 보입니다. 나는 다음과 같은 결과를 내놓았다 :
def get_prepared_svn_client(self, username, pwd):
client=pysvn.Client()
class OneAttemptLogin:
"""
if login failed, pysvn goes into infinite loop.
this class is used as callback; it allows only one login attempt
"""
def __init__(self, username, pwd):
self.attempt_tried=False
self.username=username
self.pwd=pwd
def __call__(self, x,y,z):
if not self.attempt_tried:
self.attempt_tried=True
return (True, self.username, self.pwd, False)
else:
return (False, "xx", "xx", False)
client.callback_get_login=OneAttemptLogin(username, pwd)
client.set_auth_cache(False)
client.set_store_passwords(False)
client.set_default_username('')
client.set_default_password('')
client.set_interactive(False)
return client
을가 무엇을 :
이- 는 한 시도 콜백을 사용합니다. pysvn은 동일한 자격증 명을 계속해서 시도 할 것이기 때문에 작동하지 않는다면 멈출 필요가 있습니다.
자격 증명이 유지되지 않습니다 (그렇지 않은 경우 당신이 그것을 생략 할 수 있습니다 원하는 동작) 캐시가 사용되지 않도록
지우기 기본 사용자 이름과 암호,
비활성화 프롬프트
예, 캐시에 사용자 이름 암호가없는 경우에만 해당 콜백이 호출됩니다. 사용자 이름 암호 정보를 제공하고 결과를 얻을 수있는 방법을 찾을 수 없습니다. 내가 틀렸다면 나를 바로 잡아주세요. –