mauth-client 7.0.0 → 7.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -10
- data/Appraisals +1 -5
- data/CHANGELOG.md +7 -0
- data/README.md +6 -18
- data/gemfiles/faraday_1.x.gemfile +1 -1
- data/lib/mauth/client/security_token_cacher.rb +19 -12
- data/lib/mauth/client.rb +9 -3
- data/lib/mauth/config_env.rb +5 -8
- data/lib/mauth/private_key_helper.rb +30 -0
- data/lib/mauth/version.rb +1 -1
- data/mauth-client.gemspec +4 -1
- metadata +47 -6
- data/.fossa.yml +0 -14
- data/gemfiles/faraday_0.x.gemfile +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13c58b1677a77952cf139df370154dbbe079aeb4aa3be211520796edf3ff5a02
|
4
|
+
data.tar.gz: cf39996376710d65d3e6fdecda46248788641028783d98b42f02e747a1ac1e74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: daee87957cb651a32d8a7f5b07004a90c7ac3f690fa5d59069f5b8a73ca22d5afcdb014ea8113b96661da59790e0fa190f16ef01264336c951ccdab20980f2d8
|
7
|
+
data.tar.gz: '0774058a011e491316dc0e264fd56c301028fc9f5e450499021d6a1e5736e476b49104c44b0a05d785f1b855feb88fa528b1d5fb4c03398676dc54b16da7e728'
|
data/.travis.yml
CHANGED
@@ -12,17 +12,7 @@ env:
|
|
12
12
|
global:
|
13
13
|
- BUNDLE_JOBS=4
|
14
14
|
|
15
|
-
jobs:
|
16
|
-
exclude:
|
17
|
-
- rvm: 3.0
|
18
|
-
gemfile: gemfiles/faraday_0.x.gemfile # Faraday v0.x does not officially support Ruby 3 (see: https://github.com/lostisland/faraday/releases/tag/v1.3.0)
|
19
|
-
- rvm: 3.1
|
20
|
-
gemfile: gemfiles/faraday_0.x.gemfile # Faraday v0.x does not officially support Ruby 3 (see: https://github.com/lostisland/faraday/releases/tag/v1.3.0)
|
21
|
-
- rvm: 3.2
|
22
|
-
gemfile: gemfiles/faraday_0.x.gemfile # Faraday v0.x does not officially support Ruby 3 (see: https://github.com/lostisland/faraday/releases/tag/v1.3.0)
|
23
|
-
|
24
15
|
gemfile:
|
25
|
-
- gemfiles/faraday_0.x.gemfile
|
26
16
|
- gemfiles/faraday_1.x.gemfile
|
27
17
|
- gemfiles/faraday_2.x.gemfile
|
28
18
|
|
data/Appraisals
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## v7.1.0
|
2
|
+
- Add MAuth::PrivateKeyHelper.load method to process RSA private keys.
|
3
|
+
- Update Faraday configuration in SecurityTokenCacher:
|
4
|
+
- Add the `MAUTH_USE_RAILS_CACHE` environment variable to make `Rails.cache` usable to cache public keys.
|
5
|
+
- Shorten timeout for connection, add retries, and use persistent HTTP connections.
|
6
|
+
- Drop support for Faraday < 1.9.
|
7
|
+
|
1
8
|
## v7.0.0
|
2
9
|
- Remove dice_bag and set configuration through environment variables directly.
|
3
10
|
- Rename the `V2_ONLY_SIGN_REQUESTS`, `V2_ONLY_AUTHENTICATE`, `DISABLE_FALLBACK_TO_V1_ON_V2_FAILURE` and `V1_ONLY_SIGN_REQUESTS` environment variables.
|
data/README.md
CHANGED
@@ -30,7 +30,7 @@ $ gem install mauth-client
|
|
30
30
|
Configuration is set through environment variables:
|
31
31
|
|
32
32
|
- `MAUTH_PRIVATE_KEY`
|
33
|
-
- Required for signing and for
|
33
|
+
- Required for signing and for authentication.
|
34
34
|
|
35
35
|
- `MAUTH_PRIVATE_KEY_FILE`
|
36
36
|
- May be used instead of `MAUTH_PRIVATE_KEY`, mauth-client will load the file instead.
|
@@ -56,6 +56,8 @@ Configuration is set through environment variables:
|
|
56
56
|
- `MAUTH_V1_ONLY_SIGN_REQUESTS`
|
57
57
|
- If true, all outgoing requests will be signed with only the V1 protocol. Defaults to true. Note, cannot be `true` if `MAUTH_V2_ONLY_SIGN_REQUESTS` is also `true`.
|
58
58
|
|
59
|
+
- `MAUTH_USE_RAILS_CACHE`
|
60
|
+
- If true, `Rails.cache` is used to cache public keys for authentication.
|
59
61
|
|
60
62
|
This is simply loaded and passed to either middleware or directly to a MAuth::Client instance.
|
61
63
|
See the documentation for [MAuth::Client#initialize](lib/mauth/client.rb) for more details of what it accepts. Usually you will want:
|
@@ -67,10 +69,10 @@ MAUTH_CONF = MAuth::Client.default_config
|
|
67
69
|
The `.default_config` method takes a number of options to tweak its expectations regarding defaults. See the
|
68
70
|
documentation for [MAuth::Client.default_config](lib/mauth/client.rb) for details.
|
69
71
|
|
70
|
-
The `private_key` and `app_uuid`
|
72
|
+
The `private_key` and `app_uuid` are required for signing and for authentication.
|
71
73
|
They’ll only work if the `app_uuid` has been stored in MAuth with a public key corresponding to the `private_key`.
|
72
74
|
|
73
|
-
The `mauth_baseurl` and `mauth_api_version` are required.
|
75
|
+
The `mauth_baseurl` and `mauth_api_version` are required for authentication.
|
74
76
|
These tell the MAuth-Client where and how to communicate with the MAuth service.
|
75
77
|
|
76
78
|
The `v2_only_sign_requests` and `v2_only_authenticate` flags were added to facilitate conversion from the MAuth V1 protocol to the MAuth
|
@@ -248,9 +250,7 @@ Only use the `MAuth::Faraday::ResponseAuthenticator` middleware if you are expec
|
|
248
250
|
`MAUTH_CONF` is the same as in Rack middleware, and as with the Rack middleware is used to initialize a `MAuth::Client` instance.
|
249
251
|
Also as with the Rack middleware, you can pass in a `MAuth::Client` instance you are using yourself on the `:mauth_client` key, and omit any other configuration.
|
250
252
|
|
251
|
-
|
252
|
-
mauth service to authenticate.
|
253
|
-
`MAuth::Faraday::RequestSigner` cannot be used without a `private_key` and `app_uuid`.
|
253
|
+
Both `MAuth::Faraday::ResponseAuthenticator` and `MAuth::Faraday::RequestSigner` cannot be used without a `private_key` and `app_uuid`.
|
254
254
|
|
255
255
|
If a response which does not appear to be authentic is received by the `MAuth::Faraday::ResponseAuthenticator` middleware, a `MAuth::InauthenticError` will be raised.
|
256
256
|
|
@@ -272,18 +272,6 @@ request = MAuth::Request.new(verb: my_verb, request_url: my_request_url, body: m
|
|
272
272
|
```
|
273
273
|
`mauth_client.signed_headers(request)` will then return mauth headers which you can apply to your request.
|
274
274
|
|
275
|
-
## Local Authentication
|
276
|
-
|
277
|
-
When doing local authentication, the MAuth-Client will periodically fetch and cache public keys from MAuth.
|
278
|
-
Each public key will be cached locally for 60 seconds.
|
279
|
-
Applications which connect frequently to the app will benefit most from this caching strategy.
|
280
|
-
When fetching public keys from MAuth, the following rules apply:
|
281
|
-
|
282
|
-
1. If MAuth returns the public key for a given `app_uuid`, MAuth-Client will refresh its local cache with this new public key.
|
283
|
-
2. If MAuth cannot find the public key for a given `app_uuid` (i.e. returns a 404 status code), MAuth-Client will remove the corresponding public key from its local cache and authentication of any message from the application with this public key will fail as a consequence.
|
284
|
-
3. If the request to MAuth times out or MAuth returns a 500 status code, the requested public key will not be removed from local MAuth-Client cache (if it exists there in the first place).
|
285
|
-
The cached version will continue to be used for local authentication until MAuth::Client is able to again communicate with MAuth.
|
286
|
-
|
287
275
|
## Warning
|
288
276
|
|
289
277
|
During development classes are typically not cached in Rails applications.
|
@@ -1,16 +1,24 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'faraday-http-cache'
|
4
|
+
require 'faraday/retry'
|
5
|
+
if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
|
6
|
+
require 'faraday/net_http_persistent'
|
7
|
+
else
|
8
|
+
require 'net/http/persistent'
|
9
|
+
end
|
4
10
|
require 'mauth/faraday'
|
5
11
|
|
6
12
|
module MAuth
|
7
13
|
class Client
|
8
14
|
module Authenticator
|
9
15
|
class SecurityTokenCacher
|
16
|
+
attr_reader :mauth_client
|
17
|
+
|
10
18
|
def initialize(mauth_client)
|
11
19
|
@mauth_client = mauth_client
|
12
20
|
# TODO: should this be UnableToSignError?
|
13
|
-
|
21
|
+
mauth_client.assert_private_key(
|
14
22
|
UnableToAuthenticateError.new('Cannot fetch public keys from mAuth service without a private key!')
|
15
23
|
)
|
16
24
|
end
|
@@ -19,7 +27,7 @@ module MAuth
|
|
19
27
|
# url-encode the app_uuid to prevent trickery like escaping upward with ../../ in a malicious
|
20
28
|
# app_uuid - probably not exploitable, but this is the right way to do it anyway.
|
21
29
|
url_encoded_app_uuid = CGI.escape(app_uuid)
|
22
|
-
path = "/mauth/#{
|
30
|
+
path = "/mauth/#{mauth_client.mauth_api_version}/security_tokens/#{url_encoded_app_uuid}.json"
|
23
31
|
response = signed_mauth_connection.get(path)
|
24
32
|
|
25
33
|
case response.status
|
@@ -29,11 +37,11 @@ module MAuth
|
|
29
37
|
# signing with a key mAuth doesn't know about is considered inauthentic
|
30
38
|
raise InauthenticError, "mAuth service responded with 404 looking up public key for #{app_uuid}"
|
31
39
|
else
|
32
|
-
|
40
|
+
mauth_client.send(:mauth_service_response_error, response)
|
33
41
|
end
|
34
42
|
rescue ::Faraday::ConnectionFailed, ::Faraday::TimeoutError => e
|
35
43
|
msg = "mAuth service did not respond; received #{e.class}: #{e.message}"
|
36
|
-
|
44
|
+
mauth_client.logger.error("Unable to authenticate with MAuth. Exception #{msg}")
|
37
45
|
raise UnableToAuthenticateError, msg
|
38
46
|
end
|
39
47
|
|
@@ -43,21 +51,20 @@ module MAuth
|
|
43
51
|
JSON.parse response_body
|
44
52
|
rescue JSON::ParserError => e
|
45
53
|
msg = "mAuth service responded with unparseable json: #{response_body}\n#{e.class}: #{e.message}"
|
46
|
-
|
54
|
+
mauth_client.logger.error("Unable to authenticate with MAuth. Exception #{msg}")
|
47
55
|
raise UnableToAuthenticateError, msg
|
48
56
|
end
|
49
57
|
|
50
58
|
def signed_mauth_connection
|
51
59
|
@signed_mauth_connection ||= begin
|
52
|
-
if
|
53
|
-
@mauth_client.faraday_options[:ssl] = { ca_path: @mauth_client.ssl_certs_path }
|
54
|
-
end
|
60
|
+
mauth_client.faraday_options[:ssl] = { ca_path: mauth_client.ssl_certs_path } if mauth_client.ssl_certs_path
|
55
61
|
|
56
|
-
::Faraday.new(
|
62
|
+
::Faraday.new(mauth_client.mauth_baseurl, mauth_client.faraday_options) do |builder|
|
57
63
|
builder.use MAuth::Faraday::MAuthClientUserAgent
|
58
|
-
builder.use MAuth::Faraday::RequestSigner, 'mauth_client' =>
|
59
|
-
builder.use :http_cache, logger:
|
60
|
-
builder.
|
64
|
+
builder.use MAuth::Faraday::RequestSigner, 'mauth_client' => mauth_client
|
65
|
+
builder.use :http_cache, store: mauth_client.cache_store, logger: mauth_client.logger, shared_cache: false
|
66
|
+
builder.request :retry, max: 2
|
67
|
+
builder.adapter :net_http_persistent
|
61
68
|
end
|
62
69
|
end
|
63
70
|
end
|
data/lib/mauth/client.rb
CHANGED
@@ -12,6 +12,7 @@ require 'mauth/client/authenticator'
|
|
12
12
|
require 'mauth/client/signer'
|
13
13
|
require 'mauth/config_env'
|
14
14
|
require 'mauth/errors'
|
15
|
+
require 'mauth/private_key_helper'
|
15
16
|
|
16
17
|
module MAuth
|
17
18
|
# does operations which require a private key and corresponding app uuid. this is primarily:
|
@@ -60,7 +61,7 @@ module MAuth
|
|
60
61
|
|
61
62
|
# new client with the given App UUID and public key. config may include the following (all
|
62
63
|
# config keys may be strings or symbols):
|
63
|
-
# - private_key - required for signing and for
|
64
|
+
# - private_key - required for signing and for authentication.
|
64
65
|
# may be given as a string or a OpenSSL::PKey::RSA instance.
|
65
66
|
# - app_uuid - required in the same circumstances where a private_key is required
|
66
67
|
# - mauth_baseurl - required. needed to retrieve public keys.
|
@@ -80,7 +81,7 @@ module MAuth
|
|
80
81
|
when nil
|
81
82
|
nil
|
82
83
|
when String
|
83
|
-
|
84
|
+
PrivateKeyHelper.load(given_config['private_key'])
|
84
85
|
when OpenSSL::PKey::RSA
|
85
86
|
given_config['private_key']
|
86
87
|
else
|
@@ -102,7 +103,7 @@ module MAuth
|
|
102
103
|
end
|
103
104
|
end
|
104
105
|
|
105
|
-
request_config = { timeout: 10, open_timeout:
|
106
|
+
request_config = { timeout: 10, open_timeout: 3 }
|
106
107
|
request_config.merge!(symbolize_keys(given_config['faraday_options'])) if given_config['faraday_options']
|
107
108
|
@config['faraday_options'] = { request: request_config } || {}
|
108
109
|
@config['ssl_certs_path'] = given_config['ssl_certs_path'] if given_config['ssl_certs_path']
|
@@ -115,6 +116,7 @@ module MAuth
|
|
115
116
|
|
116
117
|
@config['disable_fallback_to_v1_on_v2_failure'] =
|
117
118
|
given_config['disable_fallback_to_v1_on_v2_failure'].to_s.casecmp('true').zero?
|
119
|
+
@config['use_rails_cache'] = given_config['use_rails_cache']
|
118
120
|
end
|
119
121
|
|
120
122
|
def logger
|
@@ -165,6 +167,10 @@ module MAuth
|
|
165
167
|
raise err unless private_key
|
166
168
|
end
|
167
169
|
|
170
|
+
def cache_store
|
171
|
+
Rails.cache if @config['use_rails_cache'] && Object.const_defined?(:Rails) && ::Rails.respond_to?(:cache)
|
172
|
+
end
|
173
|
+
|
168
174
|
private
|
169
175
|
|
170
176
|
def mauth_service_response_error(response)
|
data/lib/mauth/config_env.rb
CHANGED
@@ -13,7 +13,8 @@ module MAuth
|
|
13
13
|
'MAUTH_V2_ONLY_AUTHENTICATE' => false,
|
14
14
|
'MAUTH_V2_ONLY_SIGN_REQUESTS' => false,
|
15
15
|
'MAUTH_DISABLE_FALLBACK_TO_V1_ON_V2_FAILURE' => false,
|
16
|
-
'MAUTH_V1_ONLY_SIGN_REQUESTS' => true
|
16
|
+
'MAUTH_V1_ONLY_SIGN_REQUESTS' => true,
|
17
|
+
'MAUTH_USE_RAILS_CACHE' => false
|
17
18
|
}.freeze
|
18
19
|
|
19
20
|
class << self
|
@@ -24,11 +25,12 @@ module MAuth
|
|
24
25
|
'mauth_baseurl' => env[:mauth_url] || 'http://localhost:7000',
|
25
26
|
'mauth_api_version' => env[:mauth_api_version],
|
26
27
|
'app_uuid' => env[:mauth_app_uuid] || 'fb17460e-9868-11e1-8399-0090f5ccb4d3',
|
27
|
-
'private_key' => private_key ||
|
28
|
+
'private_key' => private_key || PrivateKeyHelper.generate.to_s,
|
28
29
|
'v2_only_authenticate' => env[:mauth_v2_only_authenticate],
|
29
30
|
'v2_only_sign_requests' => env[:mauth_v2_only_sign_requests],
|
30
31
|
'disable_fallback_to_v1_on_v2_failure' => env[:mauth_disable_fallback_to_v1_on_v2_failure],
|
31
|
-
'v1_only_sign_requests' => env[:mauth_v1_only_sign_requests]
|
32
|
+
'v1_only_sign_requests' => env[:mauth_v1_only_sign_requests],
|
33
|
+
'use_rails_cache' => env[:mauth_use_rails_cache]
|
32
34
|
}
|
33
35
|
end
|
34
36
|
|
@@ -74,11 +76,6 @@ module MAuth
|
|
74
76
|
|
75
77
|
File.read(env[:mauth_private_key_file])
|
76
78
|
end
|
77
|
-
|
78
|
-
def generate_private_key
|
79
|
-
require 'openssl'
|
80
|
-
OpenSSL::PKey::RSA.generate(2048).to_s
|
81
|
-
end
|
82
79
|
end
|
83
80
|
end
|
84
81
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'openssl'
|
4
|
+
|
5
|
+
module MAuth
|
6
|
+
module PrivateKeyHelper
|
7
|
+
HEADER = '-----BEGIN RSA PRIVATE KEY-----'
|
8
|
+
FOOTER = '-----END RSA PRIVATE KEY-----'
|
9
|
+
|
10
|
+
module_function
|
11
|
+
|
12
|
+
def generate
|
13
|
+
OpenSSL::PKey::RSA.generate(2048)
|
14
|
+
end
|
15
|
+
|
16
|
+
def load(key)
|
17
|
+
OpenSSL::PKey::RSA.new(to_rsa_format(key))
|
18
|
+
rescue OpenSSL::PKey::RSAError
|
19
|
+
raise 'The private key provided is invalid'
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_rsa_format(key)
|
23
|
+
return key if key.include?("\n")
|
24
|
+
|
25
|
+
body = key.strip.delete_prefix(HEADER).delete_suffix(FOOTER).strip
|
26
|
+
body = body.include?("\s") ? body.tr("\s", "\n") : body.scan(/.{1,64}/).join("\n")
|
27
|
+
"#{HEADER}\n#{body}\n#{FOOTER}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/mauth/version.rb
CHANGED
data/mauth-client.gemspec
CHANGED
@@ -23,8 +23,11 @@ Gem::Specification.new do |spec|
|
|
23
23
|
|
24
24
|
spec.add_dependency 'addressable', '~> 2.0'
|
25
25
|
spec.add_dependency 'coderay', '~> 1.0'
|
26
|
-
spec.add_dependency 'faraday', '>=
|
26
|
+
spec.add_dependency 'faraday', '>= 1.9', '< 3.0'
|
27
27
|
spec.add_dependency 'faraday-http-cache', '>= 2.0', '< 3.0'
|
28
|
+
spec.add_dependency 'faraday-net_http_persistent'
|
29
|
+
spec.add_dependency 'faraday-retry'
|
30
|
+
spec.add_dependency 'net-http-persistent', '>= 3.1'
|
28
31
|
spec.add_dependency 'rack', '> 2.2.3'
|
29
32
|
spec.add_dependency 'term-ansicolor', '~> 1.0'
|
30
33
|
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: 7.
|
4
|
+
version: 7.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Szenher
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: exe
|
13
13
|
cert_chain: []
|
14
|
-
date: 2023-
|
14
|
+
date: 2023-06-01 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: addressable
|
@@ -47,7 +47,7 @@ dependencies:
|
|
47
47
|
requirements:
|
48
48
|
- - ">="
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: '
|
50
|
+
version: '1.9'
|
51
51
|
- - "<"
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '3.0'
|
@@ -57,7 +57,7 @@ dependencies:
|
|
57
57
|
requirements:
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
60
|
+
version: '1.9'
|
61
61
|
- - "<"
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '3.0'
|
@@ -81,6 +81,48 @@ dependencies:
|
|
81
81
|
- - "<"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '3.0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: faraday-net_http_persistent
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0'
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: faraday-retry
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: net-http-persistent
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '3.1'
|
119
|
+
type: :runtime
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '3.1'
|
84
126
|
- !ruby/object:Gem::Dependency
|
85
127
|
name: rack
|
86
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -120,7 +162,6 @@ executables:
|
|
120
162
|
extensions: []
|
121
163
|
extra_rdoc_files: []
|
122
164
|
files:
|
123
|
-
- ".fossa.yml"
|
124
165
|
- ".gitignore"
|
125
166
|
- ".gitmodules"
|
126
167
|
- ".rspec"
|
@@ -145,7 +186,6 @@ files:
|
|
145
186
|
- examples/mauth_key
|
146
187
|
- exe/mauth-client
|
147
188
|
- exe/mauth-proxy
|
148
|
-
- gemfiles/faraday_0.x.gemfile
|
149
189
|
- gemfiles/faraday_1.x.gemfile
|
150
190
|
- gemfiles/faraday_2.x.gemfile
|
151
191
|
- lib/mauth-client.rb
|
@@ -160,6 +200,7 @@ files:
|
|
160
200
|
- lib/mauth/fake/rack.rb
|
161
201
|
- lib/mauth/faraday.rb
|
162
202
|
- lib/mauth/middleware.rb
|
203
|
+
- lib/mauth/private_key_helper.rb
|
163
204
|
- lib/mauth/proxy.rb
|
164
205
|
- lib/mauth/rack.rb
|
165
206
|
- lib/mauth/request_and_response.rb
|
data/.fossa.yml
DELETED
@@ -1,14 +0,0 @@
|
|
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: .
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "faraday", "~> 0.9"
|
6
|
-
|
7
|
-
group :development do
|
8
|
-
gem "appraisal", "~> 2.4"
|
9
|
-
gem "benchmark-ips", "~> 2.7"
|
10
|
-
gem "bundler", ">= 1.17"
|
11
|
-
gem "byebug", "~> 11.1"
|
12
|
-
gem "rack-test", "~> 1.1"
|
13
|
-
gem "rake", "~> 12.0"
|
14
|
-
gem "rspec", "~> 3.8"
|
15
|
-
gem "rubocop", "~> 1.25"
|
16
|
-
gem "rubocop-mdsol", "~> 0.1"
|
17
|
-
gem "rubocop-performance", "~> 1.13"
|
18
|
-
gem "simplecov", "~> 0.16"
|
19
|
-
gem "timecop", "~> 0.9"
|
20
|
-
gem "webmock", "~> 3.0"
|
21
|
-
end
|
22
|
-
|
23
|
-
gemspec path: "../"
|