class OpenamAuth::Openam

Constants

IS_TOKEN_VALID
LOGIN_URL
LOGOUT_URL
USER_ATTRIBUTES

Public Class Methods

new() click to toggle source
# File lib/openam_auth/openam.rb, line 14
def initialize
  @base_url = OpenamConfig.openam_url
  @self_url = OpenamConfig.self_url
end

Public Instance Methods

login_url() click to toggle source
# File lib/openam_auth/openam.rb, line 39
def login_url
  "#{@base_url}#{LOGIN_URL}#{@self_url}"
end
logout(token) click to toggle source
# File lib/openam_auth/openam.rb, line 43
def logout(token)
  self.class.post("#{@base_url}#{LOGOUT_URL}", {:subjectid => "#{token}" })
end
openam_user(token_cookie_name, token) click to toggle source
# File lib/openam_auth/openam.rb, line 34
def openam_user(token_cookie_name, token)
  self.class.cookies({ token_cookie_name => token })
  self.class.post("#{@base_url}#{USER_ATTRIBUTES}", {:subjectid => token})
end
user_hash(response) click to toggle source
# File lib/openam_auth/openam.rb, line 47
def user_hash(response)
  opensso_user = Hash.new{ |h,k| h[k] = Array.new }
  attribute_name = ''
  lines = response.split(/\n/)
  lines.each do |line|
    line = line.strip
    if line.match(/^userdetails.attribute.name=/)
      attribute_name = line.gsub(/^userdetails.attribute.name=/, '').strip
    elsif line.match(/^userdetails.attribute.value=/)
      opensso_user[attribute_name] << line.gsub(/^userdetails.attribute.value=/, '').strip
    end
  end
  opensso_user
end
valid_token?(token) click to toggle source
# File lib/openam_auth/openam.rb, line 29
def valid_token?(token)
  response = self.class.get("#{@base_url}#{IS_TOKEN_VALID}?tokenid=#{token}", {})
  response.body.split('=').last.strip == 'true'
end