Sha256: 3ee21d55a4ffe65cd22fa37d840e30af11dd9494588b4a398706cbf7023d4adf

Contents?: true

Size: 944 Bytes

Versions: 28

Compression:

Stored size: 944 Bytes

Contents

# frozen_string_literal: true

require 'saml2/role'

module SAML2
  # @abstract
  class SSO < Role
    def initialize
      super
      @single_logout_services = []
      @name_id_formats = []
    end

    # (see Base#from_xml)
    def from_xml(node)
      super
      @single_logout_services = nil
      @name_id_formats = nil
    end

    # @return [Array<Endpoint>]
    def single_logout_services
      @single_logout_services ||= load_object_array(xml, 'md:SingleLogoutService', Endpoint)
    end

    # @return [Array<String>]
    def name_id_formats
      @name_id_formats ||= load_string_array(xml, 'md:NameIDFormat')
    end

    protected

    # should be called from inside the role element
    def build(builder)
      super

      single_logout_services.each do |slo|
        slo.build(builder, 'SingleLogoutService')
      end
      name_id_formats.each do |nif|
        builder['md'].NameIDFormat(nif)
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
saml2-3.1.2 lib/saml2/sso.rb
saml2-3.1.1 lib/saml2/sso.rb
saml2-3.1.0 lib/saml2/sso.rb
saml2-3.0.11 lib/saml2/sso.rb
saml2-3.0.10 lib/saml2/sso.rb
saml2-3.0.9 lib/saml2/sso.rb
saml2-3.0.8 lib/saml2/sso.rb
saml2-3.0.7 lib/saml2/sso.rb
saml2-3.0.6 lib/saml2/sso.rb
saml2-3.0.5 lib/saml2/sso.rb
saml2-3.0.4 lib/saml2/sso.rb
saml2-3.0.2 lib/saml2/sso.rb
saml2-3.0.1 lib/saml2/sso.rb
saml2-3.0.0 lib/saml2/sso.rb
saml2-2.2.12 lib/saml2/sso.rb
saml2-2.2.11 lib/saml2/sso.rb
saml2-2.2.10 lib/saml2/sso.rb
saml2-2.2.9 lib/saml2/sso.rb
saml2-2.2.8 lib/saml2/sso.rb
saml2-2.2.7 lib/saml2/sso.rb