Class: OmniAuth::Strategies::CAS::LogoutRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/omniauth/strategies/cas/logout_request.rb

Instance Method Summary collapse

Constructor Details

#initialize(strategy, request) ⇒ LogoutRequest

Returns a new instance of LogoutRequest.



7
8
9
10
# File 'lib/omniauth/strategies/cas/logout_request.rb', line 7

def initialize(strategy, request)
  @strategy = strategy
  @request = request
end

Instance Method Details

#call(options = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/omniauth/strategies/cas/logout_request.rb', line 12

def call(options = {})
  @options = options

  begin
    result = single_sign_out_callback.call(*logout_request)
  rescue StandardError => e
    @strategy.fail! :logout_request, e
  else
    result = [200, {}, 'OK'] if result == true || result.nil?
  ensure
    return unless result

    # TODO: Why does ActionPack::Response return [status,headers,body]
    # when Rack::Response#new wants [body,status,headers]? Additionally,
    # why does Rack::Response differ in argument order from the usual
    # Rack-like [status,headers,body] array?
    return Rack::Response.new(result[2], result[0], result[1]).finish
  end
end