Class: SamlIdp::MetadataBuilder

Inherits:
Object
  • Object
show all
Includes:
Algorithmable, Signable
Defined in:
lib/saml_idp/metadata_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Signable

included, #sign, #signed

Constructor Details

#initialize(configurator = SamlIdp.config) ⇒ MetadataBuilder

Returns a new instance of MetadataBuilder.



11
12
13
# File 'lib/saml_idp/metadata_builder.rb', line 11

def initialize(configurator = SamlIdp.config)
  self.configurator = configurator
end

Instance Attribute Details

#configuratorObject

Returns the value of attribute configurator.



9
10
11
# File 'lib/saml_idp/metadata_builder.rb', line 9

def configurator
  @configurator
end

Instance Method Details

#freshObject Also known as: raw



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/saml_idp/metadata_builder.rb', line 15

def fresh
  builder = Builder::XmlMarkup.new
  generated_reference_id do
    builder.EntityDescriptor ID: reference_string,
      xmlns: Saml::XML::Namespaces::METADATA,
      "xmlns:saml" => Saml::XML::Namespaces::ASSERTION,
      "xmlns:ds" => Saml::XML::Namespaces::SIGNATURE,
      entityID: entity_id do |entity|
        sign entity

        entity.IDPSSODescriptor protocolSupportEnumeration: protocol_enumeration do |descriptor|
          build_key_descriptor descriptor
          build_name_id_formats descriptor
          descriptor.SingleSignOnService Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
            Location: single_service_post_location
          build_attribute descriptor
        end

        entity.AttributeAuthorityDescriptor protocolSupportEnumeration: protocol_enumeration do |authority_descriptor|
          build_key_descriptor authority_descriptor
          build_organization authority_descriptor
          build_contact authority_descriptor
          authority_descriptor.AttributeService Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
            Location: attribute_service_location
          build_name_id_formats authority_descriptor
          build_attribute authority_descriptor
        end

        build_organization entity
        build_contact entity
      end
  end
end

#x509_certificateObject



135
136
137
138
139
140
141
# File 'lib/saml_idp/metadata_builder.rb', line 135

def x509_certificate
  SamlIdp.config.x509_certificate
  .to_s
  .gsub(/-----BEGIN CERTIFICATE-----/,"")
  .gsub(/-----END CERTIFICATE-----/,"")
  .gsub(/\n/, "")
end