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 +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.
|