亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當提供的密碼不正確時,如何停止對Jira的遞歸登錄嘗試?

當提供的密碼不正確時,如何停止對Jira的遞歸登錄嘗試?

喵喔喔 2022-08-11 17:47:26
我正在使用python構建一個實用程序來連接到Jira并提取TEST覆蓋率。作為此工具的一部分,我要求用戶輸入用戶憑據。該工具會等待用戶輸入,例如輸入usid / pwd,一旦成功,則要求提供Jira查詢。然后,它運行查詢并提供結果。這里的問題是,作為一個負面場景,我嘗試輸入了一個不正確的密碼,但后來Jira本身嘗試了多次使用不正確的憑據并鎖定了帳戶。我們如何在第一個警告本身中停止這種重試,并捕獲該警告以提醒用戶檢查其輸入的密碼/usid是否正確?我嘗試了嘗試/except block,但它似乎沒有抓住它。警告:root:從GET https://jira.xxxxxxcom/rest/api/2/serverInfo 獲取錯誤,將在1.5083078521975724中重試[1/3]。錯誤: 401警告:root:從 GET https://jira.xxxxxxcom/rest/api/2/serverInfo 獲取了可恢復的錯誤,將在 35.84973140451337 中重試 [2/3]。錯誤: 401我的代碼如下:pwd=input("Enter Jira credentials")while True:    **try:**        jira = JIRA(options={'server': 'https://jira.dummy.com', 'verify': False}, basic_auth=(os.getlogin(), pwd))     //executing this line internally retry the same invalid credential many times        return jira   // returns jira handle to another function to process.        break    **except JIRAError as e:**        if (e.status_code == 401):            print("Login to JIRA failed. Check your username and password")            pwd = input("Enter your password again to access Jira OR you may close the tool ")
查看完整描述

2 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

有點晚了,但對于其他任何尋找答案的人來說,JIRA對象的構造函數上有一個max_retries屬性。

            self.__jira = JIRA(
                basic_auth=(username, password),
                max_retries=0,
                options={
                                    'server': 'https://jira.dummy.com/'
                }
            )

您可以在源代碼中看到該變量和其他變量 https://jira.readthedocs.io/en/master/_modules/jira/client.html?highlight=max_retries#


查看完整回答
反對 回復 2022-08-11
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

您似乎希望 在失敗時提示用戶輸入有效的憑據。您不是每次嘗試身份驗證時都請求憑據,因此請將輸入語句移動到無限循環中并嘗試以下操作:


while True:

    pwd=input("Enter Jira credentials")

    try:

        jira = JIRA(options={'server': 'https://jira.dummy.com', 'verify': False}, basic_auth=(os.getlogin(), pwd))     //executing this line internally retry the same invalid credential many times

        return jira   // returns jira handle to another function to process.

    except JIRAError as e:

        if (e.status_code == 401):

            print("Login to JIRA failed. Check your username and password")

            pwd = input("Enter your password again to access Jira OR you may close the tool ")

這將要求您再次輸入憑據,然后再使用相同的舊內容重試。而且在 try 語句中保留 return 語句后中斷是沒有意義的。


查看完整回答
反對 回復 2022-08-11
  • 2 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號