rack-oauth2 1.21.3 → 2.0.0.rc1

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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/spec.yml +2 -0
  3. data/README.rdoc +1 -20
  4. data/VERSION +1 -1
  5. data/lib/rack/oauth2/access_token/authenticator.rb +1 -10
  6. data/lib/rack/oauth2/access_token/bearer.rb +1 -1
  7. data/lib/rack/oauth2/access_token/legacy.rb +1 -1
  8. data/lib/rack/oauth2/access_token.rb +2 -3
  9. data/lib/rack/oauth2/client.rb +1 -3
  10. data/lib/rack/oauth2/server/resource.rb +0 -1
  11. data/lib/rack/oauth2.rb +8 -14
  12. data/rack-oauth2.gemspec +4 -3
  13. data/spec/rack/oauth2/access_token/authenticator_spec.rb +2 -13
  14. data/spec/rack/oauth2/access_token/bearer_spec.rb +2 -2
  15. data/spec/rack/oauth2/access_token/legacy_spec.rb +2 -2
  16. data/spec/rack/oauth2/access_token_spec.rb +0 -17
  17. data/spec/rack/oauth2/client_spec.rb +0 -16
  18. data/spec/rack/oauth2/oauth2_spec.rb +0 -43
  19. metadata +21 -33
  20. data/.travis.yml +0 -8
  21. data/lib/rack/oauth2/access_token/mac/sha256_hex_verifier.rb +0 -17
  22. data/lib/rack/oauth2/access_token/mac/signature.rb +0 -34
  23. data/lib/rack/oauth2/access_token/mac/verifier.rb +0 -44
  24. data/lib/rack/oauth2/access_token/mac.rb +0 -103
  25. data/lib/rack/oauth2/debugger/request_filter.rb +0 -30
  26. data/lib/rack/oauth2/debugger.rb +0 -3
  27. data/lib/rack/oauth2/server/resource/mac/error.rb +0 -24
  28. data/lib/rack/oauth2/server/resource/mac.rb +0 -36
  29. data/spec/mock_response/tokens/mac.json +0 -8
  30. data/spec/rack/oauth2/access_token/mac/sha256_hex_verifier_spec.rb +0 -28
  31. data/spec/rack/oauth2/access_token/mac/signature_spec.rb +0 -59
  32. data/spec/rack/oauth2/access_token/mac/verifier_spec.rb +0 -25
  33. data/spec/rack/oauth2/access_token/mac_spec.rb +0 -141
  34. data/spec/rack/oauth2/debugger/request_filter_spec.rb +0 -33
  35. data/spec/rack/oauth2/server/resource/mac/error_spec.rb +0 -52
  36. data/spec/rack/oauth2/server/resource/mac_spec.rb +0 -119
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7303cf85e66a7fb4a89d66d95b4ad35720ecb95459f9740208328314ea54b157
4
- data.tar.gz: 061a4a30cbb25212979a37f26e18043cbf71dead3e36981b37f6152fc6899cfd
3
+ metadata.gz: 1cb4411750fe56e3e1d57b739554197d1ea4420833d01239498c3658e18347bf
4
+ data.tar.gz: e06e73134550dcb58ed74716faa6b8180ecf3da33f1237ebd3533c7e73cac533
5
5
  SHA512:
6
- metadata.gz: 5fbabf81d770e80f02614d3b00b0fd9db8a63ed695a5b67b74266eee1f09ec6e7045db009ea7e6ee09af84680699809032ecc64d58caee48305573cd3532b5be
7
- data.tar.gz: 5bc8cdbdddb9a997560eab574a955ab69d3ad8f9e594554a45d17e077991c2551382c917363c1c09db349abf262f5d9c15a7cfb13c24e56fe27d83cbde62f0f3
6
+ metadata.gz: 2166159ab59d7885c7e53833c20480eec38035e2d61e4aa23fe62afabacc6a5e4289ce527ad78ffbaac89f317b495957afb4f8be21e9cc38c937e6f0ad42f8e3
7
+ data.tar.gz: 0e381b83f45be184850dc8301be85db57800b317e822cc67f8c08e925df96780b828c330012aa0c22b14ee89c8f884fc9de1ac587a2faab4bd01295b4ea04c06
@@ -2,6 +2,8 @@ name: Spec
2
2
 
3
3
  on:
4
4
  push:
5
+ branches:
6
+ - master
5
7
  pull_request:
6
8
 
7
9
  permissions:
data/README.rdoc CHANGED
@@ -1,9 +1,7 @@
1
1
  = rack-oauth2
2
2
 
3
3
  OAuth 2.0 Server & Client Library.
4
- Both Bearer and MAC token type are supported.
5
-
6
- {<img src="https://secure.travis-ci.org/nov/rack-oauth2.png" />}[http://travis-ci.org/nov/rack-oauth2]
4
+ Both Bearer token type are supported.
7
5
 
8
6
  The OAuth 2.0 Authorization Framework (RFC 6749)
9
7
  http://www.rfc-editor.org/rfc/rfc6749.txt
@@ -11,9 +9,6 @@ http://www.rfc-editor.org/rfc/rfc6749.txt
11
9
  The OAuth 2.0 Authorization Framework: Bearer Token Usage (RFC 6750)
12
10
  http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer-06
13
11
 
14
- HTTP Authentication: MAC Access Authentication (draft 01)
15
- http://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-01
16
-
17
12
  == Installation
18
13
 
19
14
  gem install rack-oauth2
@@ -31,31 +26,17 @@ http://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-01
31
26
  Source on GitHub
32
27
  https://github.com/nov/rack-oauth2-sample
33
28
 
34
- === MAC
35
-
36
- Source on GitHub
37
- https://github.com/nov/rack-oauth2-sample-mac
38
-
39
29
  == Sample Client
40
30
 
41
- === Common between Bearer and MAC
42
-
43
31
  Authorization Request (request_type: 'code' and 'token')
44
32
  https://gist.github.com/862393
45
33
 
46
34
  Token Request (grant_type: 'client_credentials', 'password', 'authorization_code' and 'refresh_token')
47
35
  https://gist.github.com/883541
48
36
 
49
- === Bearer
50
-
51
37
  Resource Request (request both for resource owner resource and for client resource)
52
38
  https://gist.github.com/883575
53
39
 
54
- === MAC
55
-
56
- Resource Request (request both for resource owner resource and for client resource)
57
- https://gist.github.com/933885
58
-
59
40
  == Note on Patches/Pull Requests
60
41
 
61
42
  * Fork the project.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.21.3
1
+ 2.0.0.rc1
@@ -6,18 +6,9 @@ module Rack
6
6
  @token = token
7
7
  end
8
8
 
9
- # Callback called in HTTPClient (before sending a request)
10
- # request:: HTTP::Message
11
- def filter_request(request)
9
+ def authenticate(request)
12
10
  @token.authenticate(request)
13
11
  end
14
-
15
- # Callback called in HTTPClient (after received a response)
16
- # response:: HTTP::Message
17
- # request:: HTTP::Message
18
- def filter_response(response, request)
19
- # nothing to do
20
- end
21
12
  end
22
13
  end
23
14
  end
@@ -3,7 +3,7 @@ module Rack
3
3
  class AccessToken
4
4
  class Bearer < AccessToken
5
5
  def authenticate(request)
6
- request.header["Authorization"] = "Bearer #{access_token}"
6
+ request.headers["Authorization"] = "Bearer #{access_token}"
7
7
  end
8
8
 
9
9
  def to_mtls(attributes = {})
@@ -11,7 +11,7 @@ module Rack
11
11
  end
12
12
 
13
13
  def authenticate(request)
14
- request.header["Authorization"] = "OAuth #{access_token}"
14
+ request.headers["Authorization"] = "OAuth #{access_token}"
15
15
  end
16
16
  end
17
17
  end
@@ -19,8 +19,8 @@ module Rack
19
19
  end
20
20
 
21
21
  def httpclient
22
- @httpclient ||= Rack::OAuth2.http_client("#{self.class} (#{VERSION})") do |config|
23
- config.request_filter << Authenticator.new(self)
22
+ @httpclient ||= Rack::OAuth2.http_client("#{self.class} (#{VERSION})") do |faraday|
23
+ Authenticator.new(self).authenticate(faraday)
24
24
  end
25
25
  end
26
26
 
@@ -39,6 +39,5 @@ end
39
39
 
40
40
  require 'rack/oauth2/access_token/authenticator'
41
41
  require 'rack/oauth2/access_token/bearer'
42
- require 'rack/oauth2/access_token/mac'
43
42
  require 'rack/oauth2/access_token/legacy'
44
43
  require 'rack/oauth2/access_token/mtls'
@@ -76,7 +76,7 @@ module Rack
76
76
  handle_response do
77
77
  http_client.post(
78
78
  absolute_uri_for(token_endpoint),
79
- Util.compact_hash(params),
79
+ Util.compact_hash(params).to_query,
80
80
  headers
81
81
  )
82
82
  end
@@ -213,8 +213,6 @@ module Rack
213
213
  case (@forced_token_type || token_hash[:token_type]).try(:downcase)
214
214
  when 'bearer'
215
215
  AccessToken::Bearer.new(token_hash)
216
- when 'mac'
217
- AccessToken::MAC.new(token_hash)
218
216
  when nil
219
217
  AccessToken::Legacy.new(token_hash)
220
218
  else
@@ -52,4 +52,3 @@ end
52
52
 
53
53
  require 'rack/oauth2/server/resource/error'
54
54
  require 'rack/oauth2/server/resource/bearer'
55
- require 'rack/oauth2/server/resource/mac'
data/lib/rack/oauth2.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'rack'
2
- require 'httpclient'
2
+ require 'faraday'
3
+ require 'faraday/follow_redirects'
3
4
  require 'logger'
4
5
  require 'active_support'
5
6
  require 'active_support/core_ext'
@@ -40,18 +41,12 @@ module Rack
40
41
  self.debugging = false
41
42
 
42
43
  def self.http_client(agent_name = "Rack::OAuth2 (#{VERSION})", &local_http_config)
43
- _http_client_ = HTTPClient.new(
44
- agent_name: agent_name
45
- )
46
-
47
- # NOTE: httpclient gem seems stopped maintaining root certtificate set, use OS default.
48
- _http_client_.ssl_config.clear_cert_store
49
- _http_client_.ssl_config.cert_store.set_default_paths
50
-
51
- http_config.try(:call, _http_client_)
52
- local_http_config.try(:call, _http_client_) unless local_http_config.nil?
53
- _http_client_.request_filter << Debugger::RequestFilter.new if debugging?
54
- _http_client_
44
+ Faraday.new(headers: {user_agent: agent_name}) do |faraday|
45
+ faraday.response :logger, Rack::OAuth2.logger if debugging?
46
+ faraday.adapter Faraday.default_adapter
47
+ local_http_config&.call(faraday)
48
+ http_config&.call(faraday)
49
+ end
55
50
  end
56
51
 
57
52
  def self.http_config(&block)
@@ -70,4 +65,3 @@ require 'rack/oauth2/util'
70
65
  require 'rack/oauth2/server'
71
66
  require 'rack/oauth2/client'
72
67
  require 'rack/oauth2/access_token'
73
- require 'rack/oauth2/debugger'
data/rack-oauth2.gemspec CHANGED
@@ -2,8 +2,8 @@ Gem::Specification.new do |s|
2
2
  s.name = 'rack-oauth2'
3
3
  s.version = File.read('VERSION')
4
4
  s.authors = ['nov matake']
5
- s.description = %q{OAuth 2.0 Server & Client Library. Both Bearer and MAC token type are supported.}
6
- s.summary = %q{OAuth 2.0 Server & Client Library - Both Bearer and MAC token type are supported}
5
+ s.description = %q{OAuth 2.0 Server & Client Library. Both Bearer token type are supported.}
6
+ s.summary = %q{OAuth 2.0 Server & Client Library - Both Bearer token type are supported}
7
7
  s.email = 'nov@matake.jp'
8
8
  s.extra_rdoc_files = ['LICENSE', 'README.rdoc']
9
9
  s.rdoc_options = ['--charset=UTF-8']
@@ -14,7 +14,8 @@ 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', '>= 2.1.0'
17
- s.add_runtime_dependency 'httpclient'
17
+ s.add_runtime_dependency 'faraday', '~> 2.0'
18
+ s.add_runtime_dependency 'faraday-follow_redirects'
18
19
  s.add_runtime_dependency 'activesupport'
19
20
  s.add_runtime_dependency 'attr_required'
20
21
  s.add_runtime_dependency 'json-jwt', '>= 1.11.0'
@@ -2,13 +2,13 @@ require 'spec_helper'
2
2
 
3
3
  describe Rack::OAuth2::AccessToken::Authenticator do
4
4
  let(:resource_endpoint) { 'https://server.example.com/resources/fake' }
5
- let(:request) { HTTP::Message.new_request(:get, URI.parse(resource_endpoint)) }
5
+ let(:request) { Faraday::Request.new(:get, URI.parse(resource_endpoint)) }
6
6
  let(:authenticator) { Rack::OAuth2::AccessToken::Authenticator.new(token) }
7
7
 
8
8
  shared_examples_for :authenticator do
9
9
  it 'should let the token authenticate the request' do
10
10
  expect(token).to receive(:authenticate).with(request)
11
- authenticator.filter_request(request)
11
+ authenticator.authenticate(request)
12
12
  end
13
13
  end
14
14
 
@@ -29,15 +29,4 @@ describe Rack::OAuth2::AccessToken::Authenticator do
29
29
  end
30
30
  it_behaves_like :authenticator
31
31
  end
32
-
33
- context 'when MAC token is given' do
34
- let(:token) do
35
- Rack::OAuth2::AccessToken::MAC.new(
36
- access_token: 'access_token',
37
- mac_key: 'secret',
38
- mac_algorithm: 'hmac-sha-256'
39
- )
40
- end
41
- it_behaves_like :authenticator
42
- end
43
32
  end
@@ -7,11 +7,11 @@ describe Rack::OAuth2::AccessToken::Bearer do
7
7
  )
8
8
  end
9
9
  let(:resource_endpoint) { 'https://server.example.com/resources/fake' }
10
- let(:request) { HTTPClient.new.send(:create_request, :post, URI.parse(resource_endpoint), {}, {hello: "world"}, {}) }
10
+ let(:request) { Faraday::Request.new(:post, URI.parse(resource_endpoint), '', {hello: "world"}, {}) }
11
11
 
12
12
  describe '.authenticate' do
13
13
  it 'should set Authorization header' do
14
- expect(request.header).to receive(:[]=).with('Authorization', 'Bearer access_token')
14
+ expect(request.headers).to receive(:[]=).with('Authorization', 'Bearer access_token')
15
15
  token.authenticate(request)
16
16
  end
17
17
  end
@@ -7,7 +7,7 @@ describe Rack::OAuth2::AccessToken::Legacy do
7
7
  )
8
8
  end
9
9
  let(:resource_endpoint) { 'https://server.example.com/resources/fake' }
10
- let(:request) { HTTPClient.new.send(:create_request, :post, URI.parse(resource_endpoint), {}, {hello: "world"}, {}) }
10
+ let(:request) { Faraday::Request.new(:post, URI.parse(resource_endpoint), '', {hello: "world"}, {}) }
11
11
 
12
12
  describe '#to_s' do
13
13
  subject { token }
@@ -16,7 +16,7 @@ describe Rack::OAuth2::AccessToken::Legacy do
16
16
 
17
17
  describe '.authenticate' do
18
18
  it 'should set Authorization header' do
19
- expect(request.header).to receive(:[]=).with('Authorization', 'OAuth access_token')
19
+ expect(request.headers).to receive(:[]=).with('Authorization', 'OAuth access_token')
20
20
  token.authenticate(request)
21
21
  end
22
22
  end
@@ -49,23 +49,6 @@ describe Rack::OAuth2::AccessToken do
49
49
 
50
50
  let(:resource_endpoint) { 'https://server.example.com/resources/fake' }
51
51
  [:get, :delete, :post, :put].each do |method|
52
- describe method do
53
- it 'should delegate to HTTPClient with Authenticator filter' do
54
- expect(token.httpclient).to receive(method).with(resource_endpoint)
55
- token.httpclient.request_filter.last.should be_a Rack::OAuth2::AccessToken::Authenticator
56
- token.send method, resource_endpoint
57
- end
58
- end
59
-
60
- context 'in debug mode' do
61
- it do
62
- Rack::OAuth2.debug do
63
- token.httpclient.request_filter[-2].should be_a Rack::OAuth2::AccessToken::Authenticator
64
- token.httpclient.request_filter.last.should be_a Rack::OAuth2::Debugger::RequestFilter
65
- end
66
- end
67
- end
68
-
69
52
  context 'when extension params given' do
70
53
  subject do
71
54
  Rack::OAuth2::AccessToken::Bearer.new(
@@ -338,22 +338,6 @@ describe Rack::OAuth2::Client do
338
338
  end
339
339
  end
340
340
 
341
- context 'when mac token is given' do
342
- before do
343
- client.authorization_code = 'code'
344
- mock_response(
345
- :post,
346
- 'https://server.example.com/oauth2/token',
347
- 'tokens/mac.json'
348
- )
349
- end
350
- it { should be_instance_of Rack::OAuth2::AccessToken::MAC }
351
- its(:token_type) { should == :mac }
352
- its(:access_token) { should == 'access_token' }
353
- its(:refresh_token) { should == 'refresh_token' }
354
- its(:expires_in) { should == 3600 }
355
- end
356
-
357
341
  context 'when no-type token is given (JSON)' do
358
342
  before do
359
343
  client.authorization_code = 'code'
@@ -28,47 +28,4 @@ describe Rack::OAuth2 do
28
28
  Rack::OAuth2.debugging?.should == true
29
29
  end
30
30
  end
31
-
32
- describe '.http_config' do
33
- context 'when request_filter added' do
34
- context 'when "debug!" is called' do
35
- after { Rack::OAuth2.reset_http_config! }
36
-
37
- it 'should put Debugger::RequestFilter at last' do
38
- Rack::OAuth2.debug!
39
- Rack::OAuth2.http_config do |config|
40
- config.request_filter << Proc.new {}
41
- end
42
- Rack::OAuth2.http_client.request_filter.last.should be_instance_of Rack::OAuth2::Debugger::RequestFilter
43
- end
44
-
45
- it 'should reset_http_config' do
46
- Rack::OAuth2.debug!
47
- Rack::OAuth2.http_config do |config|
48
- config.request_filter << Proc.new {}
49
- end
50
- size = Rack::OAuth2.http_client.request_filter.size
51
- Rack::OAuth2.reset_http_config!
52
- Rack::OAuth2.http_client.request_filter.size.should == size - 1
53
- end
54
-
55
- end
56
- end
57
- end
58
-
59
- describe ".http_client" do
60
- context "when local_http_config is used" do
61
- it "should correctly set request_filter" do
62
- clnt1 = Rack::OAuth2.http_client
63
- clnt2 = Rack::OAuth2.http_client("my client") do |config|
64
- config.request_filter << Proc.new {}
65
- end
66
- clnt3 = Rack::OAuth2.http_client
67
-
68
- clnt1.request_filter.size.should == clnt3.request_filter.size
69
- clnt1.request_filter.size.should == clnt2.request_filter.size - 1
70
-
71
- end
72
- end
73
- end
74
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-oauth2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.21.3
4
+ version: 2.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - nov matake
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-14 00:00:00.000000000 Z
11
+ date: 2022-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -25,7 +25,21 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 2.1.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: httpclient
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: faraday-follow_redirects
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - ">="
@@ -164,8 +178,7 @@ dependencies:
164
178
  - - ">="
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0'
167
- description: OAuth 2.0 Server & Client Library. Both Bearer and MAC token type are
168
- supported.
181
+ description: OAuth 2.0 Server & Client Library. Both Bearer token type are supported.
169
182
  email: nov@matake.jp
170
183
  executables: []
171
184
  extensions: []
@@ -178,7 +191,6 @@ files:
178
191
  - ".github/workflows/spec.yml"
179
192
  - ".gitignore"
180
193
  - ".rspec"
181
- - ".travis.yml"
182
194
  - Gemfile
183
195
  - LICENSE
184
196
  - README.rdoc
@@ -189,10 +201,6 @@ files:
189
201
  - lib/rack/oauth2/access_token/authenticator.rb
190
202
  - lib/rack/oauth2/access_token/bearer.rb
191
203
  - lib/rack/oauth2/access_token/legacy.rb
192
- - lib/rack/oauth2/access_token/mac.rb
193
- - lib/rack/oauth2/access_token/mac/sha256_hex_verifier.rb
194
- - lib/rack/oauth2/access_token/mac/signature.rb
195
- - lib/rack/oauth2/access_token/mac/verifier.rb
196
204
  - lib/rack/oauth2/access_token/mtls.rb
197
205
  - lib/rack/oauth2/client.rb
198
206
  - lib/rack/oauth2/client/error.rb
@@ -204,8 +212,6 @@ files:
204
212
  - lib/rack/oauth2/client/grant/refresh_token.rb
205
213
  - lib/rack/oauth2/client/grant/saml2_bearer.rb
206
214
  - lib/rack/oauth2/client/grant/token_exchange.rb
207
- - lib/rack/oauth2/debugger.rb
208
- - lib/rack/oauth2/debugger/request_filter.rb
209
215
  - lib/rack/oauth2/server.rb
210
216
  - lib/rack/oauth2/server/abstract.rb
211
217
  - lib/rack/oauth2/server/abstract/error.rb
@@ -228,8 +234,6 @@ files:
228
234
  - lib/rack/oauth2/server/resource/bearer.rb
229
235
  - lib/rack/oauth2/server/resource/bearer/error.rb
230
236
  - lib/rack/oauth2/server/resource/error.rb
231
- - lib/rack/oauth2/server/resource/mac.rb
232
- - lib/rack/oauth2/server/resource/mac/error.rb
233
237
  - lib/rack/oauth2/server/token.rb
234
238
  - lib/rack/oauth2/server/token/authorization_code.rb
235
239
  - lib/rack/oauth2/server/token/client_credentials.rb
@@ -253,15 +257,10 @@ files:
253
257
  - spec/mock_response/tokens/legacy.json
254
258
  - spec/mock_response/tokens/legacy.txt
255
259
  - spec/mock_response/tokens/legacy_without_expires_in.txt
256
- - spec/mock_response/tokens/mac.json
257
260
  - spec/mock_response/tokens/unknown.json
258
261
  - spec/rack/oauth2/access_token/authenticator_spec.rb
259
262
  - spec/rack/oauth2/access_token/bearer_spec.rb
260
263
  - spec/rack/oauth2/access_token/legacy_spec.rb
261
- - spec/rack/oauth2/access_token/mac/sha256_hex_verifier_spec.rb
262
- - spec/rack/oauth2/access_token/mac/signature_spec.rb
263
- - spec/rack/oauth2/access_token/mac/verifier_spec.rb
264
- - spec/rack/oauth2/access_token/mac_spec.rb
265
264
  - spec/rack/oauth2/access_token_spec.rb
266
265
  - spec/rack/oauth2/client/error_spec.rb
267
266
  - spec/rack/oauth2/client/grant/authorization_code_spec.rb
@@ -271,7 +270,6 @@ files:
271
270
  - spec/rack/oauth2/client/grant/refresh_token_spec.rb
272
271
  - spec/rack/oauth2/client/grant/saml2_bearer_spec.rb
273
272
  - spec/rack/oauth2/client_spec.rb
274
- - spec/rack/oauth2/debugger/request_filter_spec.rb
275
273
  - spec/rack/oauth2/oauth2_spec.rb
276
274
  - spec/rack/oauth2/server/abstract/error_spec.rb
277
275
  - spec/rack/oauth2/server/authorize/code_spec.rb
@@ -284,8 +282,6 @@ files:
284
282
  - spec/rack/oauth2/server/resource/bearer/error_spec.rb
285
283
  - spec/rack/oauth2/server/resource/bearer_spec.rb
286
284
  - spec/rack/oauth2/server/resource/error_spec.rb
287
- - spec/rack/oauth2/server/resource/mac/error_spec.rb
288
- - spec/rack/oauth2/server/resource/mac_spec.rb
289
285
  - spec/rack/oauth2/server/resource_spec.rb
290
286
  - spec/rack/oauth2/server/token/authorization_code_spec.rb
291
287
  - spec/rack/oauth2/server/token/client_credentials_spec.rb
@@ -313,14 +309,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
313
309
  version: '0'
314
310
  required_rubygems_version: !ruby/object:Gem::Requirement
315
311
  requirements:
316
- - - ">="
312
+ - - ">"
317
313
  - !ruby/object:Gem::Version
318
- version: '0'
314
+ version: 1.3.1
319
315
  requirements: []
320
316
  rubygems_version: 3.3.7
321
317
  signing_key:
322
318
  specification_version: 4
323
- summary: OAuth 2.0 Server & Client Library - Both Bearer and MAC token type are supported
319
+ summary: OAuth 2.0 Server & Client Library - Both Bearer token type are supported
324
320
  test_files:
325
321
  - spec/helpers/time.rb
326
322
  - spec/helpers/webmock_helper.rb
@@ -332,15 +328,10 @@ test_files:
332
328
  - spec/mock_response/tokens/legacy.json
333
329
  - spec/mock_response/tokens/legacy.txt
334
330
  - spec/mock_response/tokens/legacy_without_expires_in.txt
335
- - spec/mock_response/tokens/mac.json
336
331
  - spec/mock_response/tokens/unknown.json
337
332
  - spec/rack/oauth2/access_token/authenticator_spec.rb
338
333
  - spec/rack/oauth2/access_token/bearer_spec.rb
339
334
  - spec/rack/oauth2/access_token/legacy_spec.rb
340
- - spec/rack/oauth2/access_token/mac/sha256_hex_verifier_spec.rb
341
- - spec/rack/oauth2/access_token/mac/signature_spec.rb
342
- - spec/rack/oauth2/access_token/mac/verifier_spec.rb
343
- - spec/rack/oauth2/access_token/mac_spec.rb
344
335
  - spec/rack/oauth2/access_token_spec.rb
345
336
  - spec/rack/oauth2/client/error_spec.rb
346
337
  - spec/rack/oauth2/client/grant/authorization_code_spec.rb
@@ -350,7 +341,6 @@ test_files:
350
341
  - spec/rack/oauth2/client/grant/refresh_token_spec.rb
351
342
  - spec/rack/oauth2/client/grant/saml2_bearer_spec.rb
352
343
  - spec/rack/oauth2/client_spec.rb
353
- - spec/rack/oauth2/debugger/request_filter_spec.rb
354
344
  - spec/rack/oauth2/oauth2_spec.rb
355
345
  - spec/rack/oauth2/server/abstract/error_spec.rb
356
346
  - spec/rack/oauth2/server/authorize/code_spec.rb
@@ -363,8 +353,6 @@ test_files:
363
353
  - spec/rack/oauth2/server/resource/bearer/error_spec.rb
364
354
  - spec/rack/oauth2/server/resource/bearer_spec.rb
365
355
  - spec/rack/oauth2/server/resource/error_spec.rb
366
- - spec/rack/oauth2/server/resource/mac/error_spec.rb
367
- - spec/rack/oauth2/server/resource/mac_spec.rb
368
356
  - spec/rack/oauth2/server/resource_spec.rb
369
357
  - spec/rack/oauth2/server/token/authorization_code_spec.rb
370
358
  - spec/rack/oauth2/server/token/client_credentials_spec.rb
data/.travis.yml DELETED
@@ -1,8 +0,0 @@
1
- before_install:
2
- - gem install bundler
3
-
4
- rvm:
5
- - 2.6.10
6
- - 2.7.6
7
- - 3.0.4
8
- - 3.1.2
@@ -1,17 +0,0 @@
1
- module Rack
2
- module OAuth2
3
- class AccessToken
4
- class MAC
5
- class Sha256HexVerifier < Verifier
6
- attr_optional :raw_body
7
-
8
- def calculate
9
- return nil unless raw_body.present?
10
-
11
- OpenSSL::Digest::SHA256.new.digest(raw_body).unpack('H*').first
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,34 +0,0 @@
1
- module Rack
2
- module OAuth2
3
- class AccessToken
4
- class MAC
5
- class Signature < Verifier
6
- attr_required :secret, :ts, :nonce, :method, :request_uri, :host, :port
7
- attr_optional :ext, :query
8
-
9
- def calculate
10
- Rack::OAuth2::Util.base64_encode OpenSSL::HMAC.digest(
11
- hash_generator,
12
- secret,
13
- normalized_request_string
14
- )
15
- end
16
-
17
- def normalized_request_string
18
- [
19
- ts.to_i,
20
- nonce,
21
- method.to_s.upcase,
22
- request_uri,
23
- host,
24
- port,
25
- ext || '',
26
- nil
27
- ].join("\n")
28
- end
29
-
30
- end
31
- end
32
- end
33
- end
34
- end
@@ -1,44 +0,0 @@
1
- module Rack
2
- module OAuth2
3
- class AccessToken
4
- class MAC
5
- class Verifier
6
- include AttrRequired, AttrOptional
7
- attr_required :algorithm
8
-
9
- class VerificationFailed < StandardError; end
10
-
11
- def initialize(attributes = {})
12
- (required_attributes + optional_attributes).each do |key|
13
- self.send :"#{key}=", attributes[key]
14
- end
15
- attr_missing!
16
- rescue AttrRequired::AttrMissing => e
17
- raise VerificationFailed.new("#{self.class.name.demodulize} Invalid: #{e.message}")
18
- end
19
-
20
- def verify!(expected)
21
- if expected == self.calculate
22
- :verified
23
- else
24
- raise VerificationFailed.new("#{self.class.name.demodulize} Invalid")
25
- end
26
- end
27
-
28
- private
29
-
30
- def hash_generator
31
- case algorithm.to_s
32
- when 'hmac-sha-1'
33
- OpenSSL::Digest::SHA1.new
34
- when 'hmac-sha-256'
35
- OpenSSL::Digest::SHA256.new
36
- else
37
- raise 'Unsupported Algorithm'
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end
44
- end