https
redirigir http
a https
en nginx y usar la versión http de la url como url de devolución de llamada en la configuración de la aplicación github oauth
(relativo al # 647)
Funcionó para mí.
Recuerde que la URL de devolución de llamada está configurada en github y no en Zammad.
Aquí:
¡Gracias @ madd86 !
@ madd86 eso es lo que hice. La otra cosa es solo la solución para que funcione
Hola @schurig - ups. Presiona el botón para temprano 😁
Analicé el comportamiento y puedo reproducir el problema que tienes. Lamentablemente, está fuera del alcance de Zammad (hecho por Ominauth), por lo que no podemos proporcionar una solución directa. Sin embargo, lo analizaremos más a fondo para encontrar la mejor solución para que funcione.
Cómo reproducir:
Estado actual:
El redirect_url viene de aquí:
https://github.com/intridea/omniauth-github/blob/master/lib/omniauth/strategies/github.rb#L5
https://github.com/intridea/omniauth-oauth2/blob/master/lib/omniauth/strategies/oauth2.rb#L47
https://github.com/omniauth/omniauth/blob/8098855f6b52f5f1aecbd700e7068f204adddfdd/lib/omniauth/strategy.rb#L435
https://github.com/omniauth/omniauth/blob/8098855f6b52f5f1aecbd700e7068f204adddfdd/lib/omniauth/strategy.rb#L428
https://github.com/omniauth/omniauth/blob/8098855f6b52f5f1aecbd700e7068f204adddfdd/lib/omniauth/strategy.rb#L503
Parece que algunos de esos RACK ENV no están configurados correctamente. Debe comprobarse si podemos influir en esto a través de la configuración de NGINX o si tenemos que hacerlo de alguna manera en el contexto de Rails.
Hola @schurig , ¡creo que lo tengo! ¿Está ejecutando con una instalación de NGINX? Si es así, actualice su configuración y agregue estas dos líneas:
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
Como en la captura de pantalla:
Reinicie su NGINX y Zammad y avíseme. Apache debería tener estas líneas:
RequestHeader set Host zammad.example.com
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
Para el registro: descargué el archivo rack.envs a través de un inicializador que sobrescribía la detección de SSL de Omniauth en un nuevo inicializador de rieles config/initializers/debug_ssl.rb
:
Rails.application.config.to_prepare do # to_prepare ensures that the monkey patching happens before the first request
OmniAuth::Strategy.class_eval do # reopen the class
protected
def ssl? # redefine the ssl? method
# DEBUG/CUSTOMIZATION
File.write('/tmp/omniauth.log', request.env.inspect)
# DEBUG/CUSTOMIZATION
request.env['HTTPS'] == 'on' ||
request.env['HTTP_X_FORWARDED_SSL'] == 'on' ||
request.env['HTTP_X_FORWARDED_SCHEME'] == 'https' ||
(request.env['HTTP_X_FORWARDED_PROTO'] && request.env['HTTP_X_FORWARDED_PROTO'].split(',')[0] == 'https') ||
request.env['rack.url_scheme'] == 'https'
end
end
end
Y no se configuró ninguna de las vars marcadas.
¡Ese era el problema! ¡¡Gracias!! 😍 ❤️
¡Gracias por la respuesta! El compromiso está en camino. 🚀 hasta el próximo número.
Prueba esta respuesta, funcionó conmigo
https://stackoverflow.com/a/41466634/1770571
@salmagomaa esto no resuelve el problema y fue un error dentro de Zammad.
Intente no reciclar las publicaciones; el problema ya se ha resuelto.
Comentario más útil
Hola @schurig , ¡creo que lo tengo! ¿Está ejecutando con una instalación de NGINX? Si es así, actualice su configuración y agregue estas dos líneas:
Como en la captura de pantalla:
Reinicie su NGINX y Zammad y avíseme. Apache debería tener estas líneas:
Para el registro: descargué el archivo rack.envs a través de un inicializador que sobrescribía la detección de SSL de Omniauth en un nuevo inicializador de rieles
config/initializers/debug_ssl.rb
:Y no se configuró ninguna de las vars marcadas.