class OmniAuth::Strategies::RemoteUser

Public Instance Methods

__current_user(env) click to toggle source
# File lib/omniauth/strategies/remote_user.rb, line 32
def __current_user(env)
  request = Rack::Request.new(env)
  request.cookies.has_key?(options.internal_cookie) && request.cookies[options.internal_cookie]
end
__login(env, uid) click to toggle source
# File lib/omniauth/strategies/remote_user.rb, line 47
def __login(env, uid)
  request = Rack::Request.new(env)
  response = redirect_if_not_logging_in(request,_auth_path(request) )
  if response
    response.set_cookie(options.internal_cookie, {value: uid, path: "#{request.script_name}", httponly: true})
    response.finish
  end
end
__logout(env) click to toggle source
# File lib/omniauth/strategies/remote_user.rb, line 37
def __logout(env)
  request = Rack::Request.new(env)
  request.session.clear
  response = redirect_if_not_logging_in(request, request.path )
  if response
    response.delete_cookie(options.internal_cookie , path: "#{request.script_name}" )
    response.finish
  end
end
_auth_path(request) click to toggle source
# File lib/omniauth/strategies/remote_user.rb, line 93
def _auth_path(request)
  "#{request.script_name}#{path_prefix}/RemoteUser"
end
_callback_path(request) click to toggle source
# File lib/omniauth/strategies/remote_user.rb, line 89
def _callback_path(request)
  "#{_auth_path(request)}/callback"
end
call(env) click to toggle source
Calls superclass method
# File lib/omniauth/strategies/remote_user.rb, line 8
def call(env)

  remote_user = env['HTTP_REMOTE_USER']
  session_user = __current_user(env)

  if remote_user
    if session_user
      if remote_user == session_user
        super(env)
      else
        __logout(env)
      end
    else
      __login(env, remote_user)
    end
  else
    if session_user
      __logout(env)
    else
      super(env)
    end
  end
end
redirect_if_not_logging_in(request, url) click to toggle source
# File lib/omniauth/strategies/remote_user.rb, line 56
def redirect_if_not_logging_in(request, url)
  if ! [
      _auth_path(request),
      _callback_path(request)
    ].include?(request.path_info)
    response = Rack::Response.new
    response.redirect url
    response
  end
end
request_phase() click to toggle source
# File lib/omniauth/strategies/remote_user.rb, line 85
def request_phase
  redirect _callback_path(request)
end