rack-oauth2 0.6.9 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -17,6 +17,5 @@ tmtags
17
17
  coverage
18
18
  rdoc
19
19
  pkg
20
- Gemfile.lock
21
20
 
22
21
  ## PROJECT::SPECIFIC
data/Gemfile.lock ADDED
@@ -0,0 +1,46 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rack-oauth2 (0.6.9)
5
+ activesupport (>= 2.3)
6
+ attr_required (>= 0.0.3)
7
+ i18n
8
+ json (>= 1.4.3)
9
+ rack (>= 1.1)
10
+ restclient_with_cert
11
+
12
+ GEM
13
+ remote: http://rubygems.org/
14
+ specs:
15
+ activesupport (3.0.7)
16
+ attr_required (0.0.3)
17
+ diff-lcs (1.1.2)
18
+ fakeweb (1.3.0)
19
+ i18n (0.5.0)
20
+ json (1.5.1)
21
+ mime-types (1.16)
22
+ rack (1.2.2)
23
+ rake (0.8.7)
24
+ rcov (0.9.9)
25
+ rest-client (1.6.1)
26
+ mime-types (>= 1.16)
27
+ restclient_with_cert (0.0.7)
28
+ rest-client (>= 1.6)
29
+ rspec (2.5.0)
30
+ rspec-core (~> 2.5.0)
31
+ rspec-expectations (~> 2.5.0)
32
+ rspec-mocks (~> 2.5.0)
33
+ rspec-core (2.5.2)
34
+ rspec-expectations (2.5.0)
35
+ diff-lcs (~> 1.1.2)
36
+ rspec-mocks (2.5.0)
37
+
38
+ PLATFORMS
39
+ ruby
40
+
41
+ DEPENDENCIES
42
+ fakeweb (>= 1.3)
43
+ rack-oauth2!
44
+ rake (>= 0.8)
45
+ rcov (>= 0.9)
46
+ rspec (<= 2.5, >= 2)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.9
1
+ 0.7.0
@@ -7,7 +7,7 @@ module Rack
7
7
  self.expires_in = self.expires_in.try(:to_i)
8
8
  end
9
9
 
10
- def to_s
10
+ def to_s # This is for fb_graph
11
11
  self.access_token
12
12
  end
13
13
 
@@ -2,13 +2,19 @@ module Rack
2
2
  module OAuth2
3
3
  class AccessToken
4
4
  class MAC < AccessToken
5
- attr_required :secret, :algorithm
6
- attr_optional :timestamp, :nonce, :body_hash, :signature
5
+ attr_required :mac_key, :mac_algorithm
6
+ attr_optional :issued_at, :ext
7
+ attr_reader :nonce, :body_hash, :signature
8
+
9
+ def initialize(attributes = {})
10
+ super(attributes)
11
+ @issued_at ||= Time.now.utc
12
+ end
7
13
 
8
14
  def token_response
9
15
  super.merge(
10
- :secret => secret,
11
- :algorithm => algorithm
16
+ :mac_key => mac_key,
17
+ :mac_algorithm => mac_algorithm
12
18
  )
13
19
  end
14
20
 
@@ -16,22 +22,20 @@ module Rack
16
22
  if request.body_hash.present?
17
23
  _body_hash_ = BodyHash.new(
18
24
  :raw_body => request.body.read,
19
- :algorithm => self.algorithm
25
+ :algorithm => self.mac_algorithm
20
26
  )
21
27
  _body_hash_.verify!(request.body_hash)
22
28
  end
23
29
  _signature_ = Signature.new(
24
- :token => request.access_token,
25
- :secret => self.secret,
26
- :algorithm => self.algorithm,
27
- :timestamp => request.timestamp,
28
- :nonce => request.nonce,
29
- :body_hash => request.body_hash,
30
- :method => request.request_method,
31
- :host => request.host,
32
- :port => request.port,
33
- :path => request.path,
34
- :query => request.GET
30
+ :secret => self.mac_key,
31
+ :algorithm => self.mac_algorithm,
32
+ :nonce => request.nonce,
33
+ :method => request.request_method,
34
+ :request_uri => request.fullpath,
35
+ :host => request.host,
36
+ :port => request.port,
37
+ :body_hash => request.body_hash,
38
+ :ext => request.ext
35
39
  )
36
40
  _signature_.verify!(request.signature)
37
41
  rescue Verifier::VerificationFailed => e
@@ -62,44 +66,44 @@ module Rack
62
66
 
63
67
  def authenticate(method, url, headers = {}, payload = {})
64
68
  _url_ = URI.parse(url)
65
- self.timestamp = Time.now.to_i
66
- self.nonce = generate_nonce
69
+ @nonce = generate_nonce
67
70
  if payload.present?
68
71
  raw_body = RestClient::Payload.generate(payload).to_s
69
72
  _body_hash_ = BodyHash.new(
70
73
  :raw_body => raw_body,
71
- :algorithm => self.algorithm
74
+ :algorithm => self.mac_algorithm
72
75
  )
73
- self.body_hash = _body_hash_.calculate
76
+ @body_hash = _body_hash_.calculate
74
77
  end
75
78
  _signature_ = Signature.new(
76
- :token => self.access_token,
77
- :secret => self.secret,
78
- :algorithm => self.algorithm,
79
- :timestamp => self.timestamp,
80
- :nonce => self.nonce,
81
- :body_hash => self.body_hash,
82
- :method => method,
83
- :host => _url_.host,
84
- :port => _url_.port,
85
- :path => _url_.path,
86
- :query => Rack::Utils.parse_nested_query(_url_.query)
79
+ :secret => self.mac_key,
80
+ :algorithm => self.mac_algorithm,
81
+ :nonce => self.nonce,
82
+ :method => method,
83
+ :request_uri => _url_.request_uri,
84
+ :host => _url_.host,
85
+ :port => _url_.port,
86
+ :body_hash => self.body_hash,
87
+ :ext => self.ext
87
88
  )
88
- self.signature = _signature_.calculate
89
+ @signature = _signature_.calculate
89
90
  headers.merge(:AUTHORIZATION => authorization_header)
90
91
  end
91
92
 
92
93
  def authorization_header
93
94
  header = "MAC"
94
- header << " token=\"#{access_token}\","
95
- header << " timestamp=\"#{timestamp}\","
95
+ header << " id=\"#{access_token}\","
96
96
  header << " nonce=\"#{nonce}\","
97
- header << " bodyhash=\"#{body_hash}\"," if self.body_hash.present?
98
- header << " signature=\"#{signature}\""
97
+ header << " bodyhash=\"#{body_hash}\"," if body_hash.present?
98
+ header << " ext=\"#{ext}\"," if ext.present?
99
+ header << " mac=\"#{signature}\""
99
100
  end
100
101
 
101
102
  def generate_nonce
102
- ActiveSupport::SecureRandom.hex(16)
103
+ [
104
+ (Time.now.utc - @issued_at).to_i,
105
+ ActiveSupport::SecureRandom.base64(16)
106
+ ].join(':')
103
107
  end
104
108
  end
105
109
  end
@@ -108,4 +112,4 @@ end
108
112
 
109
113
  require 'rack/oauth2/access_token/mac/verifier'
110
114
  require 'rack/oauth2/access_token/mac/body_hash'
111
- require 'rack/oauth2/access_token/mac/signature'
115
+ require 'rack/oauth2/access_token/mac/signature'
@@ -3,8 +3,8 @@ module Rack
3
3
  class AccessToken
4
4
  class MAC
5
5
  class Signature < Verifier
6
- attr_required :token, :secret, :timestamp, :nonce, :method, :host, :port, :path
7
- attr_optional :body_hash, :query
6
+ attr_required :secret, :nonce, :method, :request_uri, :host, :port
7
+ attr_optional :body_hash, :ext, :query
8
8
 
9
9
  def calculate
10
10
  Rack::OAuth2::Util.base64_encode OpenSSL::HMAC.digest(
@@ -15,31 +15,18 @@ module Rack
15
15
  end
16
16
 
17
17
  def normalized_request_string
18
- arr = [
19
- token,
20
- timestamp,
18
+ [
21
19
  nonce,
22
- body_hash || '',
23
20
  method.to_s.upcase,
21
+ request_uri,
24
22
  host,
25
23
  port,
26
- path,
27
- normalized_query
28
- ]
29
- arr.join("\n")
24
+ body_hash || '',
25
+ ext || '',
26
+ nil
27
+ ].join("\n")
30
28
  end
31
29
 
32
- def normalized_query
33
- if query.present?
34
- query.inject([]) do |result, (key, value)|
35
- result << [key, value]
36
- end.sort.inject('') do |result, (key, value)|
37
- result << "#{Rack::OAuth2::Util.rfc3986_encode key}=#{Rack::OAuth2::Util.rfc3986_encode value}\n"
38
- end
39
- else
40
- ''
41
- end
42
- end
43
30
  end
44
31
  end
45
32
  end
@@ -11,15 +11,15 @@ module Rack
11
11
  private
12
12
 
13
13
  class Request < Resource::Request
14
- attr_reader :timestamp, :nonce, :body_hash, :signature
14
+ attr_reader :nonce, :body_hash, :ext, :signature
15
15
 
16
16
  def setup!
17
17
  auth_params = Rack::Auth::Digest::Params.parse(@auth_header.params).with_indifferent_access
18
- @access_token = auth_params[:token]
19
- @timestamp = auth_params[:timestamp]
18
+ @access_token = auth_params[:id]
20
19
  @nonce = auth_params[:nonce]
21
20
  @body_hash = auth_params[:bodyhash]
22
- @signature = auth_params[:signature]
21
+ @ext = auth_params[:ext]
22
+ @signature = auth_params[:mac]
23
23
  self
24
24
  end
25
25
 
@@ -33,4 +33,4 @@ module Rack
33
33
  end
34
34
  end
35
35
 
36
- require 'rack/oauth2/server/resource/mac/error'
36
+ require 'rack/oauth2/server/resource/mac/error'
data/rack-oauth2.gemspec CHANGED
@@ -21,6 +21,6 @@ Gem::Specification.new do |s|
21
21
  s.add_runtime_dependency "attr_required", ">= 0.0.3"
22
22
  s.add_development_dependency "rake", ">= 0.8"
23
23
  s.add_development_dependency "rcov", ">= 0.9"
24
- s.add_development_dependency "rspec", ">= 2"
24
+ s.add_development_dependency "rspec", ">= 2", "<= 2.5"
25
25
  s.add_development_dependency "fakeweb", ">= 1.3"
26
26
  end
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "token_type":"mac",
3
- "algorithm":"hmac-sha-256",
3
+ "mac_algorithm":"hmac-sha-256",
4
4
  "expires_in":3600,
5
- "secret":"secret",
5
+ "mac_key":"secret",
6
6
  "refresh_token":"refresh_token",
7
7
  "access_token":"access_token"
8
8
  }
@@ -40,4 +40,9 @@ describe Rack::OAuth2::AccessToken::Legacy do
40
40
  end
41
41
  end
42
42
  end
43
+
44
+ describe '#to_s' do
45
+ subject { token }
46
+ its(:to_s) { should == token.access_token }
47
+ end
43
48
  end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rack::OAuth2::AccessToken::MAC::BodyHash do
4
+ # From the example of MAC spec section 3.2
5
+ # ref) http://tools.ietf.org/pdf/draft-ietf-oauth-v2-http-mac-00.pdf
6
+ subject do
7
+ Rack::OAuth2::AccessToken::MAC::BodyHash.new(
8
+ :algorithm => 'hmac-sha-1',
9
+ :raw_body => 'hello=world%21'
10
+ )
11
+ end
12
+ its(:calculate) { should == 'k9kbtCIy0CkI3/FEfpS/oIDjk6k=' }
13
+ end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rack::OAuth2::AccessToken::MAC::Signature do
4
+
5
+ # From the example of MAC spec section 1.2
6
+ # ref) http://tools.ietf.org/pdf/draft-ietf-oauth-v2-http-mac-00.pdf
7
+ context 'when body_hash is given' do
8
+ subject do
9
+ Rack::OAuth2::AccessToken::MAC::Signature.new(
10
+ :secret => '8yfrufh348h',
11
+ :algorithm => 'hmac-sha-1',
12
+ :nonce => '273156:di3hvdf8',
13
+ :method => 'POST',
14
+ :request_uri => '/request',
15
+ :host => 'example.com',
16
+ :port => 80,
17
+ :body_hash => 'k9kbtCIy0CkI3/FEfpS/oIDjk6k=',
18
+ :ext => nil
19
+ )
20
+ end
21
+ its(:calculate) { should == 'W7bdMZbv9UWOTadASIQHagZyirA=' }
22
+ end
23
+
24
+ # From the example of MAC spec section 3.2
25
+ # ref) http://tools.ietf.org/pdf/draft-ietf-oauth-v2-http-mac-00.pdf
26
+ context 'otherwize' do
27
+ subject do
28
+ Rack::OAuth2::AccessToken::MAC::Signature.new(
29
+ :secret => '489dks293j39',
30
+ :algorithm => 'hmac-sha-1',
31
+ :nonce => '264095:dj83hs9s',
32
+ :method => 'GET',
33
+ :request_uri => '/resource/1?b=1&a=2',
34
+ :host => 'example.com',
35
+ :port => 80,
36
+ :body_hash => nil,
37
+ :ext => nil
38
+ )
39
+ end
40
+ its(:calculate) { should == 'SLDJd4mg43cjQfElUs3Qub4L6xE=' }
41
+ end
42
+
43
+ end
@@ -4,24 +4,24 @@ describe Rack::OAuth2::AccessToken::MAC do
4
4
  let :token do
5
5
  Rack::OAuth2::AccessToken::MAC.new(
6
6
  :access_token => 'access_token',
7
- :secret => 'secret',
8
- :algorithm => 'hmac-sha-256'
7
+ :mac_key => 'secret',
8
+ :mac_algorithm => 'hmac-sha-256'
9
9
  )
10
10
  end
11
11
  let(:resource_endpoint) { 'https://server.example.com/resources/fake' }
12
12
  subject { token }
13
13
 
14
- its(:secret) { should == 'secret' }
15
- its(:algorithm) { should == 'hmac-sha-256' }
14
+ its(:mac_key) { should == 'secret' }
15
+ its(:mac_algorithm) { should == 'hmac-sha-256' }
16
16
  its(:token_response) do
17
17
  should == {
18
- :token_type => :mac,
19
18
  :access_token => 'access_token',
20
- :secret => 'secret',
21
- :algorithm => 'hmac-sha-256',
22
- :expires_in => nil,
23
19
  :refresh_token => nil,
24
- :scope => ''
20
+ :token_type => :mac,
21
+ :expires_in => nil,
22
+ :scope => '',
23
+ :mac_key => 'secret',
24
+ :mac_algorithm => 'hmac-sha-256'
25
25
  }
26
26
  end
27
27
  its(:generate_nonce) { should be_a String }
@@ -37,7 +37,7 @@ describe Rack::OAuth2::AccessToken::MAC do
37
37
  Time.fix(Time.at(1302361200)) do
38
38
  RestClient.should_receive(:get).with(
39
39
  resource_endpoint,
40
- :AUTHORIZATION => "MAC token=\"access_token\", timestamp=\"1302361200\", nonce=\"51e74de734c05613f37520872e68db5f\", signature=\"l7uMvWa3BIHjBaJrS3MHKPUAwEFTf5Xyp+N3R7Fda/s=\""
40
+ :AUTHORIZATION => 'MAC id="access_token", nonce="51e74de734c05613f37520872e68db5f", mac="gMJ8AmvTGmfPFCJCf5DUwNTmT7ksw6GqyoGW2lUIUZ0="'
41
41
  )
42
42
  token.get resource_endpoint
43
43
  end
@@ -50,7 +50,7 @@ describe Rack::OAuth2::AccessToken::MAC do
50
50
  RestClient.should_receive(:post).with(
51
51
  resource_endpoint,
52
52
  {:key => :value},
53
- {:AUTHORIZATION => "MAC token=\"access_token\", timestamp=\"1302361200\", nonce=\"51e74de734c05613f37520872e68db5f\", bodyhash=\"Vj8DVxGNBe8UXWvd8pZswj6Gyo8vAT+RXlZa/fCfeiM=\", signature=\"r7IH6k98Wo0qxA6udjhsgURJoxdlS4MQ3rV6YOlGmXA=\""}
53
+ {:AUTHORIZATION => 'MAC id="access_token", nonce="51e74de734c05613f37520872e68db5f", bodyhash="Vj8DVxGNBe8UXWvd8pZswj6Gyo8vAT+RXlZa/fCfeiM=", mac="7OOseGqNi14lThhRnwhItACXACM4Qp5GleBEuizzUpw="'}
54
54
  )
55
55
  token.post resource_endpoint, :key => :value
56
56
  end
@@ -63,7 +63,7 @@ describe Rack::OAuth2::AccessToken::MAC do
63
63
  RestClient.should_receive(:put).with(
64
64
  resource_endpoint,
65
65
  {:key => :value},
66
- {:AUTHORIZATION => "MAC token=\"access_token\", timestamp=\"1302361200\", nonce=\"51e74de734c05613f37520872e68db5f\", bodyhash=\"Vj8DVxGNBe8UXWvd8pZswj6Gyo8vAT+RXlZa/fCfeiM=\", signature=\"JP0Kvw+0wVF+XRlweJNCXsEJGjjZGz8ZU7ehc4/7Z10=\""}
66
+ {:AUTHORIZATION => 'MAC id="access_token", nonce="51e74de734c05613f37520872e68db5f", bodyhash="Vj8DVxGNBe8UXWvd8pZswj6Gyo8vAT+RXlZa/fCfeiM=", mac="lxTg/F29zkE7vBEbAK9VULRpM4IN5uShqHbj2k7e9lA="'}
67
67
  )
68
68
  token.put resource_endpoint, :key => :value
69
69
  end
@@ -75,7 +75,7 @@ describe Rack::OAuth2::AccessToken::MAC do
75
75
  Time.fix(Time.at(1302361200)) do
76
76
  RestClient.should_receive(:delete).with(
77
77
  resource_endpoint,
78
- :AUTHORIZATION => "MAC token=\"access_token\", timestamp=\"1302361200\", nonce=\"51e74de734c05613f37520872e68db5f\", signature=\"aPVm8GmDwc/BZ8AYus4FICZ6ylsNECCWdxWYKJSCX2s=\""
78
+ :AUTHORIZATION => 'MAC id="access_token", nonce="51e74de734c05613f37520872e68db5f", mac="JtOibEO1rBQNBGy6hUPT29L2cHSmLP09K+kUL4oEe/g="'
79
79
  )
80
80
  token.delete resource_endpoint
81
81
  end
@@ -90,12 +90,12 @@ describe Rack::OAuth2::AccessToken::MAC do
90
90
  let(:env) do
91
91
  Rack::MockRequest.env_for(
92
92
  '/protected_resources',
93
- 'HTTP_AUTHORIZATION' => "MAC token=\"access_token\", timestamp=\"1302361200\", nonce=\"51e74de734c05613f37520872e68db5f\", signature=\"#{signature}\""
93
+ 'HTTP_AUTHORIZATION' => %{MAC id="access_token", nonce="51e74de734c05613f37520872e68db5f", mac="#{signature}"}
94
94
  )
95
95
  end
96
96
 
97
97
  context 'when signature is valid' do
98
- let(:signature) { 'zohXlhqYIVrRlT6YTR4pIZuKgAYepZ6/GlnGqHahOog=' }
98
+ let(:signature) { 'jWo6L7w86ZKNlkRYjzQxp/HJpSxZJXq60hfd+yw4si0=' }
99
99
  it do
100
100
  Time.fix(Time.at(1302361200)) do
101
101
  token.verify!(request.setup!).should == :verified
@@ -122,7 +122,7 @@ describe Rack::OAuth2::AccessToken::MAC do
122
122
  :params => {
123
123
  :key1 => 'value1'
124
124
  },
125
- 'HTTP_AUTHORIZATION' => "MAC token=\"access_token\", timestamp=\"1302361200\", nonce=\"51e74de734c05613f37520872e68db5f\", bodyhash=\"#{body_hash}\", signature=\"#{signature}\""
125
+ 'HTTP_AUTHORIZATION' => %{MAC id="access_token", nonce="51e74de734c05613f37520872e68db5f", bodyhash="#{body_hash}", mac="#{signature}"}
126
126
  )
127
127
  end
128
128
  let(:signature) { 'invalid' }
@@ -141,7 +141,7 @@ describe Rack::OAuth2::AccessToken::MAC do
141
141
  let(:body_hash) { 'TPzUbFn1S16mpfmwXCi1L+8oZHRxlLX9/D1ZwAV781o=' }
142
142
 
143
143
  context 'when signature is valid' do
144
- let(:signature) { 'xq2HfmPIC6VL4zXulRLYi9AesMyT58Jztu4Kn9k9MJ0=' }
144
+ let(:signature) { 'xNoae5ETuB9BVFH/vFV8y8S0fXdY41bSq0bekoLClwM=' }
145
145
  it do
146
146
  Time.fix(Time.at(1302361200)) do
147
147
  token.verify!(request.setup!).should == :verified
@@ -7,8 +7,8 @@ describe Rack::OAuth2::Server::Resource::MAC do
7
7
  when 'valid_token'
8
8
  Rack::OAuth2::AccessToken::MAC.new(
9
9
  :access_token => 'valid_token',
10
- :secret => 'secret',
11
- :algorithm => 'hmac-sha-256'
10
+ :mac_key => 'secret',
11
+ :mac_algorithm => 'hmac-sha-256'
12
12
  ).verify!(request)
13
13
  when 'insufficient_scope_token'
14
14
  request.insufficient_scope!
@@ -62,27 +62,27 @@ describe Rack::OAuth2::Server::Resource::MAC do
62
62
 
63
63
  context 'when valid_token is given' do
64
64
  context 'when other required params are missing' do
65
- let(:env) { Rack::MockRequest.env_for('/protected_resource', 'HTTP_AUTHORIZATION' => 'MAC token="valid_token"') }
65
+ let(:env) { Rack::MockRequest.env_for('/protected_resource', 'HTTP_AUTHORIZATION' => 'MAC id="valid_token"') }
66
66
  it_behaves_like :unauthorized_mac_request
67
67
  end
68
68
 
69
69
  context 'when other required params are invalid' do
70
- let(:env) { Rack::MockRequest.env_for('/protected_resource', 'HTTP_AUTHORIZATION' => 'MAC token="valid_token", timestamp="1302361200", nonce="51e74de734c05613f37520872e68db5f", signature="invalid""') }
70
+ let(:env) { Rack::MockRequest.env_for('/protected_resource', 'HTTP_AUTHORIZATION' => 'MAC id="valid_token", nonce="51e74de734c05613f37520872e68db5f", mac="invalid""') }
71
71
  it_behaves_like :unauthorized_mac_request
72
72
  end
73
73
 
74
74
  context 'when all required params are valid' do
75
- let(:env) { Rack::MockRequest.env_for('/protected_resource', 'HTTP_AUTHORIZATION' => 'MAC token="valid_token", timestamp="1302361200", nonce="51e74de734c05613f37520872e68db5f", signature="cK4sig+1Rb7w5Dtvadj6q9RqCFnY4/Y+dvaVjXlm5Wk="') }
75
+ let(:env) { Rack::MockRequest.env_for('/protected_resource', 'HTTP_AUTHORIZATION' => 'MAC id="valid_token", nonce="51e74de734c05613f37520872e68db5f", mac="H1laxA3HXmg4jjyhDmWUEGpdZwc6tcA4U9OMAUXtoFs="') }
76
76
  it_behaves_like :authenticated_mac_request
77
77
  end
78
78
  end
79
79
 
80
80
  context 'when invalid_token is given' do
81
- let(:env) { Rack::MockRequest.env_for('/protected_resource', 'HTTP_AUTHORIZATION' => 'MAC token="invalid_token"') }
81
+ let(:env) { Rack::MockRequest.env_for('/protected_resource', 'HTTP_AUTHORIZATION' => 'MAC id="invalid_token"') }
82
82
  it_behaves_like :unauthorized_mac_request
83
83
 
84
84
  describe 'realm' do
85
- let(:env) { Rack::MockRequest.env_for('/protected_resource', 'HTTP_AUTHORIZATION' => 'MAC token="invalid_token"') }
85
+ let(:env) { Rack::MockRequest.env_for('/protected_resource', 'HTTP_AUTHORIZATION' => 'MAC id="invalid_token"') }
86
86
 
87
87
  context 'when specified' do
88
88
  let(:realm) { 'server.example.com' }
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,3 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
-
4
1
  require 'rack/oauth2'
5
2
  require 'rspec'
6
3
  require 'fakeweb'
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rack-oauth2
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.6.9
5
+ version: 0.7.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - nov matake
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-10 00:00:00 Z
13
+ date: 2011-05-18 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rack
@@ -109,6 +109,9 @@ dependencies:
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: "2"
112
+ - - <=
113
+ - !ruby/object:Gem::Version
114
+ version: "2.5"
112
115
  type: :development
113
116
  version_requirements: *id009
114
117
  - !ruby/object:Gem::Dependency
@@ -136,6 +139,7 @@ files:
136
139
  - .gitignore
137
140
  - .rspec
138
141
  - Gemfile
142
+ - Gemfile.lock
139
143
  - LICENSE
140
144
  - README.rdoc
141
145
  - Rakefile
@@ -190,6 +194,8 @@ files:
190
194
  - spec/helpers/time.rb
191
195
  - spec/rack/oauth2/access_token/bearer_spec.rb
192
196
  - spec/rack/oauth2/access_token/legacy_spec.rb
197
+ - spec/rack/oauth2/access_token/mac/body_hash_spec.rb
198
+ - spec/rack/oauth2/access_token/mac/signature_spec.rb
193
199
  - spec/rack/oauth2/access_token/mac/verifier_spec.rb
194
200
  - spec/rack/oauth2/access_token/mac_spec.rb
195
201
  - spec/rack/oauth2/access_token_spec.rb
@@ -253,6 +259,8 @@ test_files:
253
259
  - spec/helpers/time.rb
254
260
  - spec/rack/oauth2/access_token/bearer_spec.rb
255
261
  - spec/rack/oauth2/access_token/legacy_spec.rb
262
+ - spec/rack/oauth2/access_token/mac/body_hash_spec.rb
263
+ - spec/rack/oauth2/access_token/mac/signature_spec.rb
256
264
  - spec/rack/oauth2/access_token/mac/verifier_spec.rb
257
265
  - spec/rack/oauth2/access_token/mac_spec.rb
258
266
  - spec/rack/oauth2/access_token_spec.rb