Class: OmniAuth::Strategies::Josso::Agent

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

Instance Method Summary collapse

Constructor Details

#initialize(endpoint_url, josso_assertion_id) ⇒ Agent

Returns a new instance of Agent.



42
43
44
45
# File 'lib/omniauth/strategies/josso.rb', line 42

def initialize(endpoint_url, josso_assertion_id)
  @endpoint_url = endpoint_url
  @josso_assertion_id = josso_assertion_id
end

Instance Method Details

#identity_managerObject



47
48
49
# File 'lib/omniauth/strategies/josso.rb', line 47

def identity_manager
  @identity_manager ||= Savon.client wsdl: "#{@endpoint_url}/josso/services/SSOIdentityManager?wsdl", soap_version: 1, ssl_verify_mode: :none
end

#identity_providerObject



51
52
53
# File 'lib/omniauth/strategies/josso.rb', line 51

def identity_provider
  @identity_provider ||= Savon.client wsdl: "#{@endpoint_url}/josso/services/SSOIdentityProvider?wsdl", soap_version: 1, ssl_verify_mode: :none
end

#rolesObject



69
70
71
72
73
74
# File 'lib/omniauth/strategies/josso.rb', line 69

def roles
  @roles ||= begin
    res = identity_manager.call :find_roles_by_username, message: { 'in0' => user.first[:name] }
    res.to_hash[:multi_ref].map { |h| h[:name] }
  end
end

#session_idObject



55
56
57
58
59
60
# File 'lib/omniauth/strategies/josso.rb', line 55

def session_id
  @session_id ||= begin
    res = identity_provider.call :resolve_authentication_assertion, message: { 'in0' => @josso_assertion_id }
    res.to_hash[:resolve_authentication_assertion_response][:resolve_authentication_assertion_return]
  end
end

#userObject



62
63
64
65
66
67
# File 'lib/omniauth/strategies/josso.rb', line 62

def user
  @user ||= begin
    res = identity_manager.call :find_user_in_session, message: { 'in0' => session_id }
    res.to_hash[:multi_ref]
  end
end