Sto utilizzando OmniAuth per consentire agli utenti di accedere con i loro account Google OpenID. Quando provo ad accedere in modalità di sviluppo con WEBrick, ottengo un errore WEBrick :: HTTPStatus :: RequestURITooLarge. Quando lo distribuisco al mio host di rails, funziona perfettamente. C'è un server web diverso che dovrei usare al posto di WEBrick?OmniAuth Google OpenID WEBrick :: HTTPStatus :: RequestURITooLarge
risposta
Strano, mi chiedo quale sia il limite di lunghezza URI per WEBrick. Si potrebbe provare thin
http://code.macournoyer.com/thin/. Lo uso a volte localmente per lo sviluppo e sembra funzionare alla grande.
Come menzionato in railscast 236 per OmniAuth, WEBrick ha problemi con gli url lunghi forniti da OpenID. La soluzione che ha funzionato per me era aggiungere Mongrel al tuo gemfile.
gioiello 'bastardo', '1.2.0.pre2' limite di dimensione
Questo ha funzionato! grazie. – Jirapong
L'url è cambiato 1024-2083 nella più recente fonte rubino già. Spero che una versione aggiornata rubino con questa correzione incluso sarà rilasciata presto :)
https://github.com/ruby/ruby/blob/trunk/lib/webrick/httprequest.rb#L291
Mi sono imbattuto in questo stesso problema con Caseproof's DataTables gem utilizzando Webbrick e un tavolo che aveva un sacco di colonne (> 15). Passare al thin server ha risolto anche il mio problema. DataTables è un plugin javascript/jquery per la creazione di tabelle.
Aggiungere un file denominato webrick.rb
alla directory config\initializers
.
if defined?(WEBrick::HTTPRequest)
WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)
end
Questo è il migliore soluzione per me perché funziona effettivamente con webrick. – noahdiewald
devo ammettere, l'URL è piuttosto lungo ... Esso contiene un sacco nella stringa di query – SZH
vorrei aprire un nuovo bug OmniAuth o vedere se essi forniscono una soluzione che non utilizza una stringa di query . – raidfive
sottile lavorato perfettamente! –