Commit c169a56
Changed files (3)
lib
saml
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'