mauth-client 4.0.2 → 4.2.0

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: a21d16b8275a278bf76abd03b2a36c59789ef493
4
- data.tar.gz: a2a371bfe255763a721f2cc3566865d86264e17d
2
+ SHA256:
3
+ metadata.gz: 2e197a763a48eeb58d88be12eab10dc6e2c7c104287b0371a41120bd920402db
4
+ data.tar.gz: 84ef6da779ededf897bfe7a44eb2581073c2404a1208ae3a233b2d84c1bc98eb
5
5
  SHA512:
6
- metadata.gz: 3a9f889083c41d625ce4783f903b4edb94aefa7ea294aed7b6d1f3b9b6b2cf8d9d65121c3976c0bcb3903b9537bc5f615a09891177151a0734da5f333183a0f2
7
- data.tar.gz: 4be1f2f77de4305c4b3bdb3dddf64655233b5a9a1779e03fa1b245666c464001acad2b1a4c800edbd5a6d9e3ecc30b03a0e2892729db4e6573b9d782e687bd08
6
+ metadata.gz: f640994364eee25edcbbf611a611eb539efc96432de37daf78c0211f83e966154c5dcfb321fff6e25e067fdb53faae6af792665897a7ae4d295beada833282d2
7
+ data.tar.gz: 6270a48e063208842a1055d39814b96fe2cb4b8ceea04592eb94c62b533f110fe5510ca9060f321d5f4a309b96aaf9c99489ff28e068e5ddd6c04e20c1ae9bab
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/.gitignore CHANGED
@@ -1,6 +1,7 @@
1
1
  .bundle
2
2
  .yardoc
3
3
 
4
+ /config
4
5
  /coverage
5
6
  /yardoc
6
7
  /log
data/.travis.yml CHANGED
@@ -1,17 +1,32 @@
1
1
  language: ruby
2
2
  cache: bundler
3
- sudo: false
4
3
 
5
4
  rvm:
6
- - 2.2.5
7
- - 2.3.1
5
+ - 2.3.8
6
+ - 2.4.6
7
+ - 2.5.5
8
+ - 2.6.3
8
9
 
9
- env:
10
- - MAUTH_CONFIG_YML=`pwd`/spec/config_root/config/mauth.yml
10
+ before_install:
11
+ - gem update --system -N > /dev/null && echo "Rubygems version $(gem --version)"
12
+ - gem install bundler --force -N -v=2.0.1 && bundle --version
11
13
 
12
- matrix:
13
- include:
14
- - rvm: 2.1.10
15
- gemfile: gemfiles/ruby_2.1.gemfile
14
+ install:
15
+ - bundle install --jobs=3 --retry=3
16
+ - |-
17
+ curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/mdsol/fossa_ci_scripts/master/travis_ci/fossa_install.sh | bash -s -- -b $TRAVIS_BUILD_DIR
16
18
 
17
- script: "bundle exec rspec"
19
+ script:
20
+ - bundle exec rspec
21
+ - |-
22
+ curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/mdsol/fossa_ci_scripts/master/travis_ci/fossa_run.sh | bash -s -- -b $TRAVIS_BUILD_DIR
23
+
24
+ deploy:
25
+ provider: rubygems
26
+ gem: mauth-client
27
+ api_key:
28
+ secure: J0aPDp4+Ev2L+ZDcgpF+hAG95S4IsD6pCiDRxDWnrk79P5hq1rXoD3S39ANyqtQEQqkoVjsgoSP5JLi420aL2lYj7mhvaEOty9fK+flwUhI4nw+Gztm7EKNDNX8WKvk4fl4Zc7noIeI0uyes867hDjRQfyYvUuma7aK5H9NWzNUV9Q+KrVAoneVDGnNydxwkuuIpOFdjbVQgNpxVhVBV7Q4OLsB1KtWB9lptMwhqnyqZKex7JZ+37sojaj3oVT5ijrnAm+bR1QO1hGIOwuBako2iz+MBZHPccM4BEFsZme/7olypxv0JfeCuhqDnH1VWIFh6IZRDeLnZuX3qOhkdx4HLwxB//5O5+iapK0wh1zbnLvXqkE1dalUHyaZzStKH9xchIWl5I77Ica232OJYrpj9hhroae0p3VARF0IoZceKaH8NnMpq+nBAW4REcWrqPpe9xkRLDTNibkpaAy08vGOF2kPZkWw4lfkVBM1+wjY2xDn6wJ7VgQ1BeosbeTXbmny2TUeI22beihn894tzpCPPHiTRvKu0lV3jBfeoOAXzE333PrGm3zF9MDhg+1/iBwXVhdoOwEwBPQ/3Hu37xJn0AfRneni4StYnIkZ1Ur9Vub03J/3C3Aw6it99rQSWvC+2PzHqQhsG22VprvxlozFe1jFzdqKgvDkbkn44ltI=
29
+ on:
30
+ tags: true
31
+ repo: mdsol/mauth-client-ruby
32
+ condition: "$TRAVIS_RUBY_VERSION == 2.6.3"
data/CHANGELOG.md CHANGED
@@ -1,4 +1,18 @@
1
- # MAuth-Client History
1
+ ## v4.2.0
2
+ * Drop legacy security token expiry in favor of honoring server cache headers via Faraday HTTP Cache Middleware.
3
+
4
+ ## v4.1.1
5
+ - Use warning level instead of error level for logs about missing mauth header.
6
+
7
+ ## v4.1.0
8
+ - Drop support for Ruby < 2.3.0
9
+ - Update development dependencies
10
+
11
+ ## v4.0.4
12
+ - Restore original behavior in the proxy of forwarding of headers that begin with HTTP_ (except for HTTP_HOST) but removing the HTTP_.
13
+
14
+ ## v4.0.3
15
+ - Updated signature to decode number sign (#) in requests
2
16
 
3
17
  ## v4.0.2
4
18
  - Store the config data to not load the config file multiple times
data/CONTRIBUTING.md CHANGED
@@ -13,8 +13,8 @@
13
13
 
14
14
  To run tests, first run `bundle install`.
15
15
 
16
- Next, run the tests with an appropriate mauth config file, typically this is done by passing the provided one using an environment variable:
16
+ Next, run the tests:
17
17
 
18
18
  ```
19
- MAUTH_CONFIG_YML=`pwd`/spec/config_root/config/mauth.yml bundle exec rspec
19
+ bundle exec rspec
20
20
  ```
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # MAuth Client
2
- [![Build Status](https://travis-ci.org/mdsol/mauth-client-ruby.svg)](https://travis-ci.org/mdsol/mauth-client-ruby)
2
+ [![Build Status](https://travis-ci.org/mdsol/mauth-client-ruby.svg?branch=master)](https://travis-ci.org/mdsol/mauth-client-ruby)
3
3
 
4
4
  This gem consists of MAuth::Client, a class to manage the information needed to both sign and authenticate requests
5
5
  and responses, and middlewares for Rack and Faraday which leverage the client's capabilities.
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,6 +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
- - Go (golang): [go-mauth-client](https://github.com/mdsol/go-mauth-client)
4
+ - Clojure: [clojure-mauth-client](https://github.com/mdsol/clojure-mauth-client)
5
+ - Go: [go-mauth-client](https://github.com/mdsol/go-mauth-client)
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)
5
10
  - R: [RMauthClient](https://github.com/mdsol/RMauthClient)
6
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 'oj'
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
@@ -364,8 +370,7 @@ module MAuth
364
370
  expected_for_percent_reencoding = object.string_to_sign(time: object.x_mws_time, app_uuid: object.signature_app_uuid)
365
371
 
366
372
  # do a moderately complex Euresource-style reencoding of the path
367
- object.attributes_for_signing[:request_url] = CGI.escape(original_request_uri.to_s)
368
- object.attributes_for_signing[:request_url].gsub!('%2F', '/') # ...and then 'simply' decode the %2F's back into /'s, just like Euresource kind of does!
373
+ object.attributes_for_signing[:request_url] = euresource_escape(original_request_uri.to_s)
369
374
  expected_euresource_style_reencoding = object.string_to_sign(time: object.x_mws_time, app_uuid: object.signature_app_uuid)
370
375
 
371
376
  # reset the object original request_uri, just in case we need it again
@@ -383,6 +388,13 @@ module MAuth
383
388
  end
384
389
  end
385
390
 
391
+ # Note: RFC 3986 (https://www.ietf.org/rfc/rfc3986.txt) reserves the forward slash "/"
392
+ # and number sign "#" as component delimiters. Since these are valid URI components,
393
+ # they are decoded back into characters here to avoid signature invalidation
394
+ def euresource_escape(str)
395
+ CGI.escape(str).gsub(/%2F|%23/, "%2F" => "/", "%23" => "#")
396
+ end
397
+
386
398
  def retrieve_public_key(app_uuid)
387
399
  retrieve_security_token(app_uuid)['security_token']['public_key_str']
388
400
  end
@@ -395,12 +407,7 @@ module MAuth
395
407
  @security_token_cacher ||= SecurityTokenCacher.new(self)
396
408
  end
397
409
  class SecurityTokenCacher
398
- class ExpirableSecurityToken < Struct.new(:security_token, :create_time)
399
- CACHE_LIFE = 60
400
- def expired?
401
- create_time + CACHE_LIFE < Time.now
402
- end
403
- end
410
+
404
411
  def initialize(mauth_client)
405
412
  @mauth_client = mauth_client
406
413
  # TODO: should this be UnableToSignError?
@@ -411,7 +418,7 @@ module MAuth
411
418
  end
412
419
 
413
420
  def get(app_uuid)
414
- if !@cache[app_uuid] || @cache[app_uuid].expired?
421
+ if !@cache[app_uuid]
415
422
  # url-encode the app_uuid to prevent trickery like escaping upward with ../../ in a malicious
416
423
  # app_uuid - probably not exploitable, but this is the right way to do it anyway.
417
424
  # use UNRESERVED instead of UNSAFE (the default) as UNSAFE doesn't include /
@@ -422,13 +429,8 @@ module MAuth
422
429
  raise UnableToAuthenticateError, "mAuth service did not respond; received #{$!.class}: #{$!.message}"
423
430
  end
424
431
  if response.status == 200
425
- begin
426
- security_token = JSON.parse(response.body)
427
- rescue JSON::ParserError
428
- raise UnableToAuthenticateError, "mAuth service responded with unparseable json: #{response.body}\n#{$!.class}: #{$!.message}"
429
- end
430
432
  @cache_write_lock.synchronize do
431
- @cache[app_uuid] = ExpirableSecurityToken.new(security_token, Time.now)
433
+ @cache[app_uuid] = security_token_from(response.body)
432
434
  end
433
435
  elsif response.status == 404
434
436
  # signing with a key mAuth doesn't know about is considered inauthentic
@@ -437,11 +439,19 @@ module MAuth
437
439
  @mauth_client.send(:mauth_service_response_error, response)
438
440
  end
439
441
  end
440
- @cache[app_uuid].security_token
442
+ @cache[app_uuid]
441
443
  end
442
444
 
443
445
  private
444
446
 
447
+ def security_token_from(response_body)
448
+ JSON.parse response_body
449
+ rescue JSON::ParserError => e
450
+ msg = "mAuth service responded with unparseable json: #{response_body}\n#{e.class}: #{e.message}"
451
+ @mauth_client.logger.error("Unable to authenticate with MAuth. Exception #{msg}")
452
+ raise UnableToAuthenticateError, msg
453
+ end
454
+
445
455
  def signed_mauth_connection
446
456
  require 'faraday'
447
457
  require 'mauth/faraday'
@@ -449,6 +459,7 @@ module MAuth
449
459
  @signed_mauth_connection ||= ::Faraday.new(@mauth_client.mauth_baseurl, @mauth_client.faraday_options) do |builder|
450
460
  builder.use MAuth::Faraday::MAuthClientUserAgent
451
461
  builder.use MAuth::Faraday::RequestSigner, 'mauth_client' => @mauth_client
462
+ builder.use :http_cache, serializer: Oj, logger: MAuth::Client.new.logger, shared_cache: false
452
463
  builder.adapter ::Faraday.default_adapter
453
464
  end
454
465
  end
data/lib/mauth/proxy.rb CHANGED
@@ -55,8 +55,8 @@ module MAuth
55
55
  request_env['rack.input'].rewind
56
56
  request_headers = {}
57
57
  request_env.each do |k, v|
58
- if k.start_with?('HTTP_') && !%w(HTTP_HOST).include?(k)
59
- name = $'
58
+ if k.start_with?('HTTP_') && k != 'HTTP_HOST'
59
+ name = k.sub(/\AHTTP_/, '')
60
60
  request_headers[name] = v
61
61
  end
62
62
  end
data/lib/mauth/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module MAuth
2
- VERSION = '4.0.2'.freeze
2
+ VERSION = '4.2.0'.freeze
3
3
  end
data/mauth-client.gemspec CHANGED
@@ -11,26 +11,27 @@ 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'
24
+ spec.add_dependency 'oj', '~> 3.0'
23
25
  spec.add_dependency 'term-ansicolor', '~> 1.0'
24
26
  spec.add_dependency 'coderay', '~> 1.0'
25
27
  spec.add_dependency 'rack'
26
28
  spec.add_dependency 'dice_bag', '>= 0.9', '< 2.0'
27
29
 
28
- spec.add_development_dependency 'bundler', '~> 1.10'
29
- spec.add_development_dependency 'kender', '~> 0.4'
30
- spec.add_development_dependency 'rack-test', '~> 0.6.3'
31
- spec.add_development_dependency 'rake', '~> 10.0'
32
- spec.add_development_dependency 'rspec', '~> 3.4'
33
- spec.add_development_dependency 'simplecov', '~> 0.12.0'
34
- spec.add_development_dependency 'timecop', '~> 0.8.1'
35
- spec.add_development_dependency 'uuidtools', '~> 2.1.5'
30
+ spec.add_development_dependency 'bundler', '>= 1.17'
31
+ spec.add_development_dependency 'byebug'
32
+ spec.add_development_dependency 'rack-test', '~> 1.1.0'
33
+ spec.add_development_dependency 'rake', '~> 12.0'
34
+ spec.add_development_dependency 'rspec', '~> 3.8'
35
+ spec.add_development_dependency 'simplecov', '~> 0.16'
36
+ spec.add_development_dependency 'timecop', '~> 0.9'
36
37
  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.2
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Szenher
@@ -11,36 +11,82 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2017-01-11 00:00:00.000000000 Z
14
+ date: 2021-06-16 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'
76
+ - !ruby/object:Gem::Dependency
77
+ name: oj
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.0'
44
90
  - !ruby/object:Gem::Dependency
45
91
  name: term-ansicolor
46
92
  requirement: !ruby/object:Gem::Requirement
@@ -107,114 +153,100 @@ dependencies:
107
153
  name: bundler
108
154
  requirement: !ruby/object:Gem::Requirement
109
155
  requirements:
110
- - - "~>"
156
+ - - ">="
111
157
  - !ruby/object:Gem::Version
112
- version: '1.10'
158
+ version: '1.17'
113
159
  type: :development
114
160
  prerelease: false
115
161
  version_requirements: !ruby/object:Gem::Requirement
116
162
  requirements:
117
- - - "~>"
163
+ - - ">="
118
164
  - !ruby/object:Gem::Version
119
- version: '1.10'
165
+ version: '1.17'
120
166
  - !ruby/object:Gem::Dependency
121
- name: kender
167
+ name: byebug
122
168
  requirement: !ruby/object:Gem::Requirement
123
169
  requirements:
124
- - - "~>"
170
+ - - ">="
125
171
  - !ruby/object:Gem::Version
126
- version: '0.4'
172
+ version: '0'
127
173
  type: :development
128
174
  prerelease: false
129
175
  version_requirements: !ruby/object:Gem::Requirement
130
176
  requirements:
131
- - - "~>"
177
+ - - ">="
132
178
  - !ruby/object:Gem::Version
133
- version: '0.4'
179
+ version: '0'
134
180
  - !ruby/object:Gem::Dependency
135
181
  name: rack-test
136
182
  requirement: !ruby/object:Gem::Requirement
137
183
  requirements:
138
184
  - - "~>"
139
185
  - !ruby/object:Gem::Version
140
- version: 0.6.3
186
+ version: 1.1.0
141
187
  type: :development
142
188
  prerelease: false
143
189
  version_requirements: !ruby/object:Gem::Requirement
144
190
  requirements:
145
191
  - - "~>"
146
192
  - !ruby/object:Gem::Version
147
- version: 0.6.3
193
+ version: 1.1.0
148
194
  - !ruby/object:Gem::Dependency
149
195
  name: rake
150
196
  requirement: !ruby/object:Gem::Requirement
151
197
  requirements:
152
198
  - - "~>"
153
199
  - !ruby/object:Gem::Version
154
- version: '10.0'
200
+ version: '12.0'
155
201
  type: :development
156
202
  prerelease: false
157
203
  version_requirements: !ruby/object:Gem::Requirement
158
204
  requirements:
159
205
  - - "~>"
160
206
  - !ruby/object:Gem::Version
161
- version: '10.0'
207
+ version: '12.0'
162
208
  - !ruby/object:Gem::Dependency
163
209
  name: rspec
164
210
  requirement: !ruby/object:Gem::Requirement
165
211
  requirements:
166
212
  - - "~>"
167
213
  - !ruby/object:Gem::Version
168
- version: '3.4'
214
+ version: '3.8'
169
215
  type: :development
170
216
  prerelease: false
171
217
  version_requirements: !ruby/object:Gem::Requirement
172
218
  requirements:
173
219
  - - "~>"
174
220
  - !ruby/object:Gem::Version
175
- version: '3.4'
221
+ version: '3.8'
176
222
  - !ruby/object:Gem::Dependency
177
223
  name: simplecov
178
224
  requirement: !ruby/object:Gem::Requirement
179
225
  requirements:
180
226
  - - "~>"
181
227
  - !ruby/object:Gem::Version
182
- version: 0.12.0
228
+ version: '0.16'
183
229
  type: :development
184
230
  prerelease: false
185
231
  version_requirements: !ruby/object:Gem::Requirement
186
232
  requirements:
187
233
  - - "~>"
188
234
  - !ruby/object:Gem::Version
189
- version: 0.12.0
235
+ version: '0.16'
190
236
  - !ruby/object:Gem::Dependency
191
237
  name: timecop
192
238
  requirement: !ruby/object:Gem::Requirement
193
239
  requirements:
194
240
  - - "~>"
195
241
  - !ruby/object:Gem::Version
196
- version: 0.8.1
197
- type: :development
198
- prerelease: false
199
- version_requirements: !ruby/object:Gem::Requirement
200
- requirements:
201
- - - "~>"
202
- - !ruby/object:Gem::Version
203
- version: 0.8.1
204
- - !ruby/object:Gem::Dependency
205
- name: uuidtools
206
- requirement: !ruby/object:Gem::Requirement
207
- requirements:
208
- - - "~>"
209
- - !ruby/object:Gem::Version
210
- version: 2.1.5
242
+ version: '0.9'
211
243
  type: :development
212
244
  prerelease: false
213
245
  version_requirements: !ruby/object:Gem::Requirement
214
246
  requirements:
215
247
  - - "~>"
216
248
  - !ruby/object:Gem::Version
217
- version: 2.1.5
249
+ version: '0.9'
218
250
  description: Client for signing and authentication of requests and responses with
219
251
  mAuth authentication. Includes middleware for Rack and Faraday for incoming and
220
252
  outgoing requests and responses.
@@ -226,6 +258,7 @@ executables:
226
258
  extensions: []
227
259
  extra_rdoc_files: []
228
260
  files:
261
+ - ".fossa.yml"
229
262
  - ".gitignore"
230
263
  - ".travis.yml"
231
264
  - ".yardopts"
@@ -247,7 +280,6 @@ files:
247
280
  - examples/mauth_key
248
281
  - exe/mauth-client
249
282
  - exe/mauth-proxy
250
- - gemfiles/ruby_2.1.gemfile
251
283
  - lib/mauth-client.rb
252
284
  - lib/mauth/autoload.rb
253
285
  - lib/mauth/client.rb
@@ -277,15 +309,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
277
309
  requirements:
278
310
  - - ">="
279
311
  - !ruby/object:Gem::Version
280
- version: 2.1.0
312
+ version: 2.3.0
281
313
  required_rubygems_version: !ruby/object:Gem::Requirement
282
314
  requirements:
283
315
  - - ">="
284
316
  - !ruby/object:Gem::Version
285
317
  version: '0'
286
318
  requirements: []
287
- rubyforge_project:
288
- rubygems_version: 2.6.8
319
+ rubygems_version: 3.0.8
289
320
  signing_key:
290
321
  specification_version: 4
291
322
  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 => "../"