net-http-digest_auth 1.1.1 → 1.2

Sign up to get free protection for your applications and to get access to all the features.
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