6

Принтер квитанции Epson TM-T88V-i пытается получить данные XML с URL-адреса сервера, для которого требуется аутентификация принтера через HTTP-дайджест. (эта функция Epson называется «Server Direct Print»)Ошибка аутентификации электронной почты Epson TM-T88V-i

С веб-консоли принтера я могу отправить тестовый запрос на сервер, но ошибка аутентификации HTTP не удалась. То же самое происходит, если я разрешу принтеру выполнить проверку подлинности на сервере.

Если я попытаюсь получить доступ к URL-адресу через браузер, появится окно дайджеста HTTP-пароля + пароль, и если я буду вводить учетные данные, XML будет отображаться в браузере, как и ожидалось. Это показывает, что механизм дайджеста HTTP на стороне сервера настроен правильно (я использую фреймворк PHP Symfony 2.8).

На стороне сервера я вижу следующую информацию журнала:

Шаг 1
[2016-04-03 16:33:01] security.INFO: AuthenticationException был брошен ; перенаправление на точку входа аутентификации. {"exception": "[object] (Symfony \ Component \ Security \ Core \ Exception \ AuthenticationCredentialsNotFoundException (код: 0): Токен не найден в TokenStorage. /home/.../src/Symfony /Component/Security/Http/Firewall/AccessListener.php:53) "}


Шаг 2
[2016-04-03 16:33:01] security.DEBUG: Вызов входа аутентификации точка.


Шаг 3
[2016-04-03 16:33:01] security.DEBUG: Дайджест авторизации заголовка , полученные от агента пользователя. { "Заголовок": "Имя пользователя = \" принтер \», область = \ "Пример \", нонс = \ "MTQ1OTk5Mzk4MS40NjQ3OmI0OTVmN2ZkZTlhYmE1NmNjNDIxNmIxMWU0OGVmYjUz \", Ури = \ "/ экспорт \", cnonce = \ "MDAxNjM0 \", н.д. = 00000001, QOP = \ "авт \", ответ = \» c6ad88607624efd17f7de602f6ee9def \ ""}
Шаг 4
[2016-04-03 16:33:01] security.DEBUG: Неожиданное ответ от полученного DigestAuth; это заголовок, возвращающий четкие текстовые пароли? { "ожидаемый": " 741bff6abed513b6948c26eae529b6b6", "принятый": " c6ad88607624efd17f7de602f6ee9def"}


Шаг 5
[2016-04-03 16:33:01] security.INFO : Ошибка аутентификации Digest. {"exception": "[object] (Symfony \ Component \ Security \ Core \ Exception \ BadCredentialsException (код: 0): Неверный ответ на /home/.../src/Symfony/Component/Security/Http/Firewall/DigestAuthenticationListener.PHP: 107) "}

Файл журнала говорит нам, что происходит на стороне сервера:

  1. На шаге 1 + 2 Epson пытается получить доступ к URL сервера, который HTTP Digest защищенный и сервер посылает 401 «несанкционированный» ответ с одноразовым номером (мы не видим этого в этом файле журнала)

  2. на шаге 3, Epson посылает HTTP переваривать запрос авторизации клиента, включая все необходимые данные. ответ параметр содержит хэш, который должны быть получены из другого разрешения параметры

  3. На шаге 4 мой симфони 2.8 приложения говорит, что параметр ответа хэшированного, который был послан Epson на шаге 3 не тот, который был ожидаемый к HTTP Digest обработать.

  4. Шаг 5, наконец, показывает, что ошибка аутентификации HTTP не удалась.

Насколько я понимаю, аутентификация процесс дайджеста (как описано на wikipedia) является правильным, за исключением того, что Epson не вычисляет правильный хэш в его запросе аутентификации.

Кто-нибудь знает, почему Epson отправляет неправильный параметр или кто-то заставляет этот сценарий работать?

ответ

3

Я могу решить проблему после 2 дней отладки. Длина моего пароля дайджест-авторизации была 40 символов. Я уменьшил его примерно на 20 символов. Не работает, да.

Смежные вопросы