class OneLogin::RubySaml::Settings
SAML2 Toolkit Settings
Constants
- DEFAULTS
Attributes
Compability
IdP Data
SP Data
Work-flow
Public Class Methods
# File lib/onelogin/ruby-saml/settings.rb, line 12 def initialize(overrides = {}) config = DEFAULTS.merge(overrides) config.each do |k,v| acc = "#{k.to_s}=".to_sym if respond_to? acc value = v.is_a?(Hash) ? v.dup : v send(acc, value) end end @attribute_consuming_service = AttributeService.new end
Public Instance Methods
Calculates the fingerprint of the IdP x509 certificate. @return [String] The fingerprint
# File lib/onelogin/ruby-saml/settings.rb, line 110 def get_fingerprint idp_cert_fingerprint || begin idp_cert = get_idp_cert if idp_cert fingerprint_alg = XMLSecurity::BaseDocument.new.algorithm(idp_cert_fingerprint_algorithm).new fingerprint_alg.hexdigest(idp_cert.to_der).upcase.scan(/../).join(":") end end end
@return [OpenSSL::X509::Certificate|nil] Build the IdP certificate from the settings (previously format it)
# File lib/onelogin/ruby-saml/settings.rb, line 122 def get_idp_cert return nil if idp_cert.nil? || idp_cert.empty? formatted_cert = OneLogin::RubySaml::Utils.format_cert(idp_cert) OpenSSL::X509::Certificate.new(formatted_cert) end
@return [Hash with 2 arrays of OpenSSL::X509::Certificate] Build multiple IdP certificates from the settings.
# File lib/onelogin/ruby-saml/settings.rb, line 131 def get_idp_cert_multi return nil if idp_cert_multi.nil? || idp_cert_multi.empty? raise ArgumentError.new("Invalid value for idp_cert_multi") if not idp_cert_multi.is_a?(Hash) certs = {:signing => [], :encryption => [] } if idp_cert_multi.key?(:signing) and not idp_cert_multi[:signing].empty? idp_cert_multi[:signing].each do |idp_cert| formatted_cert = OneLogin::RubySaml::Utils.format_cert(idp_cert) certs[:signing].push(OpenSSL::X509::Certificate.new(formatted_cert)) end end if idp_cert_multi.key?(:encryption) and not idp_cert_multi[:encryption].empty? idp_cert_multi[:encryption].each do |idp_cert| formatted_cert = OneLogin::RubySaml::Utils.format_cert(idp_cert) certs[:encryption].push(OpenSSL::X509::Certificate.new(formatted_cert)) end end certs end
@return [OpenSSL::X509::Certificate|nil] Build the SP certificate from the settings (previously format it)
# File lib/onelogin/ruby-saml/settings.rb, line 157 def get_sp_cert return nil if certificate.nil? || certificate.empty? formatted_cert = OneLogin::RubySaml::Utils.format_cert(certificate) OpenSSL::X509::Certificate.new(formatted_cert) end
@return [OpenSSL::X509::Certificate|nil] Build the New SP certificate from the settings (previously format it)
# File lib/onelogin/ruby-saml/settings.rb, line 166 def get_sp_cert_new return nil if certificate_new.nil? || certificate_new.empty? formatted_cert = OneLogin::RubySaml::Utils.format_cert(certificate_new) OpenSSL::X509::Certificate.new(formatted_cert) end
@return [OpenSSL::PKey::RSA] Build the SP private from the settings (previously format it)
# File lib/onelogin/ruby-saml/settings.rb, line 175 def get_sp_key return nil if private_key.nil? || private_key.empty? formatted_private_key = OneLogin::RubySaml::Utils.format_private_key(private_key) OpenSSL::PKey::RSA.new(formatted_private_key) end
@return [String] Single Logout Service Binding.
# File lib/onelogin/ruby-saml/settings.rb, line 86 def single_logout_service_binding val = nil if @single_logout_service_binding.nil? if @assertion_consumer_logout_service_binding val = @assertion_consumer_logout_service_binding end else val = @single_logout_service_binding end val end
Setter for Single Logout Service Binding.
(Currently we only support “urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect”) @param url [String]
# File lib/onelogin/ruby-saml/settings.rb, line 103 def single_logout_service_binding=(url) @single_logout_service_binding = url end
@return [String] Single Logout Service URL.
# File lib/onelogin/ruby-saml/settings.rb, line 65 def single_logout_service_url val = nil if @single_logout_service_url.nil? if @assertion_consumer_logout_service_url val = @assertion_consumer_logout_service_url end else val = @single_logout_service_url end val end
Setter for the Single Logout Service URL. @param url [String].
# File lib/onelogin/ruby-saml/settings.rb, line 80 def single_logout_service_url=(url) @single_logout_service_url = url end