的答案,previous question顯示的Nexus實現custom authentication helper稱爲「NxBASIC」。實現自定義的Python認證處理
如何開始在python中實現一個處理程序?
更新:
實現按Alex的建議的處理看起來是正確的做法,但沒有試圖提取從AUTHREQ方案和境界。 爲AUTHREQ返回的值是:
str: NxBASIC realm="Sonatype Nexus Repository Manager API""
AbstractBasicAuthHandler.rx.search(AUTHREQ)僅返回單個元組:
tuple: ('NxBASIC', '"', 'Sonatype Nexus Repository Manager API')
所以方案中,境界= mo.groups()失敗。從我有限的正則表達式知識看來,AbstractBasicAuthHandler的標準正則表達式應該與方案和領域相匹配,但似乎沒有。
的正則表達式是:
rx = re.compile('(?:.*,)*[ \t]*([^ \t]+)[ \t]+'
'realm=(["\'])(.*?)\\2', re.I)
更新2: 從AbstractBasicAuthHandler的檢查,默認處理是要做到:
scheme, quote, realm = mo.groups()
更改爲這個工程。我現在只需要在正確的領域設置密碼。謝謝Alex!
可惜我不能解密給定的Java源代碼足夠的把握如何不同於基本身份驗證 - 我也許能幫助Python的一部分,如果有人解釋這種「NxBasic」認證(從基本的區別,特別是!)。 – 2009-07-03 22:03:36
與HttpBasicHelper比較表明HttpNxBasicHelper是直副本。唯一的區別似乎是ChallengeScheme的名稱和描述。 – 2009-07-04 13:21:37