python 重置Jira登录失败
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 重置Jira登录失败相关的知识,希望对你有一定的参考价值。
#!/usr/bin/env python3
import requests, re
from jira.client import JIRA
# Once in a while, jira api users are being blocked by jira.
# The reason is still unknown.
# Since atlassian hasn't a solution for this annoying behaviour that does not require a restart of the jira server,
# i wrote a small script, that will reset the "failed login attempts" of my api user.
# jira user credentials (maybe you should outsource these information in a seperate secure file)
jira_url = "https://jiraserver.exampledomain.com"
jira_api_user = "example_api_user"
jira_api_pass = "example_api_user_pass"
jira_admin_user = "example_admin_user"
jira_admin_pass = "example_admin_user_pass"
EXITCODE = 0
def conntect(host, user, a_pass):
global EXITCODE
try:
jira = JIRA(options={'server': host}, basic_auth=(user, a_pass), max_retries=1)
return True
except:
EXITCODE = 1
return False
def reset_failed_login(host, admin_user, admin_pass, api_user):
try:
s = requests.session()
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
r = s.get(host)
r = s.post(host+"/login.jsp", data = {'os_username':admin_user, 'os_password':admin_pass, 'login':'Log In'})
r = s.post(host+"/secure/admin/user/UserBrowser.jspa", data = {'os_username':admin_user, 'os_password':admin_pass, 'login':'Log In'})
r = s.post(host+"/secure/admin/WebSudoAuthenticate.jspa", data = {'webSudoPassword':admin_pass, 'webSudoDestination':'/secure/admin/user/UserBrowser.jspa', 'webSudoIsPost':'false'})
req = host+'/secure/admin/user/ResetFailedLoginCount.jspa?atl_token='+s.cookies.get_dict()['atlassian.xsrf.token']+'&name='+api_user+'&returnUrl=%2Fsecure%2Fadmin%2Fuser%2FUserBrowser.jspa'
r = s.post(req, data = {'webSudoPassword':admin_pass, 'webSudoDestination':'/secure/admin/user/UserBrowser.jspa', 'webSudoIsPost':'false'})
print("x")
print(r.request.headers['Cookie'])
print(r.headers)
return True
except Exception as ex:
print(ex)
print("Something really bad happened! So sorry!")
return False
if not conntect(jira_url, jira_api_user, jira_api_pass):
if reset_failed_login(jira_url, jira_admin_user, jira_admin_pass, jira_api_user):
if conntect(jira_url, jira_api_user, jira_api_pass):
print("successful")
EXITCODE = 0
else:
print("failed")
EXITCODE = 1
else:
print("No need to reset!")
EXITCODE = 0
exit(EXITCODE)
以上是关于python 重置Jira登录失败的主要内容,如果未能解决你的问题,请参考以下文章
带有 python 的 Jira API 在有效凭据上返回错误 401
Python-分角色登录界面(tkinterpymysql)