class SpRailsSaml::Metadata

Public Class Methods

new(account:) click to toggle source
# File lib/sp-rails-saml/metadata.rb, line 11
def initialize(account:)
  @account = account
end

Public Instance Methods

generate() click to toggle source
# File lib/sp-rails-saml/metadata.rb, line 15
def generate
  metadata = OneLogin::RubySaml::Metadata.new
  metadata.generate(ruby_saml_settings)
end

Private Instance Methods

required_value_is_set?() click to toggle source
# File lib/sp-rails-saml/metadata.rb, line 22
def required_value_is_set?
  SpRailsSaml::Settings.name_identifier_format
end
ruby_saml_settings() click to toggle source
# File lib/sp-rails-saml/metadata.rb, line 26
def ruby_saml_settings
  raise SettingValidationError, 'lack of required setting value' unless required_value_is_set?

  settings = OneLogin::RubySaml::Settings.new

  sp_rails_saml_setting = SpRailsSaml::Settings.instance

  settings.assertion_consumer_service_url     = saml_sp_consume_url(@account.send(sp_rails_saml_setting.account_find_key))
  settings.sp_entity_id                       = saml_sp_metadata_url(@account.send(sp_rails_saml_setting.account_find_key))
  settings.name_identifier_format             = sp_rails_saml_setting.name_identifier_format
  settings.security[:want_assertions_signed]  =
    SpRailsSaml::Settings::RUBY_SAML_DEFAULT_SETTINGS[:want_assertions_signed]
  settings
end