Подтвердить что ты не робот

OmniAuth Google OpenID WEBrick:: HTTPStatus:: RequestURITooLarge

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

4b9b3361

Ответ 1

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

Ответ 2

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

gem 'mongrel', '1.2.0.pre2'

Ответ 3

Предел размера URL-адреса уже изменился с 1024 до 2083 в последнем рубиновом источнике. Я надеюсь, что обновленная версия Ruby с включенным исправлением будет выпущена в ближайшее время:)

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

Ответ 4

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

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

Ответ 5

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