OmniAuth Google OpenID WEBrick :: HTTPStatus :: RequestURITooLarge

时间:2011-02-07 21:21:08

标签: ruby-on-rails ruby-on-rails-3 webrick omniauth

我使用OmniAuth允许用户使用他们的Google OpenID帐户登录。当我尝试使用WEBrick以开发模式登录时,我收到WEBrick :: HTTPStatus :: RequestURITooLarge错误。当我将它部署到我的rails主机时,它工作正常。 我应该使用不同的Web服务器而不是WEBrick吗?

5 个答案:

答案 0 :(得分:17)

奇怪,我想知道WEBrick的URI长度限制是什么。您可以尝试thin http://code.macournoyer.com/thin/。我有时会在本地使用它进行开发,看起来效果很好。

答案 1 :(得分:11)

正如在OmniAuth的railscast 236中所提到的,WEBrick在OpenID给出的长网址上遇到了麻烦。给我的解决方案是将Mongrel添加到你的gemfile中。

  

gem'mongrel','1.2.0.pre2'

答案 2 :(得分:6)

将名为webrick.rb的文件添加到config\initializers目录。

if defined?(WEBrick::HTTPRequest)
  WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
end

答案 3 :(得分:3)

最新的ruby源中的url大小限制已从1024更改为2083。我希望包含此修复程序的更新ruby版本将很快发布:)

https://github.com/ruby/ruby/blob/trunk/lib/webrick/httprequest.rb#L291

答案 4 :(得分:0)

我使用Webbrick和一个包含大量列(> 15)的表遇到Caseproof's DataTables gem同样的问题。切换到瘦服务器也解决了我的问题。 DataTables是一个用于创建表的javascript / jquery插件。