diff --git a/lib/omniauth/strategies/remote_user.rb b/lib/omniauth/strategies/remote_user.rb index 7c731dd..8eebfcb 100644 --- a/lib/omniauth/strategies/remote_user.rb +++ b/lib/omniauth/strategies/remote_user.rb @@ -8,15 +8,11 @@ module OmniAuth def call(env) request = Rack::Request.new env - cookies = request.cookies - response = Rack::Response.new - - if cookies['gitlab_session'] != nil and !env['HTTP_REMOTE_USER'].blank? - response.redirect "#{OmniAuth.config.path_prefix}/users/auth/env/" - else + cookies = request.cookies["_gitlab_session"] + remote_user = env["HTTP_REMOTE_USER"] + unless remote_user.empty? && cookies.empty? super(env) end - end def request_phase diff --git a/spec/omniauth/strategies/remote_user_spec.rb b/spec/omniauth/strategies/remote_user_spec.rb index 975f956..55eb833 100644 --- a/spec/omniauth/strategies/remote_user_spec.rb +++ b/spec/omniauth/strategies/remote_user_spec.rb @@ -5,12 +5,12 @@ describe 'Test Strategy Remote_User' do Rack::Builder.new do |b| b.use Rack::Session::Cookie, :secret => 'abc123' b.use OmniAuth::Strategies::RemoteUser, :fields => [:name, :email], :uid_field => :name - b.run lambda { |_env| [200, {}, ['Not Found']] } + b.run lambda { |_env| [200, {}, ['Not Found']] } end.to_app end context 'request phase' do - before(:each) { get '/user/auth/env' } + before(:each) { get '/user/auth/env',{},{'HTTP_COOKIE' => '_gitlab_session=user@myuser','HTTP_REMOTE_USER' => "user@myuser" }} it 'displays a form' do expect(last_response.status).to eq(200) end -- libgit2 0.21.2