OmniAuth Google OpenID WEBrick::HTTPStatus::RequestURITooLarge

Я использую OmniAuth, чтобы пользователи могли входить в систему со своими учетными записями Google OpenID. Когда я пытаюсь войти в режиме разработки с помощью WEBrick, я получаю ошибку WEBrick::HTTPStatus::RequestURITooLarge. Когда я развертываю его на своем хосте rails, он работает нормально. Есть ли другой веб-сервер, который я должен использовать вместо WEBrick?


person SZH    schedule 07.02.2011    source источник


Ответы (5)


Странно, интересно, каков предел длины URI для WEBrick. Вы можете попробовать thin http://code.macournoyer.com/thin/. Иногда я использую это локально для разработки, и, похоже, оно отлично работает.

person raidfive    schedule 08.02.2011
comment
Я должен признать, URL-адрес довольно длинный... Он содержит много в строке запроса. - person SZH; 08.02.2011
comment
Я бы отправил сообщение об ошибке в OmniAuth или посмотрел, предоставляют ли они решение, не использующее строку запроса. - person raidfive; 08.02.2011
comment
Определенно ограничение вебрика. - person Andrew Case; 23.06.2012

Как упоминалось в railscast 236 для OmniAuth, у WEBrick есть проблемы с длинными URL-адресами, предоставляемыми OpenID. Решение, которое сработало для меня, состояло в том, чтобы добавить Mongrel в ваш gemfile.

гем 'дворняжка', '1.2.0.pre2'

person John    schedule 09.02.2011

Добавьте файл с именем webrick.rb в каталог config\initializers.

if defined?(WEBrick::HTTPRequest)
  WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
end
person Harish Shetty    schedule 07.03.2013
comment
Это лучшее решение для меня, потому что оно действительно работает с Webrick. - person noahdiewald; 21.03.2014

Ограничение размера URL уже изменено с 1024 до 2083 в последнем источнике ruby. Я надеюсь, что скоро выйдет обновленная версия ruby ​​с этим исправлением :)

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

person gucki    schedule 03.07.2011
comment
Обычно для отладки используется Webrick, так что небольшой обезьяний патч вам не повредит ;) - person KirylP; 26.07.2011
comment
Да, но это некрасиво, и такой низкий лимит действительно не нужен... хорошо, что это уже исправили :) - person gucki; 26.07.2011

Я столкнулся с той же проблемой с Caseproof's DataTables gem, используя Webbrick и таблицу, которая было много столбцов (> 15). Переход на тонкий сервер также решил мою проблему. DataTables — это подключаемый модуль javascript/jquery для создания таблиц.

person slm    schedule 25.08.2011