rack-oauth2 1.21.3 → 2.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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