httpi 2.2.4 → 2.2.5

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.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NTg1OTVkMjUyODliYTU2NTE1YTk4ZTVmM2MwODczOTM2YWIyN2VmNg==
5
+ data.tar.gz: !binary |-
6
+ NWJhMGMyMzljNmUxNGNlYWE1OTllNWNhZDhiNTgwNjAxNDJjMmIyNg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ NDQ4MjVjMWUxNzZiOWViMWY1YjJkZTZlOWQ1ZDRjNWM0NTlmNWM3MDA3NWU1
10
+ N2Q2M2EzMDE5Nzc5MDAxZWMyZGFlZjM1NDM0NTQxNzM1YzVjOWUxZTYxZWRk
11
+ Njc4NmM1ZWQxNmYwMzU2NjkzY2I1NzYzMTA5NGFhZjU4Mjg3Y2E=
12
+ data.tar.gz: !binary |-
13
+ MzM3ZjZmOWJhOWNmZjgwMTA0MzcxZmJiNjQ1MDlmODk1MjlmN2Q3MWU4YWNj
14
+ NzNhMDYyNzJjZGQxNGU2ZGYwZDEyMDdiYjI5ZDc4M2RhOTI1MTE0Mjc2NGY4
15
+ NTU5YWRmYjFkODc1MWFkOWU3NTYxMzhkNzJjYWU5ZTQwYTE0Yzg=
@@ -1,4 +1,17 @@
1
- ### 2.2.2 (edge)
1
+ ### 2.2.5
2
+
3
+ * Feature: [#123](https://github.com/savonrb/httpi/pull/123) Don't warn about missing rubyntlm gem if it is optional. Thanks to [PChambino](https://github.com/PChambino)
4
+
5
+ ### 2.2.4
6
+
7
+ * Fix: [#120](https://github.com/savonrb/httpi/pull/120) fixed an unintended crash when an incompatible version of NTLM was required. Thanks to [hubrix](https://github.com/hubrix)
8
+
9
+ ### 2.2.3
10
+
11
+ * Feature: [#117](https://github.com/savonrb/httpi/pull/117) Follow 302 redirects
12
+ * Feature: [#118](https://github.com/savonrb/httpi/pull/118) Support for SSL certificate private keys in formats other than RSA
13
+
14
+ ### 2.2.2
2
15
 
3
16
  * Feature: [#118](https://github.com/savonrb/httpi/pull/118) Support for other SSL certificate keys, not only RSA. Thanks to [Novikov Andrey](https://github.com/Envek).
4
17
 
@@ -138,8 +138,8 @@ module HTTPI
138
138
 
139
139
  response = adapter_class.request(method)
140
140
 
141
- if response and response.code == 302 and request.follow_redirect?
142
- log('Following redirect...')
141
+ if response && HTTPI::Response::RedirectResponseCodes.member?(response.code) && request.follow_redirect?
142
+ log("Following redirect: '#{response.headers['location']}'.")
143
143
  request.url = response.headers['location']
144
144
  return request(method, request, adapter)
145
145
  end
@@ -11,8 +11,7 @@ begin
11
11
  unless Net::NTLM::VERSION::STRING >= '0.3.2'
12
12
  raise ArgumentError, 'Invalid version of rubyntlm. Please use v0.3.2+.'
13
13
  end
14
- rescue LoadError => e
15
- HTTPI.logger.debug('Net::NTLM is not available. Install via gem install rubyntlm.')
14
+ rescue LoadError
16
15
  end
17
16
 
18
17
  module HTTPI
@@ -86,7 +85,7 @@ module HTTPI
86
85
 
87
86
  def negotiate_ntlm_auth(http, &requester)
88
87
  unless Net.const_defined?(:NTLM)
89
- HTTPI.logger.fatal('Cannot negotiate ntlm auth if net/ntlm is not present. Perhaps the net/ntlm gem is not installed?')
88
+ raise NotSupportedError, 'Net::NTLM is not available. Install via gem install rubyntlm.'
90
89
  end
91
90
 
92
91
  # first figure out if we should use NTLM or Negotiate
@@ -14,6 +14,8 @@ module HTTPI
14
14
 
15
15
  # Range of HTTP response codes considered to be successful.
16
16
  SuccessfulResponseCodes = 200..299
17
+ # HTTP response codes considered to be a redirect.
18
+ RedirectResponseCodes = [301, 302, 303, 307, 308]
17
19
 
18
20
  # Initializer expects an HTTP response +code+, +headers+ and +body+.
19
21
  def initialize(code, headers, body)
@@ -1,3 +1,3 @@
1
1
  module HTTPI
2
- VERSION = "2.2.4"
2
+ VERSION = "2.2.5"
3
3
  end
@@ -76,15 +76,14 @@ describe HTTPI::Adapter::NetHTTP do
76
76
  expect(response.body).to eq("ntlm-auth")
77
77
  end
78
78
 
79
- it 'fatal logs when net/ntlm is not available, but ntlm authentication was requested' do
79
+ it 'does not support ntlm authentication when Net::NTLM is not available' do
80
80
  Net.expects(:const_defined?).with(:NTLM).returns false
81
81
 
82
82
  request = HTTPI::Request.new(@server.url + 'ntlm-auth')
83
83
  request.auth.ntlm("testing", "failures")
84
- HTTPI.logger.expects(:fatal)
85
84
 
86
- response = HTTPI.get(request, adapter)
87
- expect(response.body).to eq("ntlm-auth")
85
+ expect { HTTPI.get(request, adapter) }.
86
+ to raise_error(HTTPI::NotSupportedError, /Net::NTLM is not available/)
88
87
  end
89
88
  end
90
89
 
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: httpi
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.4
5
- prerelease:
4
+ version: 2.2.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Daniel Harrington
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2014-06-26 00:00:00.000000000 Z
12
+ date: 2014-08-03 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rack
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ! '>='
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ! '>='
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: rubyntlm
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ~>
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :development
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ~>
45
40
  - !ruby/object:Gem::Version
@@ -47,7 +42,6 @@ dependencies:
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: rake
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
46
  - - ~>
53
47
  - !ruby/object:Gem::Version
@@ -55,7 +49,6 @@ dependencies:
55
49
  type: :development
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
53
  - - ~>
61
54
  - !ruby/object:Gem::Version
@@ -63,7 +56,6 @@ dependencies:
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: rspec
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
60
  - - ~>
69
61
  - !ruby/object:Gem::Version
@@ -71,7 +63,6 @@ dependencies:
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
67
  - - ~>
77
68
  - !ruby/object:Gem::Version
@@ -79,7 +70,6 @@ dependencies:
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: mocha
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
74
  - - ~>
85
75
  - !ruby/object:Gem::Version
@@ -87,7 +77,6 @@ dependencies:
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
81
  - - ~>
93
82
  - !ruby/object:Gem::Version
@@ -95,7 +84,6 @@ dependencies:
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: puma
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
88
  - - ~>
101
89
  - !ruby/object:Gem::Version
@@ -103,7 +91,6 @@ dependencies:
103
91
  type: :development
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
95
  - - ~>
109
96
  - !ruby/object:Gem::Version
@@ -183,26 +170,25 @@ files:
183
170
  homepage: http://github.com/savonrb/#{s.name}
184
171
  licenses:
185
172
  - MIT
173
+ metadata: {}
186
174
  post_install_message:
187
175
  rdoc_options: []
188
176
  require_paths:
189
177
  - lib
190
178
  required_ruby_version: !ruby/object:Gem::Requirement
191
- none: false
192
179
  requirements:
193
180
  - - ! '>='
194
181
  - !ruby/object:Gem::Version
195
182
  version: '0'
196
183
  required_rubygems_version: !ruby/object:Gem::Requirement
197
- none: false
198
184
  requirements:
199
185
  - - ! '>='
200
186
  - !ruby/object:Gem::Version
201
187
  version: '0'
202
188
  requirements: []
203
189
  rubyforge_project: httpi
204
- rubygems_version: 1.8.23
190
+ rubygems_version: 2.0.3
205
191
  signing_key:
206
- specification_version: 3
192
+ specification_version: 4
207
193
  summary: Common interface for Ruby's HTTP libraries
208
194
  test_files: []