module Maestrano::SSO

Public Class Methods

build_request(get_params = {}) click to toggle source

Build a new SAML Request

# File lib/maestrano/sso.rb, line 19
def self.build_request(get_params = {})
  Maestrano::Saml::Request[preset].new(get_params)
end
build_response(saml_post_param) click to toggle source

Build a new SAML response

# File lib/maestrano/sso.rb, line 24
def self.build_response(saml_post_param)
  Maestrano::Saml::Response[preset].new(saml_post_param)
end
clear_session(session) click to toggle source

Destroy the maestrano session in http session

# File lib/maestrano/sso.rb, line 79
def self.clear_session(session)
  session.delete(:maestrano)
  session.delete('maestrano')
end
Also aliased as: unset_session
consume_url() click to toggle source
# File lib/maestrano/sso.rb, line 38
def self.consume_url
  host = Maestrano[preset].param('sso.idm')
  path = Maestrano[preset].param('sso.consume_path')
  return "#{host}#{path}"
end
enabled?() click to toggle source
# File lib/maestrano/sso.rb, line 28
def self.enabled?
  !!Maestrano[preset].param('sso.enabled')
end
idp_url() click to toggle source
# File lib/maestrano/sso.rb, line 57
def self.idp_url
  host = Maestrano[preset].param('api.host')
  api_base = Maestrano[preset].param('api.base')
  endpoint = 'auth/saml'
  return "#{host}#{api_base}#{endpoint}"
end
init_url() click to toggle source
# File lib/maestrano/sso.rb, line 32
def self.init_url
  host = Maestrano[preset].param('sso.idm')
  path = Maestrano[preset].param('sso.init_path')
  return "#{host}#{path}"
end
logout_url(user_uid = nil) click to toggle source
# File lib/maestrano/sso.rb, line 44
def self.logout_url(user_uid = nil)
  host = Maestrano[preset].param('api.host')
  path = '/app_logout'
  path = "#{path}?user_uid=#{user_uid}" if user_uid
  return "#{host}#{path}"
end
saml_settings() click to toggle source

Return the saml_settings based on Maestrano configuration

# File lib/maestrano/sso.rb, line 7
def self.saml_settings
  settings = Maestrano::Saml::Settings.new
  settings.assertion_consumer_service_url = self.consume_url
  settings.issuer                         = Maestrano[preset].param('api.id')
  settings.idp_sso_target_url             = self.idp_url
  settings.idp_cert                       = Maestrano[preset].param('sso.x509_certificate')
  settings.idp_cert_fingerprint           = Maestrano[preset].param('sso.x509_fingerprint')
  settings.name_identifier_format         = Maestrano[preset].param('sso.name_id_format')
  settings
end
session_check_url(user_uid, sso_session) click to toggle source
# File lib/maestrano/sso.rb, line 64
def self.session_check_url(user_uid, sso_session)
  host = Maestrano[preset].param('api.host')
  api_base = Maestrano[preset].param('api.base')
  endpoint = 'auth/saml'
  return URI.escape("#{host}#{api_base}#{endpoint}/#{user_uid}?session=#{sso_session}")
end
set_session(session, auth) click to toggle source

Set maestrano attributes in session Takes the BaseUser hash representation and current session in arguments

# File lib/maestrano/sso.rb, line 74
def self.set_session(session, auth)
  Maestrano::SSO::Session[preset].from_user_auth_hash(session,auth).save
end
unauthorized_url() click to toggle source
# File lib/maestrano/sso.rb, line 51
def self.unauthorized_url
  host = Maestrano[preset].param('api.host')
  path = '/app_access_unauthorized'
  return "#{host}#{path}";
end
unset_session(session)
Alias for: clear_session