Module: Maestrano::SSO
- Includes:
- Preset
- Defined in:
- lib/maestrano/sso.rb,
lib/maestrano/sso/user.rb,
lib/maestrano/sso/group.rb,
lib/maestrano/sso/session.rb,
lib/maestrano/sso/base_user.rb,
lib/maestrano/sso/base_group.rb,
lib/maestrano/sso/base_membership.rb
Defined Under Namespace
Modules: Group, User
Classes: BaseGroup, BaseMembership, BaseUser, Session
Class Method Summary
collapse
Methods included from Preset
included
Class Method Details
.build_request(get_params = {}) ⇒ Object
19
20
21
|
# 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) ⇒ Object
Build a new SAML response
24
25
26
|
# 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) ⇒ Object
Also known as:
unset_session
Destroy the maestrano session in http session
78
79
80
81
|
# File 'lib/maestrano/sso.rb', line 78
def self.clear_session(session)
session.delete(:maestrano)
session.delete('maestrano')
end
|
.consume_url ⇒ Object
38
39
40
41
42
|
# 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? ⇒ Boolean
28
29
30
|
# File 'lib/maestrano/sso.rb', line 28
def self.enabled?
!!Maestrano[preset].param('sso.enabled')
end
|
.idp_url ⇒ Object
56
57
58
59
60
61
|
# File 'lib/maestrano/sso.rb', line 56
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 ⇒ Object
32
33
34
35
36
|
# 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 ⇒ Object
44
45
46
47
48
|
# File 'lib/maestrano/sso.rb', line 44
def self.logout_url
host = Maestrano[preset].param('api_host')
path = '/app_logout'
return "#{host}#{path}"
end
|
.saml_settings ⇒ Object
Return the saml_settings based on Maestrano configuration
7
8
9
10
11
12
13
14
15
16
|
# 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) ⇒ Object
63
64
65
66
67
68
|
# File 'lib/maestrano/sso.rb', line 63
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) ⇒ Object
Set maestrano attributes in session Takes the BaseUser hash representation and current session in arguments
73
74
75
|
# File 'lib/maestrano/sso.rb', line 73
def self.set_session(session, auth)
Maestrano::SSO::Session[preset].from_user_auth_hash(session,auth).save
end
|
.unauthorized_url ⇒ Object
50
51
52
53
54
|
# File 'lib/maestrano/sso.rb', line 50
def self.unauthorized_url
host = Maestrano[preset].param('api_host')
path = '/app_access_unauthorized'
return "#{host}#{path}";
end
|