mauth-client 4.0.4 → 4.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.fossa.yml +14 -0
- data/.travis.yml +29 -15
- data/CHANGELOG.md +12 -1
- data/Rakefile +0 -1
- data/doc/implementations.md +6 -3
- data/examples/Gemfile +1 -1
- data/examples/Gemfile.lock +14 -14
- data/lib/mauth/client.rb +61 -56
- data/lib/mauth/version.rb +1 -1
- data/mauth-client.gemspec +10 -11
- metadata +57 -54
- data/gemfiles/ruby_2.1.gemfile +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9a4124d677e7aee9626ea7e796bd5f92c695146cdadc125c2f05f3138d471758
|
4
|
+
data.tar.gz: 4eda569778ce91ced2cedfd14a231281e35ec068b86d2e551d52541d05b3f795
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
7
|
-
- 2.
|
8
|
-
- 2.
|
9
|
-
- 2.
|
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
|
20
|
-
|
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
|
-
|
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
|
-
|
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
data/doc/implementations.md
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
-
# MAuth
|
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-
|
6
|
-
- Python:
|
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
data/examples/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
mauth-client (
|
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.
|
16
|
-
dice_bag (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.
|
21
|
-
faraday (0.
|
20
|
+
diff-lcs (1.3)
|
21
|
+
faraday (0.15.3)
|
22
22
|
multipart-post (>= 1.2, < 3)
|
23
|
-
faraday_middleware (0.
|
24
|
-
faraday (>= 0.7.4, < 0
|
23
|
+
faraday_middleware (0.12.2)
|
24
|
+
faraday (>= 0.7.4, < 1.0)
|
25
25
|
multipart-post (2.0.0)
|
26
|
-
rack (2.0.
|
27
|
-
rake (
|
28
|
-
term-ansicolor (1.
|
26
|
+
rack (2.0.6)
|
27
|
+
rake (12.3.1)
|
28
|
+
term-ansicolor (1.7.0)
|
29
29
|
tins (~> 1.0)
|
30
|
-
thor (0.
|
31
|
-
tins (1.
|
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.
|
37
|
+
faraday (~> 0.15)
|
38
38
|
mauth-client!
|
39
39
|
|
40
40
|
BUNDLED WITH
|
41
|
-
1.
|
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
|
303
|
-
logger.
|
304
|
-
|
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.
|
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
|
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
|
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
|
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
|
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
|
-
|
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(
|
414
|
-
|
415
|
-
|
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
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
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
|
-
|
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
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
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
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.
|
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', '
|
22
|
-
spec.add_dependency 'faraday_middleware', '
|
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', '
|
29
|
+
spec.add_development_dependency 'bundler', '>= 1.17'
|
29
30
|
spec.add_development_dependency 'byebug'
|
30
|
-
spec.add_development_dependency '
|
31
|
-
spec.add_development_dependency '
|
32
|
-
spec.add_development_dependency '
|
33
|
-
spec.add_development_dependency '
|
34
|
-
spec.add_development_dependency '
|
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.
|
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:
|
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.
|
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
|
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.
|
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.
|
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:
|
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:
|
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: '
|
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: '
|
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.
|
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.
|
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.
|
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.
|
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.
|
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:
|
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.
|
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
|
-
|
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.
|