Commit c169a56

mo <mo.khan@gmail.com>
2018-08-11 22:49:00
use net/hippie instead of net/http
1 parent 6a797ad
lib/saml/kit/default_registry.rb
@@ -55,8 +55,8 @@ module Saml
       # @param url [String] the url to download the metadata from.
       # @param verify_ssl [Boolean] enable/disable SSL peer verification.
       def register_url(url, verify_ssl: true)
-        content = HttpApi.new(url, verify_ssl: verify_ssl).get
-        register(Saml::Kit::Metadata.from(content))
+        client = Net::Hippie::Client.new(verify_mode: verify_ssl ? nil : OpenSSL::SSL::VERIFY_NONE)
+        register(Saml::Kit::Metadata.from(client.get(url).body))
       end
 
       # Returns the metadata document associated with an issuer or entityID.
@@ -83,37 +83,6 @@ module Saml
           !metadata.respond_to?(:entity_id) ||
           metadata.invalid?
       end
-
-      # This class is responsible for
-      # making HTTP requests to fetch metadata
-      # from remote locations.
-      class HttpApi # :nodoc:
-        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
-
-        attr_reader :uri, :verify_ssl
-
-        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.set_debug_output(Saml::Kit.logger)
-          http
-        end
-      end
     end
   end
 end
lib/saml/kit.rb
@@ -11,7 +11,7 @@ require 'active_support/deprecation'
 require 'active_support/duration'
 require 'forwardable'
 require 'logger'
-require 'net/http'
+require 'net/hippie'
 require 'nokogiri'
 require 'securerandom'
 require 'uri'
saml-kit.gemspec
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
   spec.require_paths = ['lib']
 
   spec.add_dependency 'activemodel', '>= 4.2.0'
+  spec.add_dependency 'net-hippie', '~> 0.1.8'
   spec.add_dependency 'xml-kit', '>= 0.1.13', '<= 1.0.0'
   spec.add_development_dependency 'bundler', '~> 1.15'
   spec.add_development_dependency 'bundler-audit', '~> 0.6'