我的Epson TM-T88V-i票據打印機嘗試從需要打印機通過HTTP摘要進行身份驗證的服務器URL中獲取XML數據。 (此Epson功能稱爲「Server Direct Print」)愛普生TM-T88V-i摘要式身份驗證不起作用
從打印機的Web控制檯中,我可以向服務器發送測試請求,但HTTP摘要身份驗證失敗。如果我讓打印機嘗試在服務器進行身份驗證,也會發生同樣的情況。
如果我嘗試通過瀏覽器訪問URL,則會出現HTTP摘要用戶名+密碼框,如果輸入憑據,XML將按預期顯示在瀏覽器中。這表明,服務器端的HTTP摘要機制設置正確(我正在使用PHP框架Symfony 2.8)。
在服務器側我看到以下日誌信息:
步驟1
[2016年4月3日16時33分01秒] security.INFO:一個被的AuthenticationException拋出 ;重定向到認證入口點。 (「代碼」:代碼: 0):在TokenStorage中找不到Token,位於/home/.../src/Symfony(「代碼: 0」): /Component/Security/Http/Firewall/AccessListener.php:53)「}
步驟2
[2016年4月3日16時33分01秒] security.DEBUG:調用認證條目 點。
步驟3
[2016年4月3日16時33分01秒] security.DEBUG:從用戶代理接收的摘要的授權報頭 。 { 「頭」: 「用戶名= \」 打印機\」, 境界= \ 「示例\」, 隨機數= \ 「MTQ1OTk5Mzk4MS40NjQ3OmI0OTVmN2ZkZTlhYmE1NmNjNDIxNmIxMWU0OGVmYjUz \」,URI = \ 「/出口\」,cnonce = \ 「MDAxNjM0 \」,NC = 00000001,QOP = \ 「AUTH \」, 響應= \」 c6ad88607624efd17f7de602f6ee9def \ 「」}
步驟4
[2016年4月3日16時33分01秒] security.DEBUG: 意外DigestAuth收到的 響應;頭部是否返回明文密碼? { 「預期的」: 「 741bff6abed513b6948c26eae529b6b6」, 「接收到的」: 「 c6ad88607624efd17f7de602f6ee9def」}
步驟5
[2016年4月3日16時33分01秒] security.INFO :摘要式身份驗證失敗。 {「exception」:「[object] (Symfony \ Component \ Security \ Core \ Exception \ BadCredentialsException(代碼: 0): /href//防火牆/ DigestAuthenticationListener。PHP:107)「}
日誌文件告訴我們發生了什麼服務器端:
在步驟1 + 2愛普生試圖訪問該HTTP摘要保護服務器URL和服務器發送一個401「未授權」響應與隨機數(我們沒有看到這在該日誌文件)
在步驟3中愛普生髮送HTTP摘要客戶機授權請求包括所有必需的數據,該響應參數包含一個散列應該生成其他授權參數
在第4步我的symfony 2.8應用程序說,由Epson在步驟3發送的哈希響應參數不是HTTP摘要所期望的那個參數處理。
步驟5最後顯示HTTP摘要認證失敗。
據我理解,摘要認證處理(上wikipedia如所描述的)是正確的,所不同的是愛普生不會在他的認證請求計算正確的散列。
有誰知道爲什麼愛普生髮送錯誤的響應參數或有人讓這種情況下工作?