Проблема с Basic-авторизацией

Yuchuwa

Новичок
Регистрация
15.07.2014
Сообщения
11
Благодарностей
0
Баллы
1
Доброй ночи.

Делаю шаблон прохождения web-аутентификации(Basic Authorization, когда логин пасс нужно ввести в модальное окно). С пом ProjectMaker записал шаблон:

Код:
Start->Чистим_куки->Чистим_кэш->JavaScript_Authorization->Переход_на_192.168.1.1
Ввел логин/пароль и все заработало.
НО если логин/пасс вводится неверно то экшн "Переход_на_192.168.1.1" просто сам в себе зацикливается и посылает нон-стоп запросы на авторизицию, я заметил это просматривая траффик снифером:

Код:
Запрос:

GET / HTTP/1.1
Host: http://192.168.1.1/
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.1.1/
Authorization: Basic YWRtaW46MDM1MzUzODUwMQ==
Connection: keep-alive

Ответ:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="Verify"
Content-Type: text/html
Transfer-Encoding: chunked
Server: Apache2.2
EXT:
083
<html>
<head>
<title>Protected Object</title></head><body>
<h1>Protected Object</h1>This object on the Apache2_ server is protected
0
.......
Эти запрос/ответ продолжаются бесконечно. Может я что-то пропустил в настройках экшена "Переход на"?
Скажите пожалуйста есть ли способ определить валидность прохождения авторизации и что я делаю не так?

Спасибо
 

KirillOFF

Client
Регистрация
18.12.2010
Сообщения
1 127
Благодарностей
517
Баллы
113
Запрос составляли сами или взяли из сниффера?
 

Yuchuwa

Новичок
Регистрация
15.07.2014
Сообщения
11
Благодарностей
0
Баллы
1
Запрос/ответ - это дамп из снифера
 

KirillOFF

Client
Регистрация
18.12.2010
Сообщения
1 127
Благодарностей
517
Баллы
113
Отснифайте данные, которые передаёт обычный браузер и что передаёт PM. Потом сравните, думаю найдете отличия.
 

Yuchuwa

Новичок
Регистрация
15.07.2014
Сообщения
11
Благодарностей
0
Баллы
1
В том-то и проблема что принципиальной разницы нет. после

Код:
HTTP/1.1 401 Unauthorized
http-клиент должен отвалиться или предложить ввести логин/пасс заново, а судя по дампу трафика клиент Зеннопостера шлет сразу же еще один запрос с тем же паролем:

Код:
Authorization: Basic YWRtaW46MDM1MzUzODUwMQ==
и выхода из ситуации покачто я не получил.

Если у кого-нибудь есть возможность попробовать залогиниться зеннопостером например на домашний adsl-модем где часто бывает подобный тип авторизации, скиньте результат пожалуйста.
Очень важно уметь обработывать ситуацию с неправильным паролем.
Уверен что любой специалист или человек который длит время пользуется Зеннопостером может решить вопрос за пару минут.
 

KirillOFF

Client
Регистрация
18.12.2010
Сообщения
1 127
Благодарностей
517
Баллы
113
Да, сам браузер при неудачной авторизации уходит в бесконечный цикл.
Тут наверное чистым POST-запросом нужно слать данные.
 

Yuchuwa

Новичок
Регистрация
15.07.2014
Сообщения
11
Благодарностей
0
Баллы
1
Не, тут не POST нужен, по стандарту используется GET. Схема Basic-авторизации такая что:
После того как мы вводим логин/пароль браузер преобразует "login:password" в base64 и добавляет заголовок в запрос:

Код:
Authorization: Basic YWRtaW46MDM1MzUzODUwMQ==
В этом примере base64("admin:0353538501") = "YWRtaW46MDM1MzUzODUwMQ==".

Так что все предельно просто.
Я пока не знаю как но думаю что в Зеннопостер'е можно как-то добавить заголовок в запрос руками и использовать экшн "GET-запрос", но тогда тогда для меня непонятно как работать с полученным контентом, т.е. полученный контент надо будет представить как html и уже над ним выполнять стандартные действия.

Это все как-то "неправильно", какое-то велосипедостроение. Должно быть какое-то стандартное решение
 

KirillOFF

Client
Регистрация
18.12.2010
Сообщения
1 127
Благодарностей
517
Баллы
113
Придется весь проект делать без использования браузера :-)
 

Yuchuwa

Новичок
Регистрация
15.07.2014
Сообщения
11
Благодарностей
0
Баллы
1
Мне нужно залогиниться на сайт, получить форму, некоторые поля которой уже заполнены, изменить некоторые поля и сделать POST(т.е. сохранить).
Верстка сайта в разных модификациях различная, произвольно добавляются и убираются некоторые поля, но те поля значения которых мне нужно изменить есть во всех модификациях и называются одинаково во всех модификациях.
Пробовал парсить HTML на PHP, но унифицированного решения получить не удалось.

Без использования браузера с пом Зеннопостер это возможно сделать?
 

KirillOFF

Client
Регистрация
18.12.2010
Сообщения
1 127
Благодарностей
517
Баллы
113
Сделать-то можно, но рациональнее на том же php (имхо).
 

Yuchuwa

Новичок
Регистрация
15.07.2014
Сообщения
11
Благодарностей
0
Баллы
1
Это можно считать багом?
Если что, можно багрепорт написать.
А насчет php надо будет еще взвесить за и против
 

KirillOFF

Client
Регистрация
18.12.2010
Сообщения
1 127
Благодарностей
517
Баллы
113
Зацикливание - судя по всему баг.
 

Yuchuwa

Новичок
Регистрация
15.07.2014
Сообщения
11
Благодарностей
0
Баллы
1
Вобщем, запостил баг-репорт: http://zennolab.com/discussion/threads/zaciklivanie-ehkshena-perexod-na.14660/
но на сколько понимаю это ошибка в логике, потомучто в ответе сервера содержится приглашение к введению логина/пароля и экшн автоматом пытается выполнить авторизацию в ответ на это приглашение.
Это может лечиться просто явным указанием количества посылаемых запросов за время работы экшена, а в настройках к сожаелению этого нет
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)