Class: OmniAuth::Strategies::WSFed::AuthCallback

Inherits:
Object
  • Object
show all
Defined in:
lib/omniauth/strategies/wsfed/auth_callback.rb

Constant Summary collapse

WS_UTILITY =
'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(raw_callback, settings, options = {}) ⇒ AuthCallback

Returns a new instance of AuthCallback.

Raises:

  • (ArgumentError)


15
16
17
18
19
20
21
22
# File 'lib/omniauth/strategies/wsfed/auth_callback.rb', line 15

def initialize(raw_callback, settings, options = {})
  raise ArgumentError.new('Response cannot be nil.') if raw_callback.nil?
  raise ArgumentError.new('WSFed settings cannot be nil.') if settings.nil?

  self.options      = options
  self.raw_callback = raw_callback
  self.settings     = settings
end

Instance Attribute Details

#optionsObject

Returns the value of attribute options.



13
14
15
# File 'lib/omniauth/strategies/wsfed/auth_callback.rb', line 13

def options
  @options
end

#raw_callbackObject

Returns the value of attribute raw_callback.



13
14
15
# File 'lib/omniauth/strategies/wsfed/auth_callback.rb', line 13

def raw_callback
  @raw_callback
end

#settingsObject

Returns the value of attribute settings.



13
14
15
# File 'lib/omniauth/strategies/wsfed/auth_callback.rb', line 13

def settings
  @settings
end

Instance Method Details

#audienceObject

WS-Trust Envelope and WS* Element Values



34
35
36
# File 'lib/omniauth/strategies/wsfed/auth_callback.rb', line 34

def audience
  @audience ||= token.audience
end

#claimsObject Also known as: attributes



53
54
55
# File 'lib/omniauth/strategies/wsfed/auth_callback.rb', line 53

def claims
  @claims ||= token.claims
end

#created_atObject



38
39
40
# File 'lib/omniauth/strategies/wsfed/auth_callback.rb', line 38

def created_at
  Time.parse(REXML::XPath.first(wstrust_lifetime, '//wsu:Created', { 'wsu' => WS_UTILITY }).text)
end

#documentObject

TODO: remove reference to SignedDocument (document) and move it to validation use response variable instead…



27
28
29
# File 'lib/omniauth/strategies/wsfed/auth_callback.rb', line 27

def document
  @document ||= OmniAuth::Strategies::WSFed::XMLSecurity::SignedDocument.new(raw_callback, settings)
end

#expires_atObject



42
43
44
# File 'lib/omniauth/strategies/wsfed/auth_callback.rb', line 42

def expires_at
  Time.parse(REXML::XPath.first(wstrust_lifetime, '//wsu:Expires', { 'wsu' => WS_UTILITY }).text)
end

#issuerObject

Token Values



49
50
51
# File 'lib/omniauth/strategies/wsfed/auth_callback.rb', line 49

def issuer
  @issuer ||= token.issuer
end

#name_idObject

The value of the user identifier as defined by the id_claim configuration setting…



59
60
61
62
63
# File 'lib/omniauth/strategies/wsfed/auth_callback.rb', line 59

def name_id
  @name_id ||= begin
    claims.has_key?(settings[:id_claim]) ? claims.fetch(settings[:id_claim]) : nil
  end
end