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?
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.
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'
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
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
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.
© 2022 - 2024 — McMap. All rights reserved.