我開發了一個使用Tornado 4.2的相當大的Web應用程序。我的應用程序的其中一個處理程序負責通過發佈請求驗證用戶的登錄詳細信息。ValueError:不安全的標頭值
與set_secure_cookie特別是在此處理我用簽字cookie來識別登錄的用戶及其權限,使用下面的代碼:
self.set_cookie("user", self.get_argument("username"), domain=".my-domain.com", expires_days=None, httpOnly=True)
self.set_secure_cookie("access", str(data['permissions']), expires_days=None, httpOnly=True)
設置我用旋風的redirect餅乾後給用戶發送到另一個URL。
在大多數情況下,它按預期工作,沒有任何問題。但是,對於某些用戶,我收到以下錯誤。
self.redirect("/"+lang+"/base_fx.html")
File "/usr/lib/python2.7/dist-packages/tornado/web.py", line 671, in redirect
self.finish()
File "/usr/lib/python2.7/dist-packages/tornado/web.py", line 934, in finish
self.flush(include_footers=True)
File "/usr/lib/python2.7/dist-packages/tornado/web.py", line 884, in flush
self.add_header("Set-Cookie", cookie.OutputString(None))
File "/usr/lib/python2.7/dist-packages/tornado/web.py", line 339, in add_header
self._headers.add(name, self._convert_header_value(value))
File "/usr/lib/python2.7/dist-packages/tornado/web.py", line 369, in
_convert_header_value
raise ValueError("Unsafe header value %r", value)
ValueError: ('Unsafe header value %r', 'access="2|1:0|10:1485161516|6:access|3892:eydvd…<long string>..f0a2f8ad"; httponly; Path=/')
ERROR:tornado.general:Cannot send error response after headers written
有沒有人遇到類似的問題?
感謝@Georg!所以問題是,我沒有檢查我的安裝版本的來源,但最新的。感謝您指點我正確的方向,我已經投票併發布瞭解決方案:) – afxentios