rack-oauth2 0.14.8 → 0.14.9

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/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