https
redirecionar http
para https
no nginx e usar a versão http do url como url de retorno de chamada na configuração do aplicativo github oauth
(relacionado a # 647)
Funcionou para mim
Lembre-se de que o url de retorno de chamada está definido no github e não no Zammad.
Aqui:
Obrigado @ madd86 !
@ madd86 foi o que eu fiz. A outra coisa é apenas a solução alternativa para que funcione
Olá, @schurig - ups. Aperte o botão bem cedo 😁
Analisei o comportamento e posso reproduzir o problema que você está tendo. Infelizmente, está fora do escopo Zammad (feito por Ominauth), então não podemos fornecer uma correção direta. No entanto, iremos analisá-lo mais detalhadamente para encontrar a melhor solução para fazê-lo funcionar.
Como reproduzir:
Estado atual:
O redirect_url vem daqui:
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 alguns desses RACK ENVs não estão configurados corretamente. Deve ser verificado se podemos influenciar isso através da configuração do NGINX ou se temos que fazer de alguma forma no contexto Rails.
Olá @schurig - acho que entendi! Você está executando uma instalação NGINX? Em caso afirmativo, atualize sua configuração e adicione estas duas linhas:
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
Como na imagem:
Reinicie seu NGINX e Zammad e me avise. Apache deve ser estas linhas:
RequestHeader set Host zammad.example.com
RequestHeader set X-Forwarded-Proto https
RequestHeader set X-Forwarded-Port 443
Para registro: eu descartei o rack.envs por meio de um inicializador sobrescrevendo a detecção de ssl do Omniauth em um novo inicializador 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
E nenhum dos vars verificados foi definido.
Esse era o problema! Obrigado!! 😍 ❤️
Obrigado pelo feedback! O compromisso está a caminho. 🚀 até a próxima edição.
Tente esta resposta funcionou comigo
https://stackoverflow.com/a/41466634/1770571
@salmagomaa isso não resolve o problema e era um bug no Zammad.
Tente não reciclar as postagens - o problema já foi resolvido.
Comentários muito úteis
Olá @schurig - acho que entendi! Você está executando uma instalação NGINX? Em caso afirmativo, atualize sua configuração e adicione estas duas linhas:
Como na imagem:
Reinicie seu NGINX e Zammad e me avise. Apache deve ser estas linhas:
Para registro: eu descartei o rack.envs por meio de um inicializador sobrescrevendo a detecção de ssl do Omniauth em um novo inicializador de rails
config/initializers/debug_ssl.rb
:E nenhum dos vars verificados foi definido.