net-http-persistent 2.3.3 → 2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data.tar.gz.sig CHANGED
Binary file
data/History.txt CHANGED
@@ -1,10 +1,19 @@
1
- === 2.3.3
1
+ === 2.4 / 2012-01-31
2
+
3
+ * Minor Enhancement
4
+ * net-http-persistent now complains if OpenSSL::SSL::VERIFY_PEER is equal to
5
+ OpenSSL::SSL::VERIFY_NONE. If you have a platform that is broken this way
6
+ you must define the constant:
7
+
8
+ I_KNOW_THAT_OPENSSL_VERIFY_PEER_EQUALS_VERIFY_NONE_IS_WRONG = nil
9
+
10
+ at the top level of your application to disable the warning.
2
11
 
3
12
  * Bug fix
4
13
  * Fix persisting SSL sessions through HTTP proxies. Mechanize issue #178 by
5
- Robert Poor.
14
+ Robert Poor, net-http-persistent issues #10, #11.
6
15
 
7
- === 2.3.2
16
+ === 2.3.2 / 2011-12-21
8
17
 
9
18
  * Bug fix
10
19
  * Finish connections that were closed by Net::HTTP so they can be restarted.
@@ -149,7 +149,7 @@ class Net::HTTP::Persistent
149
149
  ##
150
150
  # The version of Net::HTTP::Persistent you are using
151
151
 
152
- VERSION = '2.3.3'
152
+ VERSION = '2.4'
153
153
 
154
154
  ##
155
155
  # Error class for errors raised by Net::HTTP::Persistent. Various
@@ -715,6 +715,33 @@ class Net::HTTP::Persistent
715
715
 
716
716
  connection.verify_mode = @verify_mode
717
717
 
718
+ if OpenSSL::SSL::VERIFY_PEER == OpenSSL::SSL::VERIFY_NONE and
719
+ not Object.const_defined?(:I_KNOW_THAT_OPENSSL_VERIFY_PEER_EQUALS_VERIFY_NONE_IS_WRONG) then
720
+ warn <<-WARNING
721
+ !!!SECURITY WARNING!!!
722
+
723
+ The SSL HTTP connection to:
724
+
725
+ #{connection.address}:#{connection.port}
726
+
727
+ !!!MAY NOT BE VERIFIED!!!
728
+
729
+ On your platform your OpenSSL implementation is broken.
730
+
731
+ There is no difference between the values of VERIFY_NONE and VERIFY_PEER.
732
+
733
+ This means that attempting to verify the security of SSL connections may not
734
+ work. This exposes you to man-in-the-middle exploits, snooping on the
735
+ contents of your connection and other dangers to the security of your data.
736
+
737
+ To disable this warning define the following constant at top-level in your
738
+ application:
739
+
740
+ I_KNOW_THAT_OPENSSL_VERIFY_PEER_EQUALS_VERIFY_NONE_IS_WRONG = nil
741
+
742
+ WARNING
743
+ end
744
+
718
745
  if @ca_file then
719
746
  connection.ca_file = @ca_file
720
747
  connection.verify_mode = OpenSSL::SSL::VERIFY_PEER
@@ -112,7 +112,7 @@ class Net::HTTP::Persistent::SSLReuse < Net::HTTP
112
112
  @socket.writeline "Proxy-Authorization: Basic #{credential}"
113
113
  end
114
114
  @socket.writeline ''
115
- HTTPResponse.read_new(@socket).value
115
+ Net::HTTPResponse.read_new(@socket).value
116
116
  end
117
117
  s.connect
118
118
  if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE
@@ -965,6 +965,35 @@ class TestNetHttpPersistent < MiniTest::Unit::TestCase
965
965
  assert_equal OpenSSL::SSL::VERIFY_NONE, c.verify_mode
966
966
  end
967
967
 
968
+ def test_ssl_warning
969
+ orig_verify_peer = OpenSSL::SSL::VERIFY_PEER
970
+ OpenSSL::SSL.send :remove_const, :VERIFY_PEER
971
+ OpenSSL::SSL.send :const_set, :VERIFY_PEER, OpenSSL::SSL::VERIFY_NONE
972
+
973
+ c = Net::HTTP.new 'localhost', 80
974
+
975
+ out, err = capture_io do
976
+ @http.ssl c
977
+ end
978
+
979
+ assert_empty out
980
+
981
+ assert_match %r%localhost:80%, err
982
+ assert_match %r%I_KNOW_THAT_OPENSSL%, err
983
+
984
+ Object.send :const_set, :I_KNOW_THAT_OPENSSL_VERIFY_PEER_EQUALS_VERIFY_NONE_IS_WRONG, nil
985
+
986
+ assert_silent do
987
+ @http.ssl c
988
+ end
989
+ ensure
990
+ OpenSSL::SSL.send :remove_const, :VERIFY_PEER
991
+ OpenSSL::SSL.send :const_set, :VERIFY_PEER, orig_verify_peer
992
+ if Object.const_defined?(:I_KNOW_THAT_OPENSSL_VERIFY_PEER_EQUALS_VERIFY_NONE_IS_WRONG) then
993
+ Object.send :remove_const, :I_KNOW_THAT_OPENSSL_VERIFY_PEER_EQUALS_VERIFY_NONE_IS_WRONG
994
+ end
995
+ end
996
+
968
997
  def test_can_retry_change_requests
969
998
  get = Net::HTTP::Get.new('/')
970
999
  post = Net::HTTP::Post.new('/')
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-http-persistent
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
- - 3
9
- - 3
10
- version: 2.3.3
8
+ - 4
9
+ version: "2.4"
11
10
  platform: ruby
12
11
  authors:
13
12
  - Eric Hodel
@@ -16,9 +15,9 @@ bindir: bin
16
15
  cert_chain:
17
16
  - |
18
17
  -----BEGIN CERTIFICATE-----
19
- MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMRAwDgYDVQQDDAdkcmJy
18
+ MIIDVzCCAj+gAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMRAwDgYDVQQDDAdkcmJy
20
19
  YWluMRgwFgYKCZImiZPyLGQBGRYIc2VnbWVudDcxEzARBgoJkiaJk/IsZAEZFgNu
21
- ZXQwHhcNMDcxMjIxMDIwNDE0WhcNMDgxMjIwMDIwNDE0WjBBMRAwDgYDVQQDDAdk
20
+ ZXQwHhcNMTIwMTMxMDEwMzUyWhcNMTMwMTMwMDEwMzUyWjBBMRAwDgYDVQQDDAdk
22
21
  cmJyYWluMRgwFgYKCZImiZPyLGQBGRYIc2VnbWVudDcxEzARBgoJkiaJk/IsZAEZ
23
22
  FgNuZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCbbgLrGLGIDE76
24
23
  LV/cvxdEzCuYuS3oG9PrSZnuDweySUfdp/so0cDq+j8bqy6OzZSw07gdjwFMSd6J
@@ -26,17 +25,17 @@ cert_chain:
26
25
  Gj/okWrQl0NjYOYBpDi+9PPmaH2RmLJu0dB/NylsDnW5j6yN1BEI8MfJRR+HRKZY
27
26
  mUtgzBwF1V4KIZQ8EuL6I/nHVu07i6IkrpAgxpXUfdJQJi0oZAqXurAV3yTxkFwd
28
27
  g62YrrW26mDe+pZBzR6bpLE+PmXCzz7UxUq3AE0gPHbiMXie3EFE0oxnsU3lIduh
29
- sCANiQ8BAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
30
- BBS5k4Z75VSpdM0AclG2UvzFA/VW5DANBgkqhkiG9w0BAQUFAAOCAQEAHagT4lfX
31
- kP/hDaiwGct7XPuVGbrOsKRVD59FF5kETBxEc9UQ1clKWngf8JoVuEoKD774dW19
32
- bU0GOVWO+J6FMmT/Cp7nuFJ79egMf/gy4gfUfQMuvfcr6DvZUPIs9P/TlK59iMYF
33
- DIOQ3DxdF3rMzztNUCizN4taVscEsjCcgW6WkUJnGdqlu3OHWpQxZBJkBTjPCoc6
34
- UW6on70SFPmAy/5Cq0OJNGEWBfgD9q7rrs/X8GGwUWqXb85RXnUVi/P8Up75E0ag
35
- 14jEc90kN+C7oI/AGCBN0j6JnEtYIEJZibjjDJTSMWlUKKkj30kq7hlUC2CepJ4v
36
- x52qPcexcYZR7w==
28
+ sCANiQ8BAgMBAAGjWjBYMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
29
+ BBS5k4Z75VSpdM0AclG2UvzFA/VW5DAfBgNVHREEGDAWgRRkcmJyYWluQHNlZ21l
30
+ bnQ3Lm5ldDANBgkqhkiG9w0BAQUFAAOCAQEAge3LmAU2QbrS2/grAEmRu3bCCHrQ
31
+ NSc6j+p53VJ1DraNWEMY3D90F/SKzsI0SYgZb71i49k+pNA2CVXzEJAY7agZbjWJ
32
+ UbgGKN8u9SGbIoQPBPIl97JPIGlR7AoEdmlWyFySaZD4o6+Q0onUXIV+P/KrYTVb
33
+ Zj/NEjHGrvskpDzlYI2LvG71DFp1o0hfIZzdvfWLAMVqtuEjJ6QrUm9FttR06rNo
34
+ itgEKl/tNI4M9oKJT0faQ5PvJ70ualcLnwkBLyJVd2r8qwxfjUAjKF8iMpBSb98s
35
+ YJY7T/W2n+eWy8WuPhzVUkyzguj0bQe27NDeabgCh2mHd4Hynk2AkYh8MQ==
37
36
  -----END CERTIFICATE-----
38
37
 
39
- date: 2011-12-21 00:00:00 Z
38
+ date: 2012-01-31 00:00:00 Z
40
39
  dependencies:
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: minitest
@@ -46,28 +45,43 @@ dependencies:
46
45
  requirements:
47
46
  - - ~>
48
47
  - !ruby/object:Gem::Version
49
- hash: 15
48
+ hash: 23
50
49
  segments:
51
50
  - 2
52
- - 6
53
- version: "2.6"
51
+ - 10
52
+ version: "2.10"
54
53
  type: :development
55
54
  version_requirements: *id001
56
55
  - !ruby/object:Gem::Dependency
57
- name: hoe
56
+ name: rdoc
58
57
  prerelease: false
59
58
  requirement: &id002 !ruby/object:Gem::Requirement
60
59
  none: false
61
60
  requirements:
62
61
  - - ~>
63
62
  - !ruby/object:Gem::Version
64
- hash: 27
63
+ hash: 19
65
64
  segments:
66
- - 2
67
- - 12
68
- version: "2.12"
65
+ - 3
66
+ - 10
67
+ version: "3.10"
69
68
  type: :development
70
69
  version_requirements: *id002
70
+ - !ruby/object:Gem::Dependency
71
+ name: hoe
72
+ prerelease: false
73
+ requirement: &id003 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ hash: 25
79
+ segments:
80
+ - 2
81
+ - 13
82
+ version: "2.13"
83
+ type: :development
84
+ version_requirements: *id003
71
85
  description: |-
72
86
  Manages persistent connections using Net::HTTP plus a speed fix for Ruby 1.8.
73
87
  It's thread-safe too!
metadata.gz.sig CHANGED
Binary file