https
rediriger http
vers https
dans nginx et utiliser la version http de l'url comme URL de rappel dans le paramètre de l'application github oauth
(lié à # 647)
Cela a fonctionné pour moi.
N'oubliez pas que l'URL de rappel est en fait définie sur github et non sur Zammad.
Ici:
Merci @ madd86 !
@ madd86 c'est ce que j'ai fait. L'autre chose est juste la solution de contournement pour que cela fonctionne
Salut @schurig - ups. Appuyez sur le bouton au début 😁
J'ai analysé le comportement et je peux reproduire le problème que vous rencontrez. Malheureusement, il est hors de la portée de Zammad (fait par Ominauth), nous ne pouvons donc pas fournir de solution directe. Néanmoins, nous l'analyserons plus avant pour trouver la meilleure solution pour le faire fonctionner.
Comment reproduire:
État actuel:
Le redirect_url vient d'ici:
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
Il semble que certains de ces RACK ENV ne soient pas définis correctement. Doit être vérifié si nous pouvons influencer cela via la configuration NGINX ou si nous devons le faire d'une manière ou d'une autre dans le contexte Rails.
Salut @schurig - Je pense que je l'ai compris! Utilisez-vous une installation NGINX? Si tel est le cas, veuillez mettre à jour votre configuration et ajouter ces deux lignes:
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
Comme dans la capture d'écran:
Redémarrez votre NGINX et Zammad et faites-le moi savoir. Apache devrait être ces lignes:
RequestHeader set Host zammad.example.com
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
Pour mémoire: j'ai vidé le rack.envs via un initialiseur écrasant la détection Omniauth ssl dans un nouvel initialiseur de rails 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
Et aucun des vars vérifiés n'a été défini.
C'était le problème! Merci!! 😍 ❤️
Merci pour les commentaires! Commit est en route. 🚀 jusqu'au prochain numéro.
Essayez cette réponse, cela a fonctionné avec moi
https://stackoverflow.com/a/41466634/1770571
@salmagomaa cela ne résout pas le problème et était un bug dans Zammad.
Veuillez essayer de ne pas recycler les messages - le problème a déjà été résolu.
Commentaire le plus utile
Salut @schurig - Je pense que je l'ai compris! Utilisez-vous une installation NGINX? Si tel est le cas, veuillez mettre à jour votre configuration et ajouter ces deux lignes:
Comme dans la capture d'écran:
Redémarrez votre NGINX et Zammad et faites-le moi savoir. Apache devrait être ces lignes:
Pour mémoire: j'ai vidé le rack.envs via un initialiseur écrasant la détection Omniauth ssl dans un nouvel initialiseur de rails
config/initializers/debug_ssl.rb
:Et aucun des vars vérifiés n'a été défini.