Есть сайт servicedesk
Есть рабочий скрипт для локальной авторизации
s = requests.Session()
url = 'https://~.ru/j_security_check'
s.get(url)
data = dict(j_username='test', j_password='test')
s.post(url, data=data)
Хочу выполнить вход под доменной у/з, j_security_check ругается.
Смотрел по Network в IE (F12) в POST, там примерно следующее:
Для локальной (успешный вход)
j_username=test&j_password=test&domain=Local+Authentication&LDAPEnable=false&hidden=Select+a+Domain&hidden=For+Domain&AdEnable=true&DomainCount=0&LocalAuth=No&LocalAuthWithDomain=No&dynamicUserAddition_status=true&localAuthEnable=true&logonDomainName=Local+Authentication&loginButton=
Для доменной (успешный вход)
AUTHRULE_NAME=SDRelationalLoginModule&j_username=user&j_password=userpass&domain=3&DOMAIN_NAME=DOMEN&LDAPEnable=false&hidden=Select+a+Domain&hidden=For+Domain&AdEnable=true&DomainCount=0&LocalAuth=No&LocalAuthWithDomain=DOMEN&dynamicUserAddition_status=true&localAuthEnable=true&logonDomainName=DOMEN&loginButton=
Пробовал код:
s = requests.Session()
url = 'https://~.ru/j_security_check'
s.get(url)
data = dict(j_username='user', j_password='userpass', domain='3', DOMAIN_NAME='DOMEN',
LocalAuthWithDomain='DOMEN', logonDomainName='DOMEN')
s.post(url, data=data)
Не помогло.
Сам блок выбора домена:
<span id="domainListSelect" style="display:block;">
<select name="domain" class="form-control" onchange='checkLocalAuth(this)'>
<option>-- Choose Domain --</option>
<option value="1"> DOMEN1 </option> <!-- NO OUTPUTENCODING -->
<option value="2"> DOMEN2 </option> <!-- NO OUTPUTENCODING -->
<option value="3"> DOMEN</option> <!-- NO OUTPUTENCODING -->
<option value='Local Authentication'>Local Authentication</option>
</select>
</span>
Как реализовать выбор домена в POST?