rack-oauth2 0.14.2 → 0.14.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rack-oauth2 (0.14.1)
4
+ rack-oauth2 (0.14.2)
5
5
  activesupport (>= 2.3)
6
6
  attr_required (>= 0.0.5)
7
7
  httpclient (>= 2.2.0.2)
@@ -15,7 +15,7 @@ GEM
15
15
  activesupport (3.2.1)
16
16
  i18n (~> 0.6)
17
17
  multi_json (~> 1.0)
18
- addressable (2.2.6)
18
+ addressable (2.2.7)
19
19
  attr_required (0.0.5)
20
20
  bouncy-castle-java (1.5.0146.1)
21
21
  configatron (2.9.0)
@@ -31,7 +31,8 @@ GEM
31
31
  jruby-openssl (0.7.6.1)
32
32
  bouncy-castle-java (>= 1.5.0146.1)
33
33
  json (1.6.5)
34
- multi_json (1.0.4)
34
+ json (1.6.5-java)
35
+ multi_json (1.1.0)
35
36
  rack (1.4.1)
36
37
  rake (0.9.2.2)
37
38
  rspec (2.8.0)
@@ -42,8 +43,8 @@ GEM
42
43
  rspec-expectations (2.8.0)
43
44
  diff-lcs (~> 1.1.2)
44
45
  rspec-mocks (2.8.0)
45
- webmock (1.7.10)
46
- addressable (~> 2.2, > 2.2.5)
46
+ webmock (1.8.0)
47
+ addressable (>= 2.2.7)
47
48
  crack (>= 0.1.7)
48
49
  yamler (0.1.0)
49
50
 
data/Rakefile CHANGED
@@ -5,9 +5,15 @@ require 'rspec/core/rake_task'
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
 
7
7
  if RUBY_VERSION >= '1.9'
8
- require 'cover_me'
9
- CoverMe.config do |c|
10
- c.file_pattern = /(#{CoverMe.config.project.root}\/lib\/.+\.rb)/i
8
+ namespace :cover_me do
9
+ desc "Generates and opens code coverage report."
10
+ task :report do
11
+ require 'cover_me'
12
+ CoverMe.complete!
13
+ end
14
+ end
15
+ task :spec do
16
+ Rake::Task['cover_me:report'].invoke
11
17
  end
12
18
  else
13
19
  RSpec::Core::RakeTask.new(:rcov) do |spec|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.14.2
1
+ 0.14.3
@@ -45,14 +45,25 @@ module Rack
45
45
  )
46
46
  end
47
47
 
48
- def access_token!
49
- params = @grant.as_json
50
- params.merge!(
51
- :client_id => self.identifier,
52
- :client_secret => self.secret
53
- )
48
+ def access_token!(client_auth_method = :basic)
49
+ headers, params = {}, @grant.as_json
50
+ if secret && client_auth_method == :basic
51
+ cred = ["#{identifier}:#{secret}"].pack('m').tr("\n", '')
52
+ headers.merge!(
53
+ :Authorization => "Basic #{cred}"
54
+ )
55
+ else
56
+ params.merge!(
57
+ :client_id => identifier,
58
+ :client_secret => secret
59
+ )
60
+ end
54
61
  handle_response do
55
- Rack::OAuth2.http_client.post absolute_uri_for(token_endpoint), Util.compact_hash(params)
62
+ Rack::OAuth2.http_client.post(
63
+ absolute_uri_for(token_endpoint),
64
+ Util.compact_hash(params),
65
+ headers
66
+ )
56
67
  end
57
68
  end
58
69
 
@@ -21,6 +21,9 @@ module WebMockHelper
21
21
  request[:query] = options[:params]
22
22
  end
23
23
  end
24
+ if options[:request_header]
25
+ request[:headers] = options[:request_header]
26
+ end
24
27
  request
25
28
  end
26
29
 
@@ -79,6 +79,42 @@ describe Rack::OAuth2::Client do
79
79
  describe '#access_token!' do
80
80
  subject { client.access_token! }
81
81
 
82
+ describe 'client authentication method' do
83
+ before do
84
+ client.authorization_code = 'code'
85
+ end
86
+
87
+ it 'should be Basic auth as default' do
88
+ mock_response(
89
+ :post,
90
+ 'https://server.example.com/oauth2/token',
91
+ 'tokens/bearer.json',
92
+ :request_header => {
93
+ 'Authorization' => 'Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ='
94
+ }
95
+ )
96
+ client.access_token!
97
+ end
98
+
99
+ context 'when' do
100
+ it do
101
+ mock_response(
102
+ :post,
103
+ 'https://server.example.com/oauth2/token',
104
+ 'tokens/bearer.json',
105
+ :params => {
106
+ :client_id => 'client_id',
107
+ :client_secret => 'client_secret',
108
+ :code => 'code',
109
+ :grant_type => 'authorization_code',
110
+ :redirect_uri => 'https://client.example.com/callback'
111
+ }
112
+ )
113
+ client.access_token! :client_auth_body
114
+ end
115
+ end
116
+ end
117
+
82
118
  context 'when bearer token is given' do
83
119
  before do
84
120
  client.authorization_code = 'code'
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,5 @@
1
1
  if RUBY_VERSION >= '1.9'
2
2
  require 'cover_me'
3
- at_exit do
4
- CoverMe.complete!
5
- end
6
3
  end
7
4
 
8
5
  require 'rspec'
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.2
4
+ version: 0.14.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-16 00:00:00.000000000Z
12
+ date: 2012-02-26 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
16
- requirement: &70209520442160 !ruby/object:Gem::Requirement
16
+ requirement: &70126969125120 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '1.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70209520442160
24
+ version_requirements: *70126969125120
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: json
27
- requirement: &70209520436320 !ruby/object:Gem::Requirement
27
+ requirement: &70126969115760 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.4.3
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70209520436320
35
+ version_requirements: *70126969115760
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: httpclient
38
- requirement: &70209520434120 !ruby/object:Gem::Requirement
38
+ requirement: &70126969114580 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.2.0.2
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70209520434120
46
+ version_requirements: *70126969114580
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &70209520432320 !ruby/object:Gem::Requirement
49
+ requirement: &70126969112160 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '2.3'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70209520432320
57
+ version_requirements: *70126969112160
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: i18n
60
- requirement: &70209520427100 !ruby/object:Gem::Requirement
60
+ requirement: &70126969106220 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70209520427100
68
+ version_requirements: *70126969106220
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: attr_required
71
- requirement: &70209520425760 !ruby/object:Gem::Requirement
71
+ requirement: &70126969103920 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.0.5
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70209520425760
79
+ version_requirements: *70126969103920
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rake
82
- requirement: &70209520424520 !ruby/object:Gem::Requirement
82
+ requirement: &70126969102540 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0.8'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70209520424520
90
+ version_requirements: *70126969102540
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: cover_me
93
- requirement: &70209520422400 !ruby/object:Gem::Requirement
93
+ requirement: &70126969101760 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 1.2.0
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70209520422400
101
+ version_requirements: *70126969101760
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rspec
104
- requirement: &70209520420720 !ruby/object:Gem::Requirement
104
+ requirement: &70126969100840 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '2'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70209520420720
112
+ version_requirements: *70126969100840
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: webmock
115
- requirement: &70209520417720 !ruby/object:Gem::Requirement
115
+ requirement: &70126969100320 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,7 +120,7 @@ dependencies:
120
120
  version: 1.6.2
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70209520417720
123
+ version_requirements: *70126969100320
124
124
  description: OAuth 2.0 Server & Client Library. Both Bearer and MAC token type are
125
125
  supported.
126
126
  email: nov@matake.jp