rack-oauth2 0.14.8 → 0.14.9

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,12 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rack-oauth2 (0.14.7)
4
+ rack-oauth2 (0.14.8)
5
5
  activesupport (>= 2.3)
6
6
  attr_required (>= 0.0.5)
7
7
  httpclient (>= 2.2.0.2)
8
8
  i18n
9
- json (>= 1.4.3)
9
+ multi_json (>= 1.3.6)
10
10
  rack (>= 1.1)
11
11
 
12
12
  GEM
@@ -15,7 +15,7 @@ GEM
15
15
  activesupport (3.2.8)
16
16
  i18n (~> 0.6)
17
17
  multi_json (~> 1.0)
18
- addressable (2.2.8)
18
+ addressable (2.3.2)
19
19
  attr_required (0.0.5)
20
20
  bouncy-castle-java (1.5.0146.1)
21
21
  configatron (2.9.1)
@@ -26,11 +26,10 @@ GEM
26
26
  crack (0.3.1)
27
27
  diff-lcs (1.1.3)
28
28
  hashie (1.2.0)
29
- httpclient (2.2.5)
29
+ httpclient (2.2.7)
30
30
  i18n (0.6.0)
31
31
  jruby-openssl (0.7.7)
32
32
  bouncy-castle-java (>= 1.5.0146.1)
33
- json (1.7.4)
34
33
  multi_json (1.3.6)
35
34
  rack (1.4.1)
36
35
  rake (0.9.2.2)
@@ -41,9 +40,9 @@ GEM
41
40
  rspec-core (2.11.1)
42
41
  rspec-expectations (2.11.2)
43
42
  diff-lcs (~> 1.1.3)
44
- rspec-mocks (2.11.1)
45
- webmock (1.8.8)
46
- addressable (~> 2.2.8)
43
+ rspec-mocks (2.11.2)
44
+ webmock (1.8.9)
45
+ addressable (>= 2.2.7)
47
46
  crack (>= 0.1.7)
48
47
  yamler (0.1.0)
49
48
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.14.8
1
+ 0.14.9
data/lib/rack/oauth2.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'rack'
2
- require 'json'
2
+ require 'multi_json'
3
3
  require 'httpclient'
4
4
  require 'logger'
5
5
  require 'active_support/core_ext'
@@ -89,7 +89,7 @@ module Rack
89
89
  end
90
90
 
91
91
  def handle_success_response(response)
92
- token_hash = JSON.parse(response.body).with_indifferent_access
92
+ token_hash = MultiJson.load(response.body).with_indifferent_access
93
93
  case token_hash[:token_type].try(:downcase)
94
94
  when 'bearer'
95
95
  AccessToken::Bearer.new(token_hash)
@@ -100,15 +100,15 @@ module Rack
100
100
  else
101
101
  raise 'Unknown Token Type'
102
102
  end
103
- rescue JSON::ParserError
103
+ rescue MultiJson::DecodeError
104
104
  # NOTE: Facebook support (They don't use JSON as token response)
105
105
  AccessToken::Legacy.new Rack::Utils.parse_nested_query(response.body).with_indifferent_access
106
106
  end
107
107
 
108
108
  def handle_error_response(response)
109
- error = JSON.parse(response.body).with_indifferent_access
109
+ error = MultiJson.load(response.body).with_indifferent_access
110
110
  raise Error.new(response.status, error)
111
- rescue JSON::ParserError
111
+ rescue MultiJson::DecodeError
112
112
  raise Error.new(response.status, :error => 'Unknown', :error_description => response.body)
113
113
  end
114
114
  end
@@ -28,7 +28,7 @@ module Rack
28
28
  yield response if block_given?
29
29
  unless response.redirect?
30
30
  response.header['Content-Type'] = 'application/json'
31
- response.write Util.compact_hash(protocol_params).to_json
31
+ response.write MultiJson.dump(Util.compact_hash(protocol_params))
32
32
  end
33
33
  response.finish
34
34
  end
@@ -60,7 +60,7 @@ module Rack
60
60
  else
61
61
  bad_request! 'Invalid redirect_uri is given'
62
62
  end
63
- elsif pre_registered.present? && Array(pre_registered).size == 1
63
+ elsif pre_registered.present? && Array(pre_registered).size == 1 && !allow_partial_match
64
64
  Array(pre_registered).first
65
65
  else
66
66
  bad_request! 'No redirect_uri is given'
@@ -64,7 +64,7 @@ module Rack
64
64
 
65
65
  def finish
66
66
  attr_missing!
67
- write Util.compact_hash(protocol_params).to_json
67
+ write MultiJson.dump(Util.compact_hash(protocol_params))
68
68
  header['Content-Type'] = 'application/json'
69
69
  header['Cache-Control'] = 'no-store'
70
70
  header['Pragma'] = 'no-cache'
data/rack-oauth2.gemspec CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.files = `git ls-files`.split("\n")
15
15
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
16
  s.add_runtime_dependency "rack", ">= 1.1"
17
- s.add_runtime_dependency "json", ">= 1.4.3"
17
+ s.add_runtime_dependency "multi_json", ">= 1.3.6"
18
18
  s.add_runtime_dependency "httpclient", ">= 2.2.0.2"
19
19
  s.add_runtime_dependency "activesupport", ">= 2.3"
20
20
  s.add_runtime_dependency "i18n"
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe Rack::OAuth2::Debugger::RequestFilter do
4
4
  let(:resource_endpoint) { 'https://example.com/resources' }
5
5
  let(:request) { HTTP::Message.new_request(:get, URI.parse(resource_endpoint)) }
6
- let(:response) { HTTP::Message.new_response({:hello => 'world'}.to_json) }
6
+ let(:response) { HTTP::Message.new_response(MultiJson.dump({:hello => 'world'})) }
7
7
  let(:request_filter) { Rack::OAuth2::Debugger::RequestFilter.new }
8
8
 
9
9
  describe '#filter_request' do
@@ -120,8 +120,19 @@ describe Rack::OAuth2::Server::Authorize do
120
120
  context 'when pre-registered redirect_uri is an Array' do
121
121
  context 'when only 1' do
122
122
  let(:pre_registered) { [redirect_uri] }
123
- it 'should use pre-registered redirect_uri' do
124
- request.verify_redirect_uri!(pre_registered).should == pre_registered.first
123
+
124
+ context 'when partial match allowed' do
125
+ it do
126
+ expect do
127
+ request.verify_redirect_uri!(pre_registered, :allow_partial_match)
128
+ end.to raise_error Rack::OAuth2::Server::Authorize::BadRequest
129
+ end
130
+ end
131
+
132
+ context 'otherwise' do
133
+ it 'should use pre-registered redirect_uri' do
134
+ request.verify_redirect_uri!(pre_registered).should == pre_registered.first
135
+ end
125
136
  end
126
137
  end
127
138
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.8
4
+ version: 0.14.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-10 00:00:00.000000000 Z
12
+ date: 2012-08-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -28,13 +28,13 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: '1.1'
30
30
  - !ruby/object:Gem::Dependency
31
- name: json
31
+ name: multi_json
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
- version: 1.4.3
37
+ version: 1.3.6
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
- version: 1.4.3
45
+ version: 1.3.6
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: httpclient
48
48
  requirement: !ruby/object:Gem::Requirement