Sha256: 559b4f27189e7747d2034f11150c541910f712cc7cfc285bc0709a50cd51faa8

Contents?: true

Size: 1.12 KB

Versions: 12

Compression:

Stored size: 1.12 KB

Contents

module Saml
  module Kit
    class DefaultRegistry
      def initialize(items = {})
        @items = items
      end

      def register(metadata)
        Saml::Kit.logger.debug(metadata.to_xml(pretty: true))
        @items[metadata.entity_id] = metadata
      end

      def register_url(url, verify_ssl: true)
        content = HttpApi.new(url, verify_ssl: verify_ssl).get
        register(Saml::Kit::Metadata.from(content))
      end

      def metadata_for(entity_id)
        @items[entity_id]
      end

      class HttpApi
        attr_reader :uri, :verify_ssl

        def initialize(url, verify_ssl: true)
          @uri = URI.parse(url)
          @verify_ssl = verify_ssl
        end

        def get
          execute(Net::HTTP::Get.new(uri.request_uri)).body
        end

        def execute(request)
          http.request(request)
        end

        private

        def http
          http = Net::HTTP.new(uri.host, uri.port)
          http.read_timeout = 30
          http.use_ssl = uri.is_a?(URI::HTTPS)
          http.verify_mode = OpenSSL::SSL::VERIFY_NONE unless verify_ssl
          http
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
saml-kit-0.2.11 lib/saml/kit/default_registry.rb
saml-kit-0.2.10 lib/saml/kit/default_registry.rb
saml-kit-0.2.9 lib/saml/kit/default_registry.rb
saml-kit-0.2.8 lib/saml/kit/default_registry.rb
saml-kit-0.2.7 lib/saml/kit/default_registry.rb
saml-kit-0.2.6 lib/saml/kit/default_registry.rb
saml-kit-0.2.5 lib/saml/kit/default_registry.rb
saml-kit-0.2.4 lib/saml/kit/default_registry.rb
saml-kit-0.2.3 lib/saml/kit/default_registry.rb
saml-kit-0.2.2 lib/saml/kit/default_registry.rb
saml-kit-0.2.1 lib/saml/kit/default_registry.rb
saml-kit-0.2.0 lib/saml/kit/default_registry.rb