class Cie::Saml::Settings

Attributes

assertion_consumer_service_binding[RW]
assertion_consumer_service_index[RW]
assertion_consumer_service_url[RW]
attribute_consuming_service_index[RW]
authn_context[RW]
destination_service_url[RW]
hash_assertion_consumer[RW]
hash_ente[RW]
hash_fornitore_servizi[RW]
idp_cert[RW]
idp_cert_fingerprint[RW]
idp_entity_id[RW]
idp_metadata[RW]
idp_metadata_ttl[RW]
idp_name_qualifier[RW]
idp_slo_target_url[RW]
idp_sso_target_url[RW]
issuer[RW]
metadata_signed[RW]
name_identifier_format[RW]
name_identifier_value[RW]
organization[RW]
requested_attribute[RW]
requested_attribute_eidas_full[RW]
requested_attribute_eidas_min[RW]
requester_identificator[RW]
sessionindex[RW]
single_logout_destination[RW]
single_logout_service_binding[RW]
single_logout_service_url[RW]
skip_validation[RW]
sp_cert[RW]
sp_external_consumer_cert[RW]
sp_name_identifier[RW]
sp_name_qualifier[RW]
sp_private_key[RW]

Public Class Methods

new(config = {}) click to toggle source
# File lib/cie/ruby-saml/settings.rb, line 15
def initialize(config = {})
  config.each do |k,v|
    acc = "#{k.to_s}=".to_sym
    self.send(acc, v) if self.respond_to? acc
  end

  # Set some sane default values on a few options
  self.assertion_consumer_service_binding = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
  self.single_logout_service_binding = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
  # Default cache TTL for metadata is 1 day
  self.idp_metadata_ttl = 86400
end

Public Instance Methods

get_cert(cert) click to toggle source
@return [OpenSSL::X509::Certificate|nil] Build the SP certificate from the settings (previously format it)

Questo metodo e' stato generalizzato sotto

def get_sp_cert
  return nil if sp_cert.nil? || sp_cert.empty?
  #decoded_content = Base64.decode64(File.read(sp_cert))
  formatted_cert = Cie::Saml::Utils.format_cert(sp_cert)
  OpenSSL::X509::Certificate.new(File.read(sp_cert))
end
# File lib/cie/ruby-saml/settings.rb, line 65
def get_cert(cert)
  return nil if cert.nil? || cert.empty?
  #decoded_content = Base64.decode64(File.read(cert))
  formatted_cert = Cie::Saml::Utils.format_cert(cert)
  OpenSSL::X509::Certificate.new(File.read(cert))
end
get_fingerprint() click to toggle source
# File lib/cie/ruby-saml/settings.rb, line 29
def get_fingerprint
  idp_cert_fingerprint || begin
    idp_cert = get_idp_cert
    if idp_cert
      fingerprint_alg = Cie::XMLSecurity::BaseDocument.new.algorithm(idp_cert_fingerprint_algorithm).new
      fingerprint_alg.hexdigest(idp_cert.to_der).upcase.scan(/../).join(":")
    end
  end
end
get_idp_cert() click to toggle source

@return [OpenSSL::X509::Certificate|nil] Build the IdP certificate from the settings (previously format it)

# File lib/cie/ruby-saml/settings.rb, line 41
def get_idp_cert
  return nil if idp_cert.nil? || idp_cert.empty?
  #decoded_content = Base64.decode64(File.read(idp_cert))
  #formatted_cert = Cie::Saml::Utils.format_cert(idp_cert)
  OpenSSL::X509::Certificate.new(File.read(idp_cert))
end
get_sp_key() click to toggle source

@return [OpenSSL::PKey::RSA] Build the SP private from the settings (previously format it)

# File lib/cie/ruby-saml/settings.rb, line 76
def get_sp_key
  return nil if sp_private_key.nil? || sp_private_key.empty?

  #formatted_private_key = Cie::Saml::Utils.format_private_key(sp_private_key)
  OpenSSL::PKey::RSA.new(File.read(sp_private_key))
end