【发布时间】:2020-04-24 10:08:25
【问题描述】:
ActionDispatch::Cookies::CookieOverflow (ActionDispatch::Cookies::CookieOverflow):
actionpack (4.2.8) lib/action_dispatch/middleware/cookies.rb:529:in `[]='
点击 redmine rest api 时出现此错误。像 url1 这样的简单 get api 可以正常工作,但是当涉及像 url2 这样的复杂 url 时,应用程序会引发 cookie 溢出。
url1: localhost:3000/issues.json?page=1&limit=100
url2: http://localhost:3000/issues.json?key=292fe116d13d5f5db8a0e3f2b031f1e57ad1c882&f[]=project_id&op[project_id]=!&v[project_id][]=505&f[]=project_id&op[project_id]=!&v[project_id][]=478&f[]=project_id&op[project_id]=!&v[project_id][]=366&f[]=project_id&op[project_id]=!&v[project_id][]=419&f[]=project_id&op[project_id]=!&v[project_id][]=343&f[]=project_id&op[project_id]=!&v[project_id][]=345&f[]=project_id&op[project_id]=!&v[project_id][]=512&f[]=project_id&op[project_id]=!&v[project_id][]=487&f[]=project_id&op[project_id]=!&v[project_id][]=473&f[]=project_id&op[project_id]=!&v[project_id][]=509&f[]=project_id&op[project_id]=!&v[project_id][]=520&f[]=project_id&op[project_id]=!&v[project_id][]=404&f[]=project_id&op[project_id]=!&v[project_id][]=440&f[]=project_id&op[project_id]=!&v[project_id][]=389&f[]=project_id&op[project_id]=!&v[project_id][]=467&f[]=project_id&op[project_id]=!&v[project_id][]=501&f[]=project_id&op[project_id]=!&v[project_id][]=474&f[]=project_id&op[project_id]=!&v[project_id][]=471&f[]=project_id&op[project_id]=!&v[project_id][]=480&f[]=project_id&op[project_id]=!&v[project_id][]=507&f[]=project_id&op[project_id]=!&v[project_id][]=383&f[]=project_id&page=1&limit=100
除了用户名和会话中的 CAS 票之外,我没有存储任何内容:
request.session['cas'] = { 'user' => user, 'ticket' => ticket, 'extra_attributes' => [] }
我已经在很多论坛中搜索过解决方案。所有人都说不要保存不必要的数据,但我只保存用户名和 CAS 票。当我打印会话时,结果如下:
puts(session.to_hash)
{"session_id"=>"fbe61cf9fd1c2ef0111d5d84a1a374c2", "cas"=>{"user"=>"user@gmail.com", "ticket"=>"ST-27189-R20MW7GBWaLWNJvl1aMi-localhost", "extra_attributes"=>[]}}
但是当像下面这样检查会话时,我得到了大量的乱码数据,如下所示。我看到来自 GET 的 ActiveRecord 内容和查询参数确实是会话的一部分。
puts(session.inspect)
[result]: https://textsaver.flap.tv/lists/3caw "Click here for session.inspect output"
由于我是新手并且刚刚开始在 Rails 上使用 ruby,任何建议都将受到高度赞赏。 谢谢。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 session redmine