class OmniAuth::Strategies::OpenAM

Attributes

token[R]

Protected Instance Methods

callback_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/openam.rb, line 49
def callback_phase
  @token = request.cookies[options[:cookie_name]]
  if token.nil?
    e = RuntimeError.new("#{options[:cookie_name]} cookie is missing")
    return fail!(:invalid_credentials, e)
  end
  if raw_info.empty?
    e = RuntimeError.new("Identity attributes are empty")
    return fail!(:invalid_credentials, e)
  end
  super
end
raw_info() click to toggle source
# File lib/omniauth/strategies/openam.rb, line 62
def raw_info
  @raw_info ||= begin
    conn = Faraday.new(url: options[:auth_url]) do |faraday|
      faraday.request  :url_encoded
      faraday.response :logger, OmniAuth.logger
      faraday.adapter Faraday.default_adapter
    end
    response = conn.post(
      "#{URI(options[:auth_url]).path}/identity/attributes",
      subjectid: token
    )
    attributes = Hash.new{ |h,k| h[k] = [] }
    name = nil
    lines = response.body.split("\n")
    lines.each do |line|
      key, value = line.split("=", 2)
      case key
      when 'userdetails.token.id'
        attributes['token'] = value
      when 'userdetails.attribute.name'
        name = value
      when 'userdetails.attribute.value'
        attributes[name] << value
      end
    end
    attributes
  end
end
request_phase() click to toggle source
# File lib/omniauth/strategies/openam.rb, line 44
def request_phase
  login_url = options[:login_url] || options[:auth_url]
  redirect "#{login_url}?goto=#{callback_url}"
end