2011-02-07 9 views
17

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

17

Strano, mi chiedo quale sia il limite di lunghezza URI per WEBrick. Si potrebbe provare thinhttp://code.macournoyer.com/thin/. Lo uso a volte localmente per lo sviluppo e sembra funzionare alla grande.

+0

devo ammettere, l'URL è piuttosto lungo ... Esso contiene un sacco nella stringa di query – SZH

+1

vorrei aprire un nuovo bug OmniAuth o vedere se essi forniscono una soluzione che non utilizza una stringa di query . – raidfive

+1

sottile lavorato perfettamente! –

11

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

+0

Questo ha funzionato! grazie. – Jirapong

3

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

+0

Solitamente Webrick è usato per il debug quindi una piccola patch non ti farà del male;) – KirylP

+0

Sì, ma è brutto e non c'è davvero bisogno di un limite così basso ... bene lo hanno già risolto :) – gucki

0

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.

3

Aggiungere un file denominato webrick.rb alla directory config\initializers.

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

Questo è il migliore soluzione per me perché funziona effettivamente con webrick. – noahdiewald

Problemi correlati