class SamlIdp::ServiceProvider

Public Instance Methods

current_metadata() click to toggle source
# File lib/saml_idp/service_provider.rb, line 44
def current_metadata
  @current_metadata ||= get_current_or_build
end
refresh_metadata() click to toggle source
# File lib/saml_idp/service_provider.rb, line 35
def refresh_metadata
  fresh = fresh_incoming_metadata
  if valid_signature?(fresh.document)
    metadata_persister[identifier, fresh]
    @current_metadata = nil
    fresh
  end
end
should_validate_signature?() click to toggle source
# File lib/saml_idp/service_provider.rb, line 30
def should_validate_signature?
  attributes[:validate_signature] ||
    current_metadata.respond_to?(:sign_assertions?) && current_metadata.sign_assertions?
end
valid?() click to toggle source
# File lib/saml_idp/service_provider.rb, line 18
def valid?
  attributes.present?
end
valid_signature?(doc, require_signature = false) click to toggle source
# File lib/saml_idp/service_provider.rb, line 22
def valid_signature?(doc, require_signature = false)
  if require_signature || should_validate_signature?
    doc.valid_signature?(fingerprint)
  else
    true
  end
end

Private Instance Methods

fresh_incoming_metadata() click to toggle source
# File lib/saml_idp/service_provider.rb, line 66
def fresh_incoming_metadata
  IncomingMetadata.new request_metadata
end
get_current_or_build() click to toggle source
# File lib/saml_idp/service_provider.rb, line 48
def get_current_or_build
  persisted = metadata_getter[identifier, self]
  if persisted.is_a? Hash
    PersistedMetadata.new(persisted)
  end
end
metadata_getter() click to toggle source
# File lib/saml_idp/service_provider.rb, line 56
def metadata_getter
  config.service_provider.persisted_metadata_getter
end
metadata_persister() click to toggle source
# File lib/saml_idp/service_provider.rb, line 61
def metadata_persister
  config.service_provider.metadata_persister
end
request_metadata() click to toggle source
# File lib/saml_idp/service_provider.rb, line 71
def request_metadata
  metadata_url.present? ? HTTParty.get(metadata_url).body : ""
end