2011-02-07 2 views
17

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

ответ

17

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

+0

Я должен признать, что URL довольно долго ... Он содержит много в строке запроса – SZH

+1

я бы файл ошибка с OmniAuth или увидеть, если они обеспечивают решение, которое не использует строку запроса , – raidfive

+1

тонкий сработал отлично! –

11

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

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

+0

Это сработало! Спасибо. – Jirapong

3

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

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

+0

Обычно Webrick используется для отладки, поэтому небольшой патч обезьяны не повредит вам;) – KirylP

+0

Да, но это уродливо, и на самом деле нет необходимости в таком низком пределе ... хорошо они уже исправили его :) – gucki

0

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

3

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

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

Это лучший решение для меня, потому что оно действительно работает с webrick. – noahdiewald

Смежные вопросы