Używam OmniAuth, aby umożliwić użytkownikom logowanie się przy użyciu kont Google OpenID. Kiedy próbuję zalogować się w trybie programowania za pomocą WEBrick, otrzymuję błąd WEBrick :: HTTPStatus :: RequestURITooLarge. Kiedy rozmieszczę go na moim hoście, to działa dobrze. Czy istnieje inny serwer sieciowy, którego powinienem używać zamiast WEBrick?OmniAuth Google OpenID WEBrick :: HTTPStatus :: RequestURITooDuża
Odpowiedz
Dziwne, zastanawiam się, jaki jest limit długości URI dla WEBrick. Możesz spróbować thin
http://code.macournoyer.com/thin/. Używam tego czasami do rozwoju i wydaje mi się, że działa świetnie.
Jak wspomniano w raporcie 236 dla OmniAuth, WEBrick ma problem z długimi adresami URL podanymi przez OpenID. Rozwiązaniem, które mi pomogło, było dodanie Kundla do twojego gemfile.
gem 'kundel', '1.2.0.pre2' limit rozmiaru
To działało! Dziękuję Ci. – Jirapong
Adres URL zmieniło od 1024 do 2083 w najnowszym źródła rubinowym już. Mam nadzieję, że zaktualizowana wersja Ruby z tej poprawki zawarte ukaże się wkrótce :)
https://github.com/ruby/ruby/blob/trunk/lib/webrick/httprequest.rb#L291
wpadłem na tej samej kwestii z Caseproof's DataTables gem wykorzystaniem Webbrick i stolik, który miał wiele kolumn (> 15). Przejście na cienki serwer również rozwiązało mój problem. DataTables to wtyczka javascript/jquery do tworzenia tabel.
Dodaj plik o nazwie webrick.rb
do katalogu .
if defined?(WEBrick::HTTPRequest)
WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
end
To jest najlepsze rozwiązanie dla mnie, ponieważ faktycznie działa z Webrick. – noahdiewald
muszę przyznać, że adres URL jest dość długa ... To zawiera wiele w ciągu kwerendy – SZH
Chciałbym zgłosić błąd z OmniAuth lub sprawdzić, czy stanowią one rozwiązania, które nie używa ciąg kwerendy . – raidfive
cienki działał idealnie! –