mauth-client 4.0.4 → 4.2.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: cfde2c6e67fe8e386a2841a096e9e0d6e2e8259b
4
- data.tar.gz: 975e40ebf4fadd4fc35c60f12afbd6ad97a25cbf
2
+ SHA256:
3
+ metadata.gz: 9a4124d677e7aee9626ea7e796bd5f92c695146cdadc125c2f05f3138d471758
4
+ data.tar.gz: 4eda569778ce91ced2cedfd14a231281e35ec068b86d2e551d52541d05b3f795
5
5
  SHA512:
6
- metadata.gz: 50642c879eb014f6fa2696dbf5a5825216e983066b8c7336311b74e8c8625078880dcc8eb7459b6fe6a89714673536e36aef931a7ea89a801cf4c09da7b99e14
7
- data.tar.gz: 3bd2c7e5f1552f64e4194c98844ab35d04efe7699c1734978500a6da005e17b193f7621560b6fb1cd9df9928fc605b70b9b813499a0abe3130554f4ab297ebc0
6
+ metadata.gz: 6118dc54acd81a9dc16d1364fab960dee75c5a5e055fc79bb2517d6eb48e3dbf033078b913b231f430fc9ae953be5f56ab727664bc147b0e90f0f71203ec9f14
7
+ data.tar.gz: fa8e3328ef7e779322e8ad0c7f4a3520f53370838a10e4cf1d0b8710ee0031fc37f4d5d31f080d39d7134c0dfa2a263a131c1323269e988a79978bcf21efd775
data/.fossa.yml ADDED
@@ -0,0 +1,14 @@
1
+ # Generated by FOSSA CLI (https://github.com/fossas/fossa-cli)
2
+ # Visit https://fossa.io to learn more
3
+
4
+ version: 1
5
+ cli:
6
+ server: https://app.fossa.io
7
+ fetcher: custom
8
+ project: mauth-client-ruby
9
+ analyze:
10
+ modules:
11
+ - name: Gemfile
12
+ type: gem
13
+ target: .
14
+ path: .
data/.travis.yml CHANGED
@@ -1,22 +1,36 @@
1
1
  language: ruby
2
2
  cache: bundler
3
- sudo: false
4
3
 
5
4
  rvm:
6
- - 2.2.10
7
- - 2.3.7
8
- - 2.4.4
9
- - 2.5.1
5
+ - 2.3.8
6
+ - 2.4.6
7
+ - 2.5.5
8
+ - 2.6.3
10
9
 
11
- matrix:
12
- include:
13
- - rvm: 2.1.10
14
- gemfile: gemfiles/ruby_2.1.gemfile
15
-
16
- # https://github.com/travis-ci/travis-ci/issues/8978
17
10
  before_install:
18
- - gem update --system
19
- - gem install bundler # https://github.com/travis-ci/travis-ci/issues/9383
20
- - bundle --version
11
+ - gem update --system -N > /dev/null && echo "Rubygems version $(gem --version)"
12
+ - gem install bundler --force -N -v=2.0.1 && bundle --version
13
+
14
+ install:
15
+ - bundle install --jobs=3 --retry=3
16
+ - >-
17
+ curl -H 'Cache-Control: no-cache'
18
+ https://raw.githubusercontent.com/mdsol/fossa_ci_scripts/main/travis_ci/fossa_install.sh |
19
+ bash -s -- -b $TRAVIS_BUILD_DIR
20
+
21
+ script:
22
+ - bundle exec rspec
23
+ - >-
24
+ curl -H 'Cache-Control: no-cache'
25
+ https://raw.githubusercontent.com/mdsol/fossa_ci_scripts/main/travis_ci/fossa_run.sh |
26
+ bash -s -- -b $TRAVIS_BUILD_DIR
21
27
 
22
- script: "bundle exec rspec"
28
+ deploy:
29
+ provider: rubygems
30
+ gem: mauth-client
31
+ api_key:
32
+ secure: QDp0P/lMGLYc4+A3M6VD9y551X6GrGwOSBE6xSG4lE6mPXoSISK5Yj18vNWQRQuQ4BsE6CdfZ/xsPjSRDda6b+yUQbgisjJ+Ry6jUVE1v9UKTZ0VHgHyXcsaJFC29tBKBeuGCj0AD5qhbTO1+ybeZSUfdSeVVoidD4W/bSnvzlT1Lht7IE8jbHbR57LsJKoEaDxKu33dg4CYV96xrlYGxHAS2UgEgi5Ve3ohzBWkX9RWF/wWoGCzIYhJBzXgCEEFw8iWkspjTePgv9yjD2HIMtF44aiSTHM5iqBBsYJ7A8+kUwoq7+srsashHZ1wZz1YulsCSkjwM9AXZ4E0f9AnERw/RQ5gG7bCuHZtSG9g/0SWBQeNfkAF3An6eTSS24KVfnarGdH2bk0G28k2oP26MWiDKz8nlQxNAY4rH+dITael18bgf45H4KccQqiooBEGnuYpUAuIPB+1l+BsIcRQnrU3LDtmtZn0KrCHHJ7EHOdogOG+/Pxof8ht1xF7V+HYhhzSRJs2JkvmZsp4q2T7W6b6kfi59Cz3LpqA1HHYcL5/OFZeLA/TlCNke0CRMxG8k3udDKj50jqFATXEa8lNyGLjmWh7tL9Bb/uy+CU47qUdx+V4K+kheAvNFtHfpxmyUGJSY0FH02H1VBPWm10DZ7kH+6jgCKyXuql+yWDw62s=
33
+ on:
34
+ tags: true
35
+ repo: mdsol/mauth-client-ruby
36
+ condition: "$TRAVIS_RUBY_VERSION == 2.6.3"
data/CHANGELOG.md CHANGED
@@ -1,4 +1,15 @@
1
- # MAuth-Client History
1
+ ## v4.2.1
2
+ * Fix SecurityTokenCacher to not cache tokens forever.
3
+
4
+ ## v4.2.0
5
+ * Drop legacy security token expiry in favor of honoring server cache headers via Faraday HTTP Cache Middleware.
6
+
7
+ ## v4.1.1
8
+ - Use warning level instead of error level for logs about missing mauth header.
9
+
10
+ ## v4.1.0
11
+ - Drop support for Ruby < 2.3.0
12
+ - Update development dependencies
2
13
 
3
14
  ## v4.0.4
4
15
  - Restore original behavior in the proxy of forwarding of headers that begin with HTTP_ (except for HTTP_HOST) but removing the HTTP_.
data/Rakefile CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'bundler/gem_tasks'
2
2
  require 'rspec/core/rake_task'
3
- require 'kender/tasks'
4
3
 
5
4
  RSpec::Core::RakeTask.new(:spec)
6
5
 
@@ -1,8 +1,11 @@
1
- # MAuth-Client implementations
1
+ # MAuth client implementations
2
2
 
3
3
  - .Net: [mauth-client-dotnet](https://github.com/mdsol/mauth-client-dotnet)
4
+ - Clojure: [clojure-mauth-client](https://github.com/mdsol/clojure-mauth-client)
4
5
  - Go: [go-mauth-client](https://github.com/mdsol/go-mauth-client)
5
- - Java: [mauth-java-client](https://github.com/mdsol/mauth-java-client)
6
- - Python: [flask-mauth](https://github.com/mdsol/flask-mauth)
6
+ - Java: [mauth-jvm-clients](https://github.com/mdsol/mauth-jvm-clients)
7
+ - Python:
8
+ - [requests-mauth](https://github.com/mdsol/requests-mauth)
9
+ - [flask-mauth](https://github.com/mdsol/flask-mauth)
7
10
  - R: [RMauthClient](https://github.com/mdsol/RMauthClient)
8
11
  - Ruby: [mauth-client-ruby](https://github.com/mdsol/mauth-client-ruby)
data/examples/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'faraday', '~> 0.9.0'
3
+ gem 'faraday', '~> 0.15'
4
4
  gem 'mauth-client', path: '..'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- mauth-client (3.1.4)
4
+ mauth-client (4.1.0)
5
5
  coderay (~> 1.0)
6
6
  dice_bag (>= 0.9, < 2.0)
7
7
  faraday (~> 0.7)
@@ -12,30 +12,30 @@ PATH
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- coderay (1.1.1)
16
- dice_bag (1.1.1)
15
+ coderay (1.1.2)
16
+ dice_bag (1.3.1)
17
17
  diff-lcs (~> 1.0)
18
18
  rake
19
19
  thor (~> 0.0)
20
- diff-lcs (1.2.5)
21
- faraday (0.9.2)
20
+ diff-lcs (1.3)
21
+ faraday (0.15.3)
22
22
  multipart-post (>= 1.2, < 3)
23
- faraday_middleware (0.10.0)
24
- faraday (>= 0.7.4, < 0.10)
23
+ faraday_middleware (0.12.2)
24
+ faraday (>= 0.7.4, < 1.0)
25
25
  multipart-post (2.0.0)
26
- rack (2.0.1)
27
- rake (11.2.2)
28
- term-ansicolor (1.3.2)
26
+ rack (2.0.6)
27
+ rake (12.3.1)
28
+ term-ansicolor (1.7.0)
29
29
  tins (~> 1.0)
30
- thor (0.19.1)
31
- tins (1.11.0)
30
+ thor (0.20.3)
31
+ tins (1.20.2)
32
32
 
33
33
  PLATFORMS
34
34
  ruby
35
35
 
36
36
  DEPENDENCIES
37
- faraday (~> 0.9.0)
37
+ faraday (~> 0.15)
38
38
  mauth-client!
39
39
 
40
40
  BUNDLED WITH
41
- 1.12.5
41
+ 1.17.1
data/lib/mauth/client.rb CHANGED
@@ -7,6 +7,8 @@ require 'mauth/core_ext'
7
7
  require 'mauth/autoload'
8
8
  require 'mauth/dice_bag/mauth_templates'
9
9
  require 'mauth/version'
10
+ require 'faraday-http-cache'
11
+ require 'mauth/faraday'
10
12
 
11
13
  module MAuth
12
14
  class Client
@@ -116,6 +118,11 @@ module MAuth
116
118
  class InauthenticError < StandardError
117
119
  end
118
120
 
121
+ # Used when the incoming request does not contain any mAuth related information
122
+ class MauthNotPresent < StandardError
123
+ end
124
+
125
+
119
126
  # required information for signing was missing
120
127
  class UnableToSignError < StandardError
121
128
  end
@@ -288,7 +295,7 @@ module MAuth
288
295
  begin
289
296
  authenticate!(object)
290
297
  true
291
- rescue InauthenticError
298
+ rescue InauthenticError, MauthNotPresent
292
299
  false
293
300
  end
294
301
  end
@@ -299,13 +306,14 @@ module MAuth
299
306
  time_valid!(object)
300
307
  token_valid!(object)
301
308
  signature_valid!(object)
302
- rescue InauthenticError
303
- logger.error "mAuth signature authentication failed for #{object.class}. encountered error:"
304
- $!.message.split("\n").each { |l| logger.error "\t#{l}" }
309
+ rescue MauthNotPresent => e
310
+ logger.warn "mAuth signature not present on #{object.class}. Exception: #{e.message}"
311
+ raise
312
+ rescue InauthenticError => e
313
+ logger.error "mAuth signature authentication failed for #{object.class}. Exception: #{e.message}"
305
314
  raise
306
- rescue UnableToAuthenticateError
307
- logger.error "Unable to authenticate with MAuth. encountered error:"
308
- $!.message.split("\n").each { |l| logger.error "\t#{l}" }
315
+ rescue UnableToAuthenticateError => e
316
+ logger.error "Unable to authenticate with MAuth for #{object.class}. Exception: #{e.message}"
309
317
  raise
310
318
  end
311
319
 
@@ -315,27 +323,25 @@ module MAuth
315
323
  def log_authentication_request(object)
316
324
  object_app_uuid = object.signature_app_uuid || '[none provided]'
317
325
  logger.info "Mauth-client attempting to authenticate request from app with mauth app uuid #{object_app_uuid} to app with mauth app uuid #{client_app_uuid}."
318
- rescue # don't let a failed attempt to log disrupt the rest of the action
319
- logger.error "Mauth-client failed to log information about its attempts to authenticate the current request because #{$!}"
320
326
  end
321
327
 
322
328
  def authentication_present!(object)
323
329
  if object.x_mws_authentication.nil? || object.x_mws_authentication !~ /\S/
324
- raise InauthenticError, "Authentication Failed. No mAuth signature present; X-MWS-Authentication header is blank."
330
+ raise MauthNotPresent, "Authentication Failed. No mAuth signature present; X-MWS-Authentication header is blank."
325
331
  end
326
332
  end
327
333
 
328
334
  def time_valid!(object, now = Time.now)
329
335
  if object.x_mws_time.nil?
330
- raise InauthenticError, "Time verification failed for #{object.class}. No x-mws-time present."
336
+ raise InauthenticError, "Time verification failed. No x-mws-time present."
331
337
  elsif !(-ALLOWED_DRIFT_SECONDS..ALLOWED_DRIFT_SECONDS).cover?(now.to_i - object.x_mws_time.to_i)
332
- raise InauthenticError, "Time verification failed for #{object.class}. #{object.x_mws_time} not within #{ALLOWED_DRIFT_SECONDS} of #{now}"
338
+ raise InauthenticError, "Time verification failed. #{object.x_mws_time} not within #{ALLOWED_DRIFT_SECONDS} of #{now}"
333
339
  end
334
340
  end
335
341
 
336
342
  def token_valid!(object)
337
343
  unless object.signature_token == MWS_TOKEN
338
- raise InauthenticError, "Token verification failed for #{object.class}. Expected #{MWS_TOKEN.inspect}; token was #{object.signature_token}"
344
+ raise InauthenticError, "Token verification failed. Expected #{MWS_TOKEN.inspect}; token was #{object.signature_token}"
339
345
  end
340
346
  end
341
347
  end
@@ -401,61 +407,60 @@ module MAuth
401
407
  @security_token_cacher ||= SecurityTokenCacher.new(self)
402
408
  end
403
409
  class SecurityTokenCacher
404
- class ExpirableSecurityToken < Struct.new(:security_token, :create_time)
405
- CACHE_LIFE = 60
406
- def expired?
407
- create_time + CACHE_LIFE < Time.now
408
- end
409
- end
410
+
410
411
  def initialize(mauth_client)
411
412
  @mauth_client = mauth_client
412
413
  # TODO: should this be UnableToSignError?
413
- @mauth_client.assert_private_key(UnableToAuthenticateError.new("Cannot fetch public keys from mAuth service without a private key!"))
414
- @cache = {}
415
- require 'thread'
416
- @cache_write_lock = Mutex.new
414
+ @mauth_client.assert_private_key(
415
+ UnableToAuthenticateError.new("Cannot fetch public keys from mAuth service without a private key!")
416
+ )
417
417
  end
418
418
 
419
419
  def get(app_uuid)
420
- if !@cache[app_uuid] || @cache[app_uuid].expired?
421
- # url-encode the app_uuid to prevent trickery like escaping upward with ../../ in a malicious
422
- # app_uuid - probably not exploitable, but this is the right way to do it anyway.
423
- # use UNRESERVED instead of UNSAFE (the default) as UNSAFE doesn't include /
424
- url_encoded_app_uuid = URI.escape(app_uuid, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
425
- begin
426
- response = signed_mauth_connection.get("/mauth/#{@mauth_client.mauth_api_version}/security_tokens/#{url_encoded_app_uuid}.json")
427
- rescue ::Faraday::Error::ConnectionFailed, ::Faraday::Error::TimeoutError
428
- raise UnableToAuthenticateError, "mAuth service did not respond; received #{$!.class}: #{$!.message}"
429
- end
430
- if response.status == 200
431
- begin
432
- security_token = JSON.parse(response.body)
433
- rescue JSON::ParserError
434
- raise UnableToAuthenticateError, "mAuth service responded with unparseable json: #{response.body}\n#{$!.class}: #{$!.message}"
435
- end
436
- @cache_write_lock.synchronize do
437
- @cache[app_uuid] = ExpirableSecurityToken.new(security_token, Time.now)
438
- end
439
- elsif response.status == 404
440
- # signing with a key mAuth doesn't know about is considered inauthentic
441
- raise InauthenticError, "mAuth service responded with 404 looking up public key for #{app_uuid}"
442
- else
443
- @mauth_client.send(:mauth_service_response_error, response)
444
- end
420
+ # url-encode the app_uuid to prevent trickery like escaping upward with ../../ in a malicious
421
+ # app_uuid - probably not exploitable, but this is the right way to do it anyway.
422
+ # use UNRESERVED instead of UNSAFE (the default) as UNSAFE doesn't include /
423
+ url_encoded_app_uuid = URI.escape(app_uuid, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
424
+ path = "/mauth/#{@mauth_client.mauth_api_version}/security_tokens/#{url_encoded_app_uuid}.json"
425
+ response = signed_mauth_connection.get(path)
426
+
427
+ case response.status
428
+ when 200
429
+ security_token_from(response.body)
430
+ when 404
431
+ # signing with a key mAuth doesn't know about is considered inauthentic
432
+ raise InauthenticError, "mAuth service responded with 404 looking up public key for #{app_uuid}"
433
+ else
434
+ @mauth_client.send(:mauth_service_response_error, response)
445
435
  end
446
- @cache[app_uuid].security_token
436
+ rescue ::Faraday::ConnectionFailed, ::Faraday::TimeoutError => e
437
+ msg = "mAuth service did not respond; received #{e.class}: #{e.message}"
438
+ @mauth_client.logger.error("Unable to authenticate with MAuth. Exception #{msg}")
439
+ raise UnableToAuthenticateError, msg
447
440
  end
448
441
 
449
442
  private
450
443
 
444
+ def security_token_from(response_body)
445
+ JSON.parse response_body
446
+ rescue JSON::ParserError => e
447
+ msg = "mAuth service responded with unparseable json: #{response_body}\n#{e.class}: #{e.message}"
448
+ @mauth_client.logger.error("Unable to authenticate with MAuth. Exception #{msg}")
449
+ raise UnableToAuthenticateError, msg
450
+ end
451
+
451
452
  def signed_mauth_connection
452
- require 'faraday'
453
- require 'mauth/faraday'
454
- @mauth_client.faraday_options[:ssl] = { ca_path: @mauth_client.ssl_certs_path } if @mauth_client.ssl_certs_path
455
- @signed_mauth_connection ||= ::Faraday.new(@mauth_client.mauth_baseurl, @mauth_client.faraday_options) do |builder|
456
- builder.use MAuth::Faraday::MAuthClientUserAgent
457
- builder.use MAuth::Faraday::RequestSigner, 'mauth_client' => @mauth_client
458
- builder.adapter ::Faraday.default_adapter
453
+ @signed_mauth_connection ||= begin
454
+ if @mauth_client.ssl_certs_path
455
+ @mauth_client.faraday_options[:ssl] = { ca_path: @mauth_client.ssl_certs_path }
456
+ end
457
+
458
+ ::Faraday.new(@mauth_client.mauth_baseurl, @mauth_client.faraday_options) do |builder|
459
+ builder.use MAuth::Faraday::MAuthClientUserAgent
460
+ builder.use MAuth::Faraday::RequestSigner, 'mauth_client' => @mauth_client
461
+ builder.use :http_cache, logger: MAuth::Client.new.logger, shared_cache: false
462
+ builder.adapter ::Faraday.default_adapter
463
+ end
459
464
  end
460
465
  end
461
466
  end
data/lib/mauth/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module MAuth
2
- VERSION = '4.0.4'.freeze
2
+ VERSION = '4.2.1'.freeze
3
3
  end
data/mauth-client.gemspec CHANGED
@@ -11,27 +11,26 @@ Gem::Specification.new do |spec|
11
11
  spec.description = 'Client for signing and authentication of requests and responses with mAuth authentication. Includes middleware for Rack and Faraday for incoming and outgoing requests and responses.'
12
12
  spec.homepage = 'https://github.com/mdsol/mauth-client-ruby'
13
13
  spec.license = 'MIT'
14
- spec.required_ruby_version = '>= 2.1.0'
14
+ spec.required_ruby_version = '>= 2.3.0'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
17
  spec.bindir = 'exe'
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'faraday', '~> 0.7'
22
- spec.add_dependency 'faraday_middleware', '~> 0.9'
21
+ spec.add_dependency 'faraday', '>= 0.17', '< 1.0'
22
+ spec.add_dependency 'faraday_middleware', '>= 0.9', '< 2.0'
23
+ spec.add_dependency 'faraday-http-cache', '>= 2.0', '< 3.0'
23
24
  spec.add_dependency 'term-ansicolor', '~> 1.0'
24
25
  spec.add_dependency 'coderay', '~> 1.0'
25
26
  spec.add_dependency 'rack'
26
27
  spec.add_dependency 'dice_bag', '>= 0.9', '< 2.0'
27
28
 
28
- spec.add_development_dependency 'bundler', '~> 1.10'
29
+ spec.add_development_dependency 'bundler', '>= 1.17'
29
30
  spec.add_development_dependency 'byebug'
30
- spec.add_development_dependency 'kender', '~> 0.4'
31
- spec.add_development_dependency 'rack-test', '~> 0.6.3'
32
- spec.add_development_dependency 'rake', '~> 10.0'
33
- spec.add_development_dependency 'rspec', '~> 3.4'
34
- spec.add_development_dependency 'simplecov', '~> 0.12.0'
35
- spec.add_development_dependency 'timecop', '~> 0.8.1'
36
- spec.add_development_dependency 'uuidtools', '~> 2.1.5'
31
+ spec.add_development_dependency 'rack-test', '~> 1.1.0'
32
+ spec.add_development_dependency 'rake', '~> 12.0'
33
+ spec.add_development_dependency 'rspec', '~> 3.8'
34
+ spec.add_development_dependency 'simplecov', '~> 0.16'
35
+ spec.add_development_dependency 'timecop', '~> 0.9'
37
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mauth-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.4
4
+ version: 4.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Szenher
@@ -11,36 +11,68 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2018-09-11 00:00:00.000000000 Z
14
+ date: 2021-09-27 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: faraday
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
- - - "~>"
20
+ - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: '0.7'
22
+ version: '0.17'
23
+ - - "<"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.0'
23
26
  type: :runtime
24
27
  prerelease: false
25
28
  version_requirements: !ruby/object:Gem::Requirement
26
29
  requirements:
27
- - - "~>"
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0.17'
33
+ - - "<"
28
34
  - !ruby/object:Gem::Version
29
- version: '0.7'
35
+ version: '1.0'
30
36
  - !ruby/object:Gem::Dependency
31
37
  name: faraday_middleware
32
38
  requirement: !ruby/object:Gem::Requirement
33
39
  requirements:
34
- - - "~>"
40
+ - - ">="
35
41
  - !ruby/object:Gem::Version
36
42
  version: '0.9'
43
+ - - "<"
44
+ - !ruby/object:Gem::Version
45
+ version: '2.0'
37
46
  type: :runtime
38
47
  prerelease: false
39
48
  version_requirements: !ruby/object:Gem::Requirement
40
49
  requirements:
41
- - - "~>"
50
+ - - ">="
42
51
  - !ruby/object:Gem::Version
43
52
  version: '0.9'
53
+ - - "<"
54
+ - !ruby/object:Gem::Version
55
+ version: '2.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: faraday-http-cache
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '2.0'
63
+ - - "<"
64
+ - !ruby/object:Gem::Version
65
+ version: '3.0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '2.0'
73
+ - - "<"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
44
76
  - !ruby/object:Gem::Dependency
45
77
  name: term-ansicolor
46
78
  requirement: !ruby/object:Gem::Requirement
@@ -107,16 +139,16 @@ dependencies:
107
139
  name: bundler
108
140
  requirement: !ruby/object:Gem::Requirement
109
141
  requirements:
110
- - - "~>"
142
+ - - ">="
111
143
  - !ruby/object:Gem::Version
112
- version: '1.10'
144
+ version: '1.17'
113
145
  type: :development
114
146
  prerelease: false
115
147
  version_requirements: !ruby/object:Gem::Requirement
116
148
  requirements:
117
- - - "~>"
149
+ - - ">="
118
150
  - !ruby/object:Gem::Version
119
- version: '1.10'
151
+ version: '1.17'
120
152
  - !ruby/object:Gem::Dependency
121
153
  name: byebug
122
154
  requirement: !ruby/object:Gem::Requirement
@@ -131,104 +163,76 @@ dependencies:
131
163
  - - ">="
132
164
  - !ruby/object:Gem::Version
133
165
  version: '0'
134
- - !ruby/object:Gem::Dependency
135
- name: kender
136
- requirement: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - "~>"
139
- - !ruby/object:Gem::Version
140
- version: '0.4'
141
- type: :development
142
- prerelease: false
143
- version_requirements: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - "~>"
146
- - !ruby/object:Gem::Version
147
- version: '0.4'
148
166
  - !ruby/object:Gem::Dependency
149
167
  name: rack-test
150
168
  requirement: !ruby/object:Gem::Requirement
151
169
  requirements:
152
170
  - - "~>"
153
171
  - !ruby/object:Gem::Version
154
- version: 0.6.3
172
+ version: 1.1.0
155
173
  type: :development
156
174
  prerelease: false
157
175
  version_requirements: !ruby/object:Gem::Requirement
158
176
  requirements:
159
177
  - - "~>"
160
178
  - !ruby/object:Gem::Version
161
- version: 0.6.3
179
+ version: 1.1.0
162
180
  - !ruby/object:Gem::Dependency
163
181
  name: rake
164
182
  requirement: !ruby/object:Gem::Requirement
165
183
  requirements:
166
184
  - - "~>"
167
185
  - !ruby/object:Gem::Version
168
- version: '10.0'
186
+ version: '12.0'
169
187
  type: :development
170
188
  prerelease: false
171
189
  version_requirements: !ruby/object:Gem::Requirement
172
190
  requirements:
173
191
  - - "~>"
174
192
  - !ruby/object:Gem::Version
175
- version: '10.0'
193
+ version: '12.0'
176
194
  - !ruby/object:Gem::Dependency
177
195
  name: rspec
178
196
  requirement: !ruby/object:Gem::Requirement
179
197
  requirements:
180
198
  - - "~>"
181
199
  - !ruby/object:Gem::Version
182
- version: '3.4'
200
+ version: '3.8'
183
201
  type: :development
184
202
  prerelease: false
185
203
  version_requirements: !ruby/object:Gem::Requirement
186
204
  requirements:
187
205
  - - "~>"
188
206
  - !ruby/object:Gem::Version
189
- version: '3.4'
207
+ version: '3.8'
190
208
  - !ruby/object:Gem::Dependency
191
209
  name: simplecov
192
210
  requirement: !ruby/object:Gem::Requirement
193
211
  requirements:
194
212
  - - "~>"
195
213
  - !ruby/object:Gem::Version
196
- version: 0.12.0
214
+ version: '0.16'
197
215
  type: :development
198
216
  prerelease: false
199
217
  version_requirements: !ruby/object:Gem::Requirement
200
218
  requirements:
201
219
  - - "~>"
202
220
  - !ruby/object:Gem::Version
203
- version: 0.12.0
221
+ version: '0.16'
204
222
  - !ruby/object:Gem::Dependency
205
223
  name: timecop
206
224
  requirement: !ruby/object:Gem::Requirement
207
225
  requirements:
208
226
  - - "~>"
209
227
  - !ruby/object:Gem::Version
210
- version: 0.8.1
211
- type: :development
212
- prerelease: false
213
- version_requirements: !ruby/object:Gem::Requirement
214
- requirements:
215
- - - "~>"
216
- - !ruby/object:Gem::Version
217
- version: 0.8.1
218
- - !ruby/object:Gem::Dependency
219
- name: uuidtools
220
- requirement: !ruby/object:Gem::Requirement
221
- requirements:
222
- - - "~>"
223
- - !ruby/object:Gem::Version
224
- version: 2.1.5
228
+ version: '0.9'
225
229
  type: :development
226
230
  prerelease: false
227
231
  version_requirements: !ruby/object:Gem::Requirement
228
232
  requirements:
229
233
  - - "~>"
230
234
  - !ruby/object:Gem::Version
231
- version: 2.1.5
235
+ version: '0.9'
232
236
  description: Client for signing and authentication of requests and responses with
233
237
  mAuth authentication. Includes middleware for Rack and Faraday for incoming and
234
238
  outgoing requests and responses.
@@ -240,6 +244,7 @@ executables:
240
244
  extensions: []
241
245
  extra_rdoc_files: []
242
246
  files:
247
+ - ".fossa.yml"
243
248
  - ".gitignore"
244
249
  - ".travis.yml"
245
250
  - ".yardopts"
@@ -261,7 +266,6 @@ files:
261
266
  - examples/mauth_key
262
267
  - exe/mauth-client
263
268
  - exe/mauth-proxy
264
- - gemfiles/ruby_2.1.gemfile
265
269
  - lib/mauth-client.rb
266
270
  - lib/mauth/autoload.rb
267
271
  - lib/mauth/client.rb
@@ -291,15 +295,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
291
295
  requirements:
292
296
  - - ">="
293
297
  - !ruby/object:Gem::Version
294
- version: 2.1.0
298
+ version: 2.3.0
295
299
  required_rubygems_version: !ruby/object:Gem::Requirement
296
300
  requirements:
297
301
  - - ">="
298
302
  - !ruby/object:Gem::Version
299
303
  version: '0'
300
304
  requirements: []
301
- rubyforge_project:
302
- rubygems_version: 2.6.14
305
+ rubygems_version: 3.0.8
303
306
  signing_key:
304
307
  specification_version: 4
305
308
  summary: Sign and authenticate requests and responses with mAuth authentication.
@@ -1,5 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "rack", "1.6.5"
4
-
5
- gemspec :path => "../"