Commit 77e176815acc582b644363fcd80bac2fc3f2162a
1 parent
bd2e41b9
Exists in
master
and in
2 other branches
Adding remote-user.log altering path callback
Showing
2 changed files
with
30 additions
and
6 deletions
Show diff stats
lib/omniauth/remote-user.rb
lib/omniauth/strategies/remote_user.rb
| ... | ... | @@ -8,8 +8,22 @@ module OmniAuth |
| 8 | 8 | option :cookie, '_gitlab_session' |
| 9 | 9 | option :internal_cookie, '_remote_user' |
| 10 | 10 | |
| 11 | + | |
| 12 | + def __write_file message | |
| 13 | + file = File.open("/home/git/gitlab/log/remote_user.log",'a') | |
| 14 | + file.write message | |
| 15 | + file.close | |
| 16 | + end | |
| 17 | + | |
| 18 | + | |
| 11 | 19 | def call(env) |
| 20 | + __write_file "Call \n" | |
| 21 | + | |
| 12 | 22 | remote_user = env['HTTP_REMOTE_USER'] |
| 23 | + | |
| 24 | + __write_file "#{remote_user}\n" | |
| 25 | + | |
| 26 | + | |
| 13 | 27 | session_user = __current_user(env) |
| 14 | 28 | if remote_user |
| 15 | 29 | if session_user |
| ... | ... | @@ -28,14 +42,18 @@ module OmniAuth |
| 28 | 42 | super(env) |
| 29 | 43 | end |
| 30 | 44 | end |
| 45 | + | |
| 31 | 46 | end |
| 32 | 47 | |
| 33 | 48 | def __current_user(env) |
| 49 | + | |
| 50 | + __write_file "__CURRENT_USER" | |
| 34 | 51 | request = Rack::Request.new(env) |
| 35 | 52 | request.cookies.has_key?(options.internal_cookie) && request.cookies[options.internal_cookie] |
| 36 | 53 | end |
| 37 | 54 | |
| 38 | 55 | def __logout(env) |
| 56 | + __write_file "__LOGOUT" | |
| 39 | 57 | request = Rack::Request.new(env) |
| 40 | 58 | response = redirect_if_not_logging_in(request, request.path) |
| 41 | 59 | if response |
| ... | ... | @@ -45,9 +63,10 @@ module OmniAuth |
| 45 | 63 | end |
| 46 | 64 | end |
| 47 | 65 | |
| 48 | - def __login(env, uid) | |
| 66 | + def __login(env, uid) | |
| 67 | + __write_file "__LOGIN" | |
| 49 | 68 | request = Rack::Request.new(env) |
| 50 | - response = redirect_if_not_logging_in(request, '/auth/remoteuser') | |
| 69 | + response = redirect_if_not_logging_in(request, '/users/auth/RemoteUser') | |
| 51 | 70 | if response |
| 52 | 71 | response.set_cookie(options.internal_cookie, uid) |
| 53 | 72 | response |
| ... | ... | @@ -55,9 +74,11 @@ module OmniAuth |
| 55 | 74 | end |
| 56 | 75 | |
| 57 | 76 | def redirect_if_not_logging_in(request, url) |
| 77 | + puts "__redirect_if_not_loggin_in" | |
| 78 | + | |
| 58 | 79 | if ! [ |
| 59 | - '/auth/remoteuser', | |
| 60 | - '/auth/remoteuser/callback' | |
| 80 | + '/users/auth/RemoteUser', | |
| 81 | + '/users/auth/RemoteUser/callback' | |
| 61 | 82 | ].include?(request.path_info) |
| 62 | 83 | response = Rack::Response.new |
| 63 | 84 | response.redirect url |
| ... | ... | @@ -71,6 +92,7 @@ module OmniAuth |
| 71 | 92 | |
| 72 | 93 | info do |
| 73 | 94 | user_data = request.env['HTTP_REMOTE_USER_DATA'] |
| 95 | + __write_file "#{user_data} \n" | |
| 74 | 96 | if user_data |
| 75 | 97 | data = JSON.parse(user_data) |
| 76 | 98 | data['nickname'] = data['name'] |
| ... | ... | @@ -81,7 +103,9 @@ module OmniAuth |
| 81 | 103 | end |
| 82 | 104 | |
| 83 | 105 | def request_phase |
| 84 | - form = OmniAuth::Form.new(:url => callback_path) | |
| 106 | + __write_file "request phase\n" | |
| 107 | + | |
| 108 | + form = OmniAuth::Form.new(:url => "RemoteUser/callback") | |
| 85 | 109 | form.html '<script type="text/javascript"> document.forms[0].submit(); </script>' |
| 86 | 110 | form.to_response |
| 87 | 111 | end | ... | ... |