2011-02-07 14 views
17

Estoy usando OmniAuth para permitir a los usuarios iniciar sesión con sus cuentas de Google OpenID. Cuando intento iniciar sesión en modo de desarrollo con WEBrick, aparece un error de WEBrick :: HTTPStatus :: RequestURITooLarge. Cuando lo despliego en mi host Rails, funciona bien. ¿Hay algún servidor web diferente que deba usar en lugar de WEBrick?OmniAuth Google OpenID WEBrick :: HTTPStatus :: RequestURITooLarge

Respuesta

17

Extraño, me pregunto cuál es el límite de longitud de URI para WEBrick. Puede intentar thinhttp://code.macournoyer.com/thin/. Lo uso localmente para el desarrollo a veces y parece funcionar muy bien.

+0

Tengo que admitir, la URL es muy larga ... Contiene una gran cantidad en la cadena de consulta – SZH

+1

Me gustaría informar de un problema con OmniAuth o ver si proporcionan una solución que no utiliza una cadena de consulta . – raidfive

+1

delgado funcionó perfectamente! –

11

Como se mencionó en Railscast 236 para OmniAuth, WEBrick tiene problemas con las direcciones URL largas proporcionadas por OpenID. La solución ofrecida que funcionó para mí fue agregar Mongrel a tu gemfile.

joya 'mestizo', '1.2.0.pre2' límite de tamaño

+0

Esto funcionó! gracias. – Jirapong

3

La url cambió 1024-2083 en la última fuente de rubí ya. Espero una versión actualizada de rubí con esta revisión se incluye se dará a conocer pronto :)

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

+0

Usualmente Webrick se usa para la depuración así que un pequeño parche de mono no lo dañará;) – KirylP

+0

Sí, pero es feo y realmente no hay necesidad de un límite tan bajo ... bueno, ya lo arreglaron :) – gucki

0

me encontré con este mismo problema con el uso de Caseproof's DataTables gem Webbrick y una mesa que tenía una gran cantidad de columnas (> 15). El cambio al servidor delgado resolvió mi problema también. DataTables es un plugin javascript/jquery para crear tablas.

3

Agregue un archivo llamado webrick.rb al directorio config\initializers.

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

Este es el mejor solución para mí porque realmente funciona con webrick. – noahdiewald

Cuestiones relacionadas