Merge Request #1

Merged
softwarepublico/omniauth-remote-user!1
Created by Macartur Sousa

Gitlab integration

Assignee: Antonio Terceiro
Milestone: None

Merged by Antonio Terceiro

Source branch has been removed
Commits (18)
2 participants
Gemfile
1 1 source "http://rubygems.org"
2 2  
3   -group :development, :test do
4   - gem 'guard'
5   - gem 'guard-rspec'
6   - gem 'guard-bundler'
7   - gem 'rb-fsevent'
8   - gem 'simplecov'
9   - gem 'rspec'
10   - gem 'rake'
11   - gem 'coveralls'
12   - gem 'rack-test'
  3 +gemspec
  4 +
  5 +group :development do
  6 + gem 'guard'
  7 + gem 'guard-bundler'
  8 + gem 'guard-rspec'
  9 + gem 'rake'
  10 + gem 'bundler'
  11 + gem 'sinatra'
13 12 end
14 13  
15   -gemspec
  14 +group :test do
  15 + gem 'coveralls'
  16 + gem 'rack-test'
  17 + gem 'simplecov'
  18 + gem 'rspec'
  19 +end
... ...
README.md
1 1 # Omniath Remote User
2 2  
3 3 The Omniauth Remote User gem provides a way for application to utilize a authentication with remote user HTTP header.
  4 +
  5 +# Instalation
  6 +
  7 +Include in your Gemfile
  8 +
  9 +```ruby
  10 +gem "omniauth-remote-user"
  11 +```
  12 +Then run `bundle install` from the command line:
  13 +
  14 + bundle install
... ...
Rakefile
... ... @@ -7,5 +7,3 @@ RSpec::Core::RakeTask.new(:spec)
7 7  
8 8 task :default => :spec
9 9 task :test => :spec
10   -
11   -
... ...
config.ru
... ... @@ -0,0 +1,43 @@
  1 +require 'sinatra'
  2 +require 'omniauth'
  3 +require 'json'
  4 +
  5 +class MyApplication < Sinatra::Base
  6 + use Rack::Session::Cookie, secret: '123'
  7 +
  8 + STRATEGY = 'RemoteUser'
  9 + #use OmniAuth::Strategies::RemoteUser
  10 + #STRATEGY = 'developer'
  11 + use OmniAuth::Strategies::Developer
  12 +
  13 +
  14 + get '/login' do
  15 + redirect '/gitlab/auth/%s' % STRATEGY
  16 + end
  17 +
  18 + get '/logout' do
  19 + session[:current_user] = nil
  20 + redirect '/'
  21 + end
  22 +
  23 + post '/auth/:provider/callback' do
  24 + session[:current_user] = request.env['omniauth.auth']['uid']
  25 + session[:current_user_email] = request.env['omniauth.auth']['info']['email']
  26 + session[:current_user_nickname] = request.env['omniauth.auth']['info']['nickname']
  27 +
  28 + redirect '/'
  29 + end
  30 +
  31 + get '/' do
  32 + user = session[:current_user]
  33 + if user
  34 + info = "(%s → %s)" % [session[:current_user_email], session[:current_user_nickname]]
  35 + user + info + ' <a href="/logout">logout</a>'
  36 + else
  37 + 'NOT AUTHENTICATED <a href="/login">login</a>'
  38 + end
  39 + end
  40 +end
  41 +
  42 +run MyApplication
  43 +
... ...
lib/omniauth-remote-user/version.rb
1 1 module Omniauth
2   - module RemoteUser
3   - VERSION = '0.0.1'
4   - end
  2 + module RemoteUser
  3 + VERSION = '0.0.1'
  4 + end
5 5 end
... ...
lib/omniauth/remote-user.rb
... ... @@ -2,7 +2,7 @@ require &#39;omniauth&#39;
2 2 require 'json'
3 3  
4 4 module OmniAuth
5   - module Strategies
6   - autoload :RemoteUser, 'omniauth/strategies/remote_user'
7   - end
  5 + module Strategies
  6 + autoload :RemoteUser, 'omniauth/strategies/remote_user'
  7 + end
8 8 end
... ...
lib/omniauth/strategies/remote_user.rb
1 1 module OmniAuth
2 2 module Strategies
3 3 class RemoteUser
4   -
5 4 include OmniAuth::Strategy
6 5  
7   - #option :cookie, 'rack.session'
8   - option :cookie, '_gitlab_session'
9 6 option :internal_cookie, '_remote_user'
10 7  
11 8 def call(env)
  9 +
12 10 remote_user = env['HTTP_REMOTE_USER']
13 11 session_user = __current_user(env)
  12 +
14 13 if remote_user
15 14 if session_user
16 15 if remote_user == session_user
17 16 super(env)
18 17 else
19   - __login(env, remote_user) || super(env)
  18 + __logout(env)
20 19 end
21 20 else
22   - __login(env, remote_user) || super(env)
  21 + __login(env, remote_user)
23 22 end
24 23 else
25 24 if session_user
26   - __logout(env) || super(env)
  25 + __logout(env)
27 26 else
28 27 super(env)
29 28 end
... ... @@ -37,34 +36,35 @@ module OmniAuth
37 36  
38 37 def __logout(env)
39 38 request = Rack::Request.new(env)
40   - response = redirect_if_not_logging_in(request, request.path)
  39 + request.session.clear
  40 + response = redirect_if_not_logging_in(request, request.path )
41 41 if response
42   - response.delete_cookie(options.cookie)
43   - response.delete_cookie(options.internal_cookie)
44   - response
  42 + response.delete_cookie(options.internal_cookie , path: "#{request.script_name}" )
3
  43 + response.finish
45 44 end
46 45 end
47 46  
48 47 def __login(env, uid)
49 48 request = Rack::Request.new(env)
50   - response = redirect_if_not_logging_in(request, '/auth/remoteuser')
  49 + response = redirect_if_not_logging_in(request,_auth_path(request) )
51 50 if response
52   - response.set_cookie(options.internal_cookie, uid)
53   - response
  51 + response.set_cookie(options.internal_cookie, {value: uid , path: "#{request.script_name}"})
  52 + response.finish
54 53 end
55 54 end
56 55  
57 56 def redirect_if_not_logging_in(request, url)
58 57 if ! [
59   - '/auth/remoteuser',
60   - '/auth/remoteuser/callback'
61   - ].include?(request.path_info)
  58 + _auth_path(request),
  59 + _callback_path(request)
  60 + ].include?(request.path_info)
62 61 response = Rack::Response.new
63 62 response.redirect url
64 63 response
65 64 end
66 65 end
67 66  
  67 +
68 68 uid do
69 69 request.env['HTTP_REMOTE_USER']
70 70 end
... ... @@ -73,7 +73,9 @@ module OmniAuth
73 73 user_data = request.env['HTTP_REMOTE_USER_DATA']
74 74 if user_data
75 75 data = JSON.parse(user_data)
76   - data['nickname'] = data['name']
  76 + data['nickname'] = uid
  77 + data['firstname'] = data['name'].split()[0]
  78 + data['lastname'] = data['name'].split()[1]
77 79 data
78 80 else
79 81 {}
... ... @@ -81,11 +83,17 @@ module OmniAuth
81 83 end
82 84  
83 85 def request_phase
84   - form = OmniAuth::Form.new(:url => callback_path)
85   - form.html '<script type="text/javascript"> document.forms[0].submit(); </script>'
86   - form.to_response
  86 + redirect _callback_path(request)
87 87 end
  88 +
  89 + def _callback_path(request)
  90 + "#{_auth_path(request)}/callback"
  91 + end
  92 +
  93 + def _auth_path(request)
  94 + "#{request.script_name}#{path_prefix}/RemoteUser"
  95 + end
  96 +
88 97 end
89 98 end
90 99 end
91   -
... ...
omniauth-remote-user.gemspec
1 1 require File.dirname(__FILE__) + '/lib/omniauth-remote-user/version'
2 2  
3 3 Gem::Specification.new do |gem|
4   - gem.add_runtime_dependency 'omniauth'
5   -
6   - gem.add_runtime_dependency 'simplecov'
7   - gem.add_runtime_dependency 'bundler'
8   - gem.add_runtime_dependency 'rake'
9   - gem.add_runtime_dependency 'rspec'
10   - gem.add_runtime_dependency 'rack-test'
11   - gem.add_runtime_dependency 'activerecord'
12   -
  4 + gem.add_runtime_dependency 'omniauth', '~> 1.0'
13 5 gem.name = 'omniauth-remote-user'
14 6 gem.version = Omniauth::RemoteUser::VERSION
15   - gem.description = %q{Authentication with Remote-User HTTP header for Omniauth.}
16   - gem.summary = gem.description
17   - gem.email = ['kanashiro.duarte@gmail.com', 'thiagitosouza@gmail.com', 'rodrigosiqueiramelo@gmail.com']
  7 + gem.description = 'Authentication with Remote-User HTTP header for Omniauth.'
  8 + gem.summary = 'Authentication with HTTP Remote User'
  9 + gem.email = ['kanashiro.duarte@gmail.com', 'thiagitosouza@gmail.com', 'rodrigosiqueiramelo@gmail.com','macartur.sc@gmail.com','terceiro@softwarelivre.org']
18 10 gem.homepage = 'http://beta.softwarepublico.gov.br/gitlab/softwarepublico/omiauth-remote-user'
19   - gem.authors = ['Lucas Kanashiro', 'Thiago Ribeiro', 'Rodrigo Siqueira']
  11 + gem.authors = ['Lucas Kanashiro', 'Thiago Ribeiro', 'Rodrigo Siqueira','Macartur Sousa', 'Antonio Terceiro']
20 12 gem.require_paths = %w(lib)
21 13 gem.files = `git ls-files -z`.split("\x0").reject {|f| f.start_with?('spec/')}
22 14 gem.test_files = `git ls-files -- {test,spec,feature}/*`.split("\n")
... ...
spec/omniauth/strategies/remote_user_spec.rb
1 1 require 'spec_helper'
2 2  
3 3 describe 'Test Strategy Remote_User' do
4   - let(:app) do
5   - Rack::Builder.new do |b|
6   - b.use Rack::Session::Cookie, :secret => 'abc123'
7   - b.use OmniAuth::Strategies::RemoteUser
8   - b.run lambda { |_env| [200, {}, ['My body']] }
9   - end.to_app
10   - end
11   -
12   - context 'Without REMOTE_USER and not logged in' do
13   - before(:each){
14   - get '/', {}, {}
15   - }
16   -
17   - it 'Do nothing' do
18   - expect(last_response.status).to eq(200)
19   - expect(last_request.cookies['_remote_user']).to eq(nil)
20   - expect(last_request.cookies['_gitlab_session']).to eq(nil)
21   - end
22   - end
23   -
24   - context 'Without REMOTE_USER and logged in' do
25   - before(:each){
26   - clear_cookies
27   - set_cookie "_gitlab_session=test"
28   - set_cookie "_remote_user=test"
29   - get '/', {}, {}
30   - }
31   -
32   - it 'Logout curreent user' do
33   - cookie_session_str = "_gitlab_session=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 -0000" <<
34   - "\n_remote_user=; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 -0000"
35   - expect(last_request.cookies['_gitlab_session']).to eq('test')
36   - expect(last_request.cookies['_remote_user']).to eq('test')
37   - expect(last_response.status).to eq(302)
38   - expect(last_response['Set-Cookie']).to eq(cookie_session_str)
39   - end
40   - end
41   -
42   - context 'With REMOTE_USER and not logged in' do
43   - before(:each){
44   - get '/', {}, { 'HTTP_REMOTE_USER' => 'foobar' }
45   - }
46   -
47   - it 'logs REMOTE_USER in' do
48   - expect(last_response.status).to eq(302)
49   - expect(last_response['Set-Cookie']).to eq('_remote_user=foobar')
50   - end
51   - end
52   -
53   - context 'With REMOTE_USER, logged in and current user equals REMOTE_USER' do
54   - before(:each){
55   - clear_cookies
56   - set_cookie "_gitlab_session=foobar"
57   - set_cookie "_remote_user=foobar"
58   - get '/', {}, { 'HTTP_REMOTE_USER' => 'foobar' }
59   - }
60   -
61   - it 'Do nothing' do
62   - cookie_session_str = "_gitlab_session=foobar\n_remote_user=foobar"
63   - expect(last_request.cookies['_gitlab_session']).to eq('foobar')
64   - expect(last_request.cookies['_remote_user']).to eq('foobar')
65   - expect(last_response.status).to eq(200)
66   - expect(last_response['Set-Cookie']).to eq(nil)
67   - end
68   - end
69   -
70   - context 'With REMOTE_USER, logged in and current user not equals REMOTE_USER' do
71   - before(:each){
72   - clear_cookies
73   - set_cookie "_gitlab_session=foobar"
74   - set_cookie "_remote_user=foobar"
75   - get '/', {}, { 'HTTP_REMOTE_USER' => 'foobar2' }
76   - }
77   -
78   - it 'Logout current user and login REMOTE_USER' do
79   - expect(last_request.cookies['_gitlab_session']).to eq('foobar')
80   - expect(last_request.cookies['_remote_user']).to eq('foobar')
81   - expect(last_response.status).to eq(302)
82   - expect(last_response['Set-Cookie']).to eq('_remote_user=foobar2')
83   - end
84   - end
85   -
86   - context 'Verify omniauth hash with REMOTE_USER_DATA' do
87   - before(:each){
88   - clear_cookies
89   - post '/auth/remoteuser/callback', {}, { 'HTTP_REMOTE_USER' => 'foobar',
90   - 'HTTP_REMOTE_USER_DATA' => JSON.dump({'name' => 'foobar', 'email' => 'foobar@test.com'})}
91   - }
92   -
93   - it 'Verify uid' do
94   - expect(last_request.env['omniauth.auth']['uid']).to eq('foobar')
95   - end
96   -
97   - it 'Verify info' do
98   - expect(last_request.env['omniauth.auth']['info']['nickname']).to eq('foobar')
99   - expect(last_request.env['omniauth.auth']['info']['email']).to eq('foobar@test.com')
100   - end
101   - end
102   -
103   - context 'Verify omniauth.auth info without REMOTE_USER_DATA' do
104   - before(:each){
105   - clear_cookies
106   - post '/auth/remoteuser/callback', {}, { 'HTTP_REMOTE_USER' => 'foobar' }
107   - }
108   -
109   - it 'Verify uid' do
110   - expect(last_request.env['omniauth.auth']['uid']).to eq('foobar')
111   - end
112   -
113   - it 'Verify info' do
114   - expect(last_request.env['omniauth.auth']['info']).to eq({})
115   - end
116   - end
117   -end
  4 + let(:app) do
  5 + Rack::Builder.new do |b|
  6 + b.use Rack::Session::Cookie, :secret => 'abc123'
  7 + b.use OmniAuth::Strategies::RemoteUser
  8 + b.run lambda { |_env| [200, {}, ['My body']] }
  9 + end.to_app
  10 + end
  11 +
  12 + context 'Without HTTP_REMOTE_USER and not logged in' do
  13 + before(:each){
  14 + get '/', {}, {}
  15 + }
  16 +
  17 + it 'Do nothing' do
  18 + expect(last_response.status).to eq(200)
  19 + expect(last_request.cookies['_remote_user']).to eq(nil)
  20 + end
  21 + end
  22 +
  23 + context 'Without HTTP_REMOTE_USER and logged in' do
  24 + before(:each){
  25 + clear_cookies
  26 + set_cookie "_remote_user=test"
  27 + get '/', {}, {}
  28 + }
  29 +
  30 + it 'Logout curreent user' do
  31 + expect(last_request.cookies['_remote_user']).to eq('test')
  32 + expect(last_response.status).to eq(302)
  33 + expect(last_response['Set-Cookie']).to include("_remote_user=")
  34 + expect(last_response['Set-Cookie']).to include("path=")
  35 + end
  36 + end
  37 +
  38 + context 'With HTTP_REMOTE_USER and not logged in' do
  39 + before(:each){
  40 + get '/', {}, { 'HTTP_REMOTE_USER' => 'foobar' }
  41 + }
  42 +
  43 + it 'logs HTTP_REMOTE_USER in' do
  44 + expect(last_response.status).to eq(302)
  45 + expect(last_response['Set-Cookie']).to include('_remote_user=foobar')
  46 + expect(last_response['Set-Cookie']).to include('path=')
  47 + end
  48 + end
  49 +
  50 + context 'With HTTP_REMOTE_USER, logged in and current user equals HTTP_REMOTE_USER' do
  51 + before(:each){
  52 + clear_cookies
  53 + set_cookie "_remote_user=foobar"
  54 + get '/', {}, { 'HTTP_REMOTE_USER' => 'foobar' }
  55 + }
  56 +
  57 + it 'Do nothing' do
  58 + expect(last_request.cookies['_remote_user']).to eq('foobar')
  59 + expect(last_response.status).to eq(200)
  60 + expect(last_response['Set-Cookie']).to eq(nil)
  61 + end
  62 + end
  63 +
  64 + context 'With HTTP_REMOTE_USER, logged in and current user not equals HTTP_REMOTE_USER' do
  65 + before(:each){
  66 + clear_cookies
  67 + set_cookie "_remote_user=foobar"
  68 + get '/', {}, { 'HTTP_REMOTE_USER' => 'foobar2' }
  69 + }
  70 +
  71 + it 'Logout current user and login HTTP_REMOTE_USER' do
  72 + expect(last_request.cookies['_remote_user']).to eq('foobar')
  73 + expect(last_response.status).to eq(302)
  74 + end
  75 + end
  76 +
  77 + context 'Verify omniauth hash with HTTP_REMOTE_USER_DATA' do
  78 + before(:each){
  79 + clear_cookies
  80 + set_cookie "_remote_user=foobar"
  81 + post '/auth/RemoteUser/callback', {}, { 'HTTP_REMOTE_USER' => 'foobar',
  82 + 'HTTP_REMOTE_USER_DATA' => JSON.dump({'name' => 'foobar barfoo', 'email' => 'foobar@test.com'})}
  83 + }
  84 +
  85 + it 'Verify uid' do
  86 + expect(last_request.env['omniauth.auth']['uid']).to eq('foobar')
  87 + end
  88 +
  89 + it 'Verify info' do
  90 + expect(last_request.env['omniauth.auth']['info']['nickname']).to eq('foobar')
  91 + expect(last_request.env['omniauth.auth']['info']['email']).to eq('foobar@test.com')
  92 + expect(last_request.env['omniauth.auth']['info']['lastname']).to eq('barfoo')
  93 + expect(last_request.env['omniauth.auth']['info']['firstname']).to eq('foobar')
  94 + end
  95 + end
  96 +
  97 + context 'Verify omniauth.auth info without HTTP_REMOTE_USER_DATA' do
  98 + before(:each){
  99 + clear_cookies
  100 + set_cookie "_remote_user=foobar"
  101 + post '/auth/RemoteUser/callback', {}, { 'HTTP_REMOTE_USER' => 'foobar' }
  102 + }
  103 +
  104 + it 'Verify uid' do
  105 + expect(last_request.env['omniauth.auth']['uid']).to eq('foobar')
  106 + end
  107 +
  108 + it 'Verify info' do
  109 + expect(last_request.env['omniauth.auth']['info']).to eq({})
  110 + end
  111 + end
  112 +
  113 + context 'With HTTP_REMOTE_USER and ' do
  114 + before(:each){
  115 + set_cookie "_remote_user=foobar"
  116 + get "auth/RemoteUser", {}, { 'HTTP_REMOTE_USER' => 'foobar' }
  117 + }
  118 +
  119 + it 'redirect for callback' do
  120 + expect(last_response.status).to eq(302)
  121 + expect(last_response.location).to eq("/auth/RemoteUser/callback")
  122 + end
  123 + end
118 124  
  125 +end
... ...
spec/spec_helper.rb
... ... @@ -18,7 +18,7 @@ require &#39;omniauth/test&#39;
18 18 Bundler.setup :default, :development, :test
19 19  
20 20 require 'rack/test'
21   -require 'omniauth/remote_user'
  21 +require 'omniauth/remote-user'
22 22  
23 23 RSpec.configure do |config|
24 24 config.include Rack::Test::Methods
... ...
  • 5eb59358fc7b3b7402ae353f8fb36293?s=40&d=identicon
    Macartur Sousa @macartur

    @terceiro , can you review for us ?

    Choose File ...   File name...
    Cancel
  • 75e3b052e046e34cbb10917c5f9901d7?s=40&d=identicon
    Antonio Terceiro started a discussion on the outdated diff
    last updated by Antonio Terceiro
    config.ru
      1 +require 'sinatra'
      2 +require 'omniauth'
      3 +require 'json'
      4 +
      5 +module OmniAuth
      6 + module Strategies
      7 + class RemoteUser
    1
    • 75e3b052e046e34cbb10917c5f9901d7?s=40&d=identicon
      Antonio Terceiro @terceiro

      please remove this from config.ru since it's duplicating (an old version of) the actual code in lib/

      Choose File ...   File name...
      Cancel
    75e3b052e046e34cbb10917c5f9901d7?s=40&d=identicon
    Antonio Terceiro started a discussion on the outdated diff
    last updated by Macartur Sousa
    lib/omniauth/remote-user.rb
    3 3  
    4 4 module OmniAuth
    5 5 module Strategies
    6   - autoload :RemoteUser, 'omniauth/strategies/remote_user'
      6 + autoload :RemoteUser , 'omniauth/strategies/remote_user'
    2
    75e3b052e046e34cbb10917c5f9901d7?s=40&d=identicon
    Antonio Terceiro started a discussion on the outdated diff
    last updated by Antonio Terceiro
    lib/omniauth/strategies/remote_user.rb
    73 73 user_data = request.env['HTTP_REMOTE_USER_DATA']
    74 74 if user_data
    75 75 data = JSON.parse(user_data)
    76   - data['nickname'] = data['name']
      76 + data['nickname'] = data['firstname'] = data['name'].split()[0]
    6
    • 75e3b052e046e34cbb10917c5f9901d7?s=40&d=identicon
      Antonio Terceiro @terceiro

      really?

      Choose File ...   File name...
      Cancel
    • 75e3b052e046e34cbb10917c5f9901d7?s=40&d=identicon
      Antonio Terceiro @terceiro

      this does not look right

      Choose File ...   File name...
      Cancel
    • 5eb59358fc7b3b7402ae353f8fb36293?s=40&d=identicon
      Macartur Sousa @macartur

      So, I do it because the colab send data['name'] with full name (instance "firstname lastname") and the gitlab was getting a error, because the name can't have spaces.

      Choose File ...   File name...
      Cancel
    • 75e3b052e046e34cbb10917c5f9901d7?s=40&d=identicon
      Antonio Terceiro @terceiro

      but isn't data['nickname'] the actual username? This should be the value of the REMOTE_USER header.

      Choose File ...   File name...
      Cancel
    • 5eb59358fc7b3b7402ae353f8fb36293?s=40&d=identicon
      Macartur Sousa @macartur (Edited )

      ahh ok , I will change it to:

      data['nickname'] = uid

      data['firstname'] = data['name'].split()[0]

      data['last_name'] = data['name'].split()[1]

      this seems correct ?

      Choose File ...   File name...
      Cancel
    • 75e3b052e046e34cbb10917c5f9901d7?s=40&d=identicon
      Antonio Terceiro @terceiro

      yes

    75e3b052e046e34cbb10917c5f9901d7?s=40&d=identicon
    Antonio Terceiro started a discussion on the outdated diff
    last updated by Macartur Sousa
    omniauth-remote-user.gemspec
    6   - gem.add_runtime_dependency 'simplecov'
    7   - gem.add_runtime_dependency 'bundler'
    8   - gem.add_runtime_dependency 'rake'
    9   - gem.add_runtime_dependency 'rspec'
    10   - gem.add_runtime_dependency 'rack-test'
    11   - gem.add_runtime_dependency 'activerecord'
    12   -
      4 + gem.add_runtime_dependency 'omniauth', '~> 1.0'
    13 5 gem.name = 'omniauth-remote-user'
    14 6 gem.version = Omniauth::RemoteUser::VERSION
    15   - gem.description = %q{Authentication with Remote-User HTTP header for Omniauth.}
    16   - gem.summary = gem.description
    17   - gem.email = ['kanashiro.duarte@gmail.com', 'thiagitosouza@gmail.com', 'rodrigosiqueiramelo@gmail.com']
      7 + gem.description = 'Authentication with Remote-User HTTP header for Omniauth.'
      8 + gem.summary = 'Authentication with HTTP Remote User'
      9 + gem.email = ['kanashiro.duarte@gmail.com', 'thiagitosouza@gmail.com', 'rodrigosiqueiramelo@gmail.com','macartur.sc@gmail.com','Antonio Terceiro']
    2
    75e3b052e046e34cbb10917c5f9901d7?s=40&d=identicon
    Antonio Terceiro started a discussion on the diff
    last updated by Antonio Terceiro
    lib/omniauth/strategies/remote_user.rb
    37 36  
    38 37 def __logout(env)
    39 38 request = Rack::Request.new(env)
    40   - response = redirect_if_not_logging_in(request, request.path)
      39 + request.session.clear
      40 + response = redirect_if_not_logging_in(request, request.path )
    41 41 if response
    42   - response.delete_cookie(options.cookie)
    43   - response.delete_cookie(options.internal_cookie)
    44   - response
      42 + response.delete_cookie(options.internal_cookie , path: "#{request.script_name}" )
    3
  • 75e3b052e046e34cbb10917c5f9901d7?s=40&d=identicon
    Antonio Terceiro @terceiro

    mentioned in commit 4b0971

    Choose File ...   File name...
    Cancel