Class: SSOlo::Controller

Inherits:
Object
  • Object
show all
Defined in:
lib/ssolo/controller.rb

Overview

Manages the external process of a SSOlo server

Constant Summary collapse

MAXIMUM_ATTEMPTS =
20

Instance Method Summary collapse

Instance Method Details

#metadata_urlObject



8
9
10
# File 'lib/ssolo/controller.rb', line 8

def 
  @metadata_url ||= "http://127.0.0.1:#{port}/metadata"
end

#settingsObject



12
13
14
15
16
17
18
19
20
# File 'lib/ssolo/controller.rb', line 12

def settings
  @settings ||= begin
    wait_until_booted

    OneLogin::RubySaml::IdpMetadataParser.new.parse_remote(
      
    )
  end
end

#start(sp_certificate:, name_id: nil) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/ssolo/controller.rb', line 22

def start(sp_certificate:, name_id: nil)
  @pid = Process.spawn(
    {
      "SSOLO_PORT" => port.to_s,
      "SSOLO_NAME_ID" => name_id,
      "SSOLO_SP_CERTIFICATE" => sp_certificate
    },
    "bundle exec ssolo"
  )
end

#stopObject



33
34
35
# File 'lib/ssolo/controller.rb', line 33

def stop
  Process.kill("KILL", @pid)
end