17

I am using OmniAuth to allow users to log in with their Google OpenID accounts. When I try to log in in development mode with WEBrick, I get a WEBrick::HTTPStatus::RequestURITooLarge error. When I deploy it to my rails host, it works fine. Is there a different web server I should use instead of WEBrick?

Shlomo Zalman Heigh
  • 3,968
  • 8
  • 41
  • 71

5 Answers5

17

Strange, I wonder what the URI length limit is for WEBrick. You could try thin http://code.macournoyer.com/thin/. I use this locally for development sometimes and it seems to work great.

raidfive
  • 6,603
  • 1
  • 35
  • 32
11

As mentioned in railscast 236 for OmniAuth, WEBrick has trouble with long urls given by OpenID. The solution given that worked for me was to add Mongrel to your gemfile.

gem 'mongrel', '1.2.0.pre2'

John
  • 4,362
  • 5
  • 32
  • 50
7

Add a file called webrick.rb file to the config\initializers directory.

if defined?(WEBrick::HTTPRequest)
  WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
end
Harish Shetty
  • 64,083
  • 21
  • 152
  • 198
3

The url size limit changed from 1024 to 2083 in the latest ruby source already. I hope an updated ruby version with this fix included will be released soon :)

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

gucki
  • 4,582
  • 7
  • 44
  • 56
  • Usually Webrick is used for debugging so a small monkey-patch will not harm you ;) – KirylP Jul 26 '11 at 12:26
  • Yeah, but it's ugly and there's really no need for such a low limit...good they already fixed it :) – gucki Jul 26 '11 at 15:59
0

I ran into this same issue with Caseproof's DataTables gem using Webbrick and a table that had a lot of columns (> 15). Switching to the thin server resolved my issue as well. DataTables is a javascript/jquery plugin for creating tables.

slm
  • 15,396
  • 12
  • 109
  • 124