Class: Saml::Kit::Signatures

Inherits:
Object
  • Object
show all
Defined in:
lib/saml/kit/signatures.rb

Defined Under Namespace

Classes: XmlSignatureTemplate

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configuration:) ⇒ Signatures

Returns a new instance of Signatures.



6
7
8
# File 'lib/saml/kit/signatures.rb', line 6

def initialize(configuration:)
  @configuration = configuration
end

Instance Attribute Details

#configuration ⇒ Object (readonly)

Returns the value of attribute configuration.



4
5
6
# File 'lib/saml/kit/signatures.rb', line 4

def configuration
  @configuration
end

Class Method Details

.sign(xml: ::Builder::XmlMarkup.new, configuration: Saml::Kit.configuration) {|xml, XmlSignatureTemplate.new(xml, signatures)| ... } ⇒ Object

Yields:



21
22
23
24
25
# File 'lib/saml/kit/signatures.rb', line 21

def self.sign(xml: ::Builder::XmlMarkup.new, configuration: Saml::Kit.configuration)
  signatures = Saml::Kit::Signatures.new(configuration: configuration)
  yield xml, XmlSignatureTemplate.new(xml, signatures)
  signatures.complete(xml.target!)
end

Instance Method Details

#build(reference_id) ⇒ Object



10
11
12
13
# File 'lib/saml/kit/signatures.rb', line 10

def build(reference_id)
  return nil unless configuration.sign?
  Saml::Kit::Builders::XmlSignature.new(reference_id, configuration: configuration)
end

#complete(raw_xml) ⇒ Object



15
16
17
18
19
# File 'lib/saml/kit/signatures.rb', line 15

def complete(raw_xml)
  return raw_xml unless configuration.sign?
  private_key = configuration.private_keys(use: :signing).last
  Xmldsig::SignedDocument.new(raw_xml).sign(private_key)
end