@Headballz

Как авторизоваться на сайте с выпадающим списком (домен), используя request?

Есть сайт servicedesk
5d24ec76132a8958103852.png

Есть рабочий скрипт для локальной авторизации
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?
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
Ternick
@Ternick
Ну вообще можно использовать selenium, но он много где детектируется так что может и не поможет :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Передавайте необходимое значение value из option - "1", "2", "3" или 'Local Authentication'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы