lib/rubygems_plugin.rb in rubygems_ssl-client-certs-0.0.2.pre.alpha.pre.55 vs lib/rubygems_plugin.rb in rubygems_ssl-client-certs-0.0.2.pre.alpha.pre.56

- old
+ new

@@ -1,51 +1,44 @@ require 'rubygems/remote_fetcher' -$stderr.puts "rubygems ssl client certs plugin loading" +class Gem::ConfigFile -if Gem::Version.new(Gem::VERSION) < Gem::Version.new('2.1.0') then + attr_reader :ssl_client_cert - class Gem::ConfigFile + attr_reader :ssl_verify_mode - attr_reader :ssl_client_cert + attr_reader :ssl_ca_cert - attr_reader :ssl_verify_mode - - attr_reader :ssl_ca_cert - $stderr.puts "loading Gem::ConfigFile monkey patch" - - class << self - unless self.method_defined? :__new__ - $stderr.puts "aliasing new to __new__" - alias_method :__new__, :new - end - - def new(*args) - $stderr.puts "instantiating new Gem::ConfigFile with patch" - config = __new__(*args) - config.set_ssl_vars - return config - end - + class << self + unless self.method_defined? :__new__ + alias_method :__new__, :new end - def set_ssl_vars - $stderr.puts "Configuring SSL variables for Gem::ConfigFile" - @ssl_verify_mode = @hash[:ssl_verify_mode] if @hash.key? :ssl_verify_mode - @ssl_ca_cert = @hash[:ssl_ca_cert] if @hash.key? :ssl_ca_cert - @ssl_ca_cert = ENV['BUNDLE_SSL_CA_CERT'] unless @ssl_ca_cert - @ssl_client_cert = @hash[:ssl_client_cert] if @hash.key? :ssl_client_cert - @ssl_client_cert = ENV['BUNDLE_SSL_CLIENT_CERT'] unless @ssl_client_cert + def new(*args) + config = __new__(*args) + config.set_ssl_vars + return config end - if Gem.instance_variable_get(:@configuration) then - $stderr.puts "forcing a reload of the Gem configuration" - Gem.configuration = nil - end + end + def set_ssl_vars + @ssl_verify_mode = @hash[:ssl_verify_mode] if @hash.key? :ssl_verify_mode + @ssl_ca_cert = @hash[:ssl_ca_cert] if @hash.key? :ssl_ca_cert + @ssl_ca_cert = ENV['BUNDLE_SSL_CA_CERT'] unless @ssl_ca_cert + @ssl_client_cert = @hash[:ssl_client_cert] if @hash.key? :ssl_client_cert + @ssl_client_cert = ENV['BUNDLE_SSL_CLIENT_CERT'] unless @ssl_client_cert end + if Gem.instance_variable_get(:@configuration) then + Gem.configuration = nil + end + +end + +if Gem::Version.new(Gem::VERSION) < Gem::Version.new('2.1.0') then + class Gem::RemoteFetcher def connection_for(uri) net_http_args = [uri.host, uri.port] @@ -83,24 +76,18 @@ if Gem.configuration.ssl_client_cert pem = File.read(Gem.configuration.ssl_client_cert) connection.cert = OpenSSL::X509::Certificate.new(pem) connection.key = OpenSSL::PKey::RSA.new(pem) - else - puts "no Client Cert configured!" - if !Gem.configuration.respond_to?(:ssl_client_cert) - puts "Loaded Gem::ConfigFile does not support ssl_client_cert" - end end if Gem.configuration.ssl_ca_cert if File.directory? Gem.configuration.ssl_ca_cert store.add_path Gem.configuration.ssl_ca_cert else store.add_file Gem.configuration.ssl_ca_cert end else - puts "no CA Cert configured!" store.set_default_paths add_rubygems_trusted_certs(store) end connection.cert_store = store rescue LoadError => e