Module: Saml2

Defined in:
lib/saml2.rb,
lib/saml2/issuer.rb,
lib/saml2/assertion.rb,
lib/saml2/authn_request.rb,
lib/saml2/type4_artifact.rb,
lib/saml2/artifact_resolver.rb

Defined Under Namespace

Classes: AnomalousResponseIssuerError, ArtifactResolver, Assertion, AuthnRequest, InvalidAssertionError, Issuer, NoSuchResolverError, RequestDeniedError, Type4Artifact

Constant Summary collapse

NoSuchIssuerError =
Class.new(StandardError)
IssuerRegistry =
Class.new(Hash) do
  include SamlSp::Logging

  def register(issuer)
    self[issuer.id] = issuer
    logger.info "saml-sp: #{issuer.inspect}' registered"
  end
end.new
ArtifactResolverRegistry =
Class.new do
  include SamlSp::Logging

  def register(resolver)
    resolvers_table[resolver.source_id] = resolver

    logger.info "saml-sp: #{resolver}' registered"
  end
  
  def lookup_by_source_id(source_id)
    resolvers_table[source_id] || raise(NoSuchResolverError, "No resolver registered for source `#{Base64.encode64(source_id).strip}`")
  end
  
  protected
  
  def resolvers_table
    @resolvers_table ||= {}
  end
end.new

Class Method Summary collapse

Class Method Details

.ArtifactResolver(source_id) ⇒ Object

Returns an artifact resolver that can be used to resolve artifacts from the specified source.

Parameters:

  • source_id (String)

    The id of the source of interest.



162
163
164
# File 'lib/saml2/artifact_resolver.rb', line 162

def self.ArtifactResolver(source_id)
  ArtifactResolverRegistry.lookup_by_source_id(source_id)
end

.Issuer(id) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/saml2/issuer.rb', line 19

def self.Issuer(id)
  if IssuerRegistry.has_key? id
    IssuerRegistry[id]
  else
    raise NoSuchIssuerError, "No Issuer registered with id [#{id}]"
  end
end