net-http-digest_auth 1.1.1 → 1.2

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
@@ -1,3 +1,8 @@
1
+ === 1.2 / 2011-11-22
2
+
3
+ * Minor enhancement
4
+ * Now thread safe. Issue #2 by chrisochs.
5
+
1
6
  === 1.1.1 / 2011-04-03
2
7
 
3
8
  * Bug fix
@@ -1,6 +1,7 @@
1
- require 'net/http'
2
- require 'digest'
3
1
  require 'cgi'
2
+ require 'digest'
3
+ require 'net/http'
4
+ require 'monitor'
4
5
 
5
6
  ##
6
7
  # An implementation of RFC 2617 Digest Access Authentication.
@@ -33,6 +34,8 @@ require 'cgi'
33
34
 
34
35
  class Net::HTTP::DigestAuth
35
36
 
37
+ include MonitorMixin
38
+
36
39
  ##
37
40
  # DigestAuth error class
38
41
 
@@ -41,7 +44,7 @@ class Net::HTTP::DigestAuth
41
44
  ##
42
45
  # Version of Net::HTTP::DigestAuth you are using
43
46
 
44
- VERSION = '1.1.1'
47
+ VERSION = '1.2'
45
48
 
46
49
  ##
47
50
  # Creates a new DigestAuth header creator.
@@ -50,6 +53,7 @@ class Net::HTTP::DigestAuth
50
53
  # secret value.
51
54
 
52
55
  def initialize cnonce = make_cnonce
56
+ mon_initialize
53
57
  @nonce_count = -1
54
58
  @cnonce = cnonce
55
59
  end
@@ -69,7 +73,7 @@ class Net::HTTP::DigestAuth
69
73
  # differently so you may need to set +iis+ to true for such servers.
70
74
 
71
75
  def auth_header uri, www_authenticate, method, iis = false
72
- @nonce_count += 1
76
+ nonce_count = next_nonce
73
77
 
74
78
  user = CGI.unescape uri.user
75
79
  password = CGI.unescape uri.password
@@ -111,7 +115,7 @@ class Net::HTTP::DigestAuth
111
115
  ha2 = algorithm.hexdigest "#{method}:#{uri.request_uri}"
112
116
 
113
117
  request_digest = [ha1, params['nonce']]
114
- request_digest.push(('%08x' % @nonce_count), @cnonce, qop) if qop
118
+ request_digest.push(('%08x' % nonce_count), @cnonce, qop) if qop
115
119
  request_digest << ha2
116
120
  request_digest = request_digest.join ':'
117
121
 
@@ -145,5 +149,11 @@ class Net::HTTP::DigestAuth
145
149
  Digest::MD5.hexdigest "%x" % (Time.now.to_i + rand(65535))
146
150
  end
147
151
 
152
+ def next_nonce
153
+ synchronize do
154
+ @nonce_count += 1
155
+ end
156
+ end
157
+
148
158
  end
149
159
 
@@ -101,5 +101,11 @@ class TestNetHttpDigestAuth < MiniTest::Unit::TestCase
101
101
  assert_match %r%\A[a-f\d]{32}\z%, @da.make_cnonce
102
102
  end
103
103
 
104
+ def test_next_nonce
105
+ first = @da.next_nonce
106
+
107
+ assert_equal first + 1, @da.next_nonce
108
+ end
109
+
104
110
  end
105
111
 
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-http-digest_auth
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 1
9
- - 1
10
- version: 1.1.1
8
+ - 2
9
+ version: "1.2"
11
10
  platform: ruby
12
11
  authors:
13
12
  - Eric Hodel
@@ -36,8 +35,7 @@ cert_chain:
36
35
  x52qPcexcYZR7w==
37
36
  -----END CERTIFICATE-----
38
37
 
39
- date: 2011-04-03 00:00:00 -07:00
40
- default_executable:
38
+ date: 2011-11-23 00:00:00 Z
41
39
  dependencies:
42
40
  - !ruby/object:Gem::Dependency
43
41
  name: minitest
@@ -45,14 +43,13 @@ dependencies:
45
43
  requirement: &id001 !ruby/object:Gem::Requirement
46
44
  none: false
47
45
  requirements:
48
- - - ">="
46
+ - - ~>
49
47
  - !ruby/object:Gem::Version
50
- hash: 11
48
+ hash: 15
51
49
  segments:
52
50
  - 2
53
- - 0
54
- - 2
55
- version: 2.0.2
51
+ - 6
52
+ version: "2.6"
56
53
  type: :development
57
54
  version_requirements: *id001
58
55
  - !ruby/object:Gem::Dependency
@@ -61,14 +58,13 @@ dependencies:
61
58
  requirement: &id002 !ruby/object:Gem::Requirement
62
59
  none: false
63
60
  requirements:
64
- - - ">="
61
+ - - ~>
65
62
  - !ruby/object:Gem::Version
66
- hash: 35
63
+ hash: 27
67
64
  segments:
68
65
  - 2
69
- - 9
70
- - 4
71
- version: 2.9.4
66
+ - 12
67
+ version: "2.12"
72
68
  type: :development
73
69
  version_requirements: *id002
74
70
  description: |-
@@ -96,7 +92,6 @@ files:
96
92
  - sample/net_http_example.rb
97
93
  - test/test_net_http_digest_auth.rb
98
94
  - .gemtest
99
- has_rdoc: true
100
95
  homepage: http://docs.seattlerb.org/net-http-digest_auth
101
96
  licenses: []
102
97
 
@@ -127,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
122
  requirements: []
128
123
 
129
124
  rubyforge_project: seattlerb
130
- rubygems_version: 1.6.2
125
+ rubygems_version: 1.8.10
131
126
  signing_key:
132
127
  specification_version: 3
133
128
  summary: An implementation of RFC 2617 - Digest Access Authentication
metadata.gz.sig CHANGED
@@ -1,2 +1,3 @@
1
- �x ���T�/�߅��i�B]��|����M���p
2
- (f
1
+ i�7��'���j�;�J ����hfA{�M��'xh�x�^M c+�� �Z_˗'�X�.����ї�
2
+ {����/ojt[�2C���N����gg7�#�tȩ�O_�V�f���y�K�Mn���Jt}_�.���i}/�Q㏿<
3
+ ���z���A75�c_���*���W��Ƀ��������DnʕD�Z_C�M�q�tՋ'3��X���]EV�7������ANk��r��v�c��!~1�xxP