mauth-client 6.4.3 → 7.1.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.
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: 6.4.3
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: 2022-10-07 00:00:00.000000000 Z
14
+ date: 2023-06-01 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: addressable
@@ -41,33 +41,13 @@ dependencies:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
43
  version: '1.0'
44
- - !ruby/object:Gem::Dependency
45
- name: dice_bag
46
- requirement: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: '0.9'
51
- - - "<"
52
- - !ruby/object:Gem::Version
53
- version: '2.0'
54
- type: :runtime
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0.9'
61
- - - "<"
62
- - !ruby/object:Gem::Version
63
- version: '2.0'
64
44
  - !ruby/object:Gem::Dependency
65
45
  name: faraday
66
46
  requirement: !ruby/object:Gem::Requirement
67
47
  requirements:
68
48
  - - ">="
69
49
  - !ruby/object:Gem::Version
70
- version: '0.9'
50
+ version: '1.9'
71
51
  - - "<"
72
52
  - !ruby/object:Gem::Version
73
53
  version: '3.0'
@@ -77,7 +57,7 @@ dependencies:
77
57
  requirements:
78
58
  - - ">="
79
59
  - !ruby/object:Gem::Version
80
- version: '0.9'
60
+ version: '1.9'
81
61
  - - "<"
82
62
  - !ruby/object:Gem::Version
83
63
  version: '3.0'
@@ -102,41 +82,13 @@ dependencies:
102
82
  - !ruby/object:Gem::Version
103
83
  version: '3.0'
104
84
  - !ruby/object:Gem::Dependency
105
- name: rack
106
- requirement: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">"
109
- - !ruby/object:Gem::Version
110
- version: 2.2.3
111
- type: :runtime
112
- prerelease: false
113
- version_requirements: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">"
116
- - !ruby/object:Gem::Version
117
- version: 2.2.3
118
- - !ruby/object:Gem::Dependency
119
- name: term-ansicolor
120
- requirement: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '1.0'
125
- type: :runtime
126
- prerelease: false
127
- version_requirements: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '1.0'
132
- - !ruby/object:Gem::Dependency
133
- name: appraisal
85
+ name: faraday-net_http_persistent
134
86
  requirement: !ruby/object:Gem::Requirement
135
87
  requirements:
136
88
  - - ">="
137
89
  - !ruby/object:Gem::Version
138
90
  version: '0'
139
- type: :development
91
+ type: :runtime
140
92
  prerelease: false
141
93
  version_requirements: !ruby/object:Gem::Requirement
142
94
  requirements:
@@ -144,41 +96,13 @@ dependencies:
144
96
  - !ruby/object:Gem::Version
145
97
  version: '0'
146
98
  - !ruby/object:Gem::Dependency
147
- name: benchmark-ips
148
- requirement: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '2.7'
153
- type: :development
154
- prerelease: false
155
- version_requirements: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '2.7'
160
- - !ruby/object:Gem::Dependency
161
- name: bundler
162
- requirement: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '1.17'
167
- type: :development
168
- prerelease: false
169
- version_requirements: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '1.17'
174
- - !ruby/object:Gem::Dependency
175
- name: byebug
99
+ name: faraday-retry
176
100
  requirement: !ruby/object:Gem::Requirement
177
101
  requirements:
178
102
  - - ">="
179
103
  - !ruby/object:Gem::Version
180
104
  version: '0'
181
- type: :development
105
+ type: :runtime
182
106
  prerelease: false
183
107
  version_requirements: !ruby/object:Gem::Requirement
184
108
  requirements:
@@ -186,131 +110,47 @@ dependencies:
186
110
  - !ruby/object:Gem::Version
187
111
  version: '0'
188
112
  - !ruby/object:Gem::Dependency
189
- name: rack-test
190
- requirement: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: 1.1.0
195
- type: :development
196
- prerelease: false
197
- version_requirements: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: 1.1.0
202
- - !ruby/object:Gem::Dependency
203
- name: rake
204
- requirement: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - "~>"
207
- - !ruby/object:Gem::Version
208
- version: '12.0'
209
- type: :development
210
- prerelease: false
211
- version_requirements: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - "~>"
214
- - !ruby/object:Gem::Version
215
- version: '12.0'
216
- - !ruby/object:Gem::Dependency
217
- name: rspec
218
- requirement: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - "~>"
221
- - !ruby/object:Gem::Version
222
- version: '3.8'
223
- type: :development
224
- prerelease: false
225
- version_requirements: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - "~>"
228
- - !ruby/object:Gem::Version
229
- version: '3.8'
230
- - !ruby/object:Gem::Dependency
231
- name: rubocop
232
- requirement: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - '='
235
- - !ruby/object:Gem::Version
236
- version: 1.25.1
237
- type: :development
238
- prerelease: false
239
- version_requirements: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - '='
242
- - !ruby/object:Gem::Version
243
- version: 1.25.1
244
- - !ruby/object:Gem::Dependency
245
- name: rubocop-mdsol
113
+ name: net-http-persistent
246
114
  requirement: !ruby/object:Gem::Requirement
247
115
  requirements:
248
- - - "~>"
249
- - !ruby/object:Gem::Version
250
- version: '0.1'
251
- type: :development
252
- prerelease: false
253
- version_requirements: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - "~>"
256
- - !ruby/object:Gem::Version
257
- version: '0.1'
258
- - !ruby/object:Gem::Dependency
259
- name: rubocop-performance
260
- requirement: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - '='
263
- - !ruby/object:Gem::Version
264
- version: 1.13.2
265
- type: :development
266
- prerelease: false
267
- version_requirements: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - '='
270
- - !ruby/object:Gem::Version
271
- version: 1.13.2
272
- - !ruby/object:Gem::Dependency
273
- name: simplecov
274
- requirement: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - "~>"
116
+ - - ">="
277
117
  - !ruby/object:Gem::Version
278
- version: '0.16'
279
- type: :development
118
+ version: '3.1'
119
+ type: :runtime
280
120
  prerelease: false
281
121
  version_requirements: !ruby/object:Gem::Requirement
282
122
  requirements:
283
- - - "~>"
123
+ - - ">="
284
124
  - !ruby/object:Gem::Version
285
- version: '0.16'
125
+ version: '3.1'
286
126
  - !ruby/object:Gem::Dependency
287
- name: timecop
127
+ name: rack
288
128
  requirement: !ruby/object:Gem::Requirement
289
129
  requirements:
290
- - - "~>"
130
+ - - ">"
291
131
  - !ruby/object:Gem::Version
292
- version: '0.9'
293
- type: :development
132
+ version: 2.2.3
133
+ type: :runtime
294
134
  prerelease: false
295
135
  version_requirements: !ruby/object:Gem::Requirement
296
136
  requirements:
297
- - - "~>"
137
+ - - ">"
298
138
  - !ruby/object:Gem::Version
299
- version: '0.9'
139
+ version: 2.2.3
300
140
  - !ruby/object:Gem::Dependency
301
- name: webmock
141
+ name: term-ansicolor
302
142
  requirement: !ruby/object:Gem::Requirement
303
143
  requirements:
304
144
  - - "~>"
305
145
  - !ruby/object:Gem::Version
306
- version: '3.0'
307
- type: :development
146
+ version: '1.0'
147
+ type: :runtime
308
148
  prerelease: false
309
149
  version_requirements: !ruby/object:Gem::Requirement
310
150
  requirements:
311
151
  - - "~>"
312
152
  - !ruby/object:Gem::Version
313
- version: '3.0'
153
+ version: '1.0'
314
154
  description: Client for signing and authentication of requests and responses with
315
155
  mAuth authentication. Includes middleware for Rack and Faraday for incoming and
316
156
  outgoing requests and responses.
@@ -322,7 +162,6 @@ executables:
322
162
  extensions: []
323
163
  extra_rdoc_files: []
324
164
  files:
325
- - ".fossa.yml"
326
165
  - ".gitignore"
327
166
  - ".gitmodules"
328
167
  - ".rspec"
@@ -337,38 +176,31 @@ files:
337
176
  - LICENSE.txt
338
177
  - README.md
339
178
  - Rakefile
179
+ - UPGRADE_GUIDE.md
340
180
  - doc/implementations.md
341
181
  - doc/mauth-client_CLI.md
342
182
  - doc/mauth-proxy.md
343
- - doc/mauth.yml.md
344
183
  - examples/Gemfile
345
- - examples/Gemfile.lock
346
184
  - examples/README.md
347
- - examples/config.yml
348
- - examples/get_user_info.rb
185
+ - examples/get_country_info.rb
349
186
  - examples/mauth_key
350
187
  - exe/mauth-client
351
188
  - exe/mauth-proxy
352
- - gemfiles/faraday_0.x.gemfile
353
189
  - gemfiles/faraday_1.x.gemfile
354
190
  - gemfiles/faraday_2.x.gemfile
355
191
  - lib/mauth-client.rb
356
192
  - lib/mauth/autoload.rb
357
193
  - lib/mauth/client.rb
358
- - lib/mauth/client/authenticator_base.rb
359
- - lib/mauth/client/local_authenticator.rb
360
- - lib/mauth/client/remote_authenticator.rb
194
+ - lib/mauth/client/authenticator.rb
361
195
  - lib/mauth/client/security_token_cacher.rb
362
196
  - lib/mauth/client/signer.rb
197
+ - lib/mauth/config_env.rb
363
198
  - lib/mauth/core_ext.rb
364
- - lib/mauth/dice_bag/mauth.rb.dice
365
- - lib/mauth/dice_bag/mauth.yml.dice
366
- - lib/mauth/dice_bag/mauth_key.dice
367
- - lib/mauth/dice_bag/mauth_templates.rb
368
199
  - lib/mauth/errors.rb
369
200
  - lib/mauth/fake/rack.rb
370
201
  - lib/mauth/faraday.rb
371
202
  - lib/mauth/middleware.rb
203
+ - lib/mauth/private_key_helper.rb
372
204
  - lib/mauth/proxy.rb
373
205
  - lib/mauth/rack.rb
374
206
  - lib/mauth/request_and_response.rb
@@ -388,7 +220,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
388
220
  requirements:
389
221
  - - ">="
390
222
  - !ruby/object:Gem::Version
391
- version: 2.6.0
223
+ version: 2.7.0
392
224
  required_rubygems_version: !ruby/object:Gem::Requirement
393
225
  requirements:
394
226
  - - ">="
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: .
data/doc/mauth.yml.md DELETED
@@ -1,84 +0,0 @@
1
- # mauth.yml
2
-
3
- The conventional way to configure MAuth-Client for your project is through a YAML file which lives in your project at `config/mauth.yml`.
4
- It is keyed on environment, and for the most part its contents are passed directly to instantiate an MAuth::Client.
5
- See the documentation for [MAuth::Client#initialize](../lib/mauth/client.rb) for more details of what it accepts.
6
-
7
- ## Generating keys
8
-
9
- To generate a private key (`mauth_key`) and its public counterpart (`mauth_key.pub`) run:
10
-
11
- ```
12
- openssl genrsa -out mauth_key 2048
13
- openssl rsa -in mauth_key -pubout -out mauth_key.pub
14
- ```
15
-
16
- ## Format
17
-
18
- ```yaml
19
- common: &common
20
- mauth_baseurl: https://mauth-innovate.imedidata.com
21
- mauth_api_version: v1
22
- app_uuid: 123we997-0333-44d8-8fCf-5dd555c5bd51
23
- private_key: |
24
- -----BEGIN RSA PRIVATE KEY-----
25
- AIIEowIBAAKCAQEAwLYWYcKrCAl7uWVlkwzBcBXRiRREqGYLXEnRGgDrlqbY+lDg
26
- gwMNga3ylckui/rTUZhtefx1MLtxgnTGiil45eleoJgjdfsOO5yXzUA46KW0cuL4
27
- ...
28
- oEKe4QKBgFNbVJp3Zut83MzpN4Zu7/wZ/+q9ds9WMMxWb4hUugKQTPjsgj+8tCqa
29
- SIY2exfsy7Y8NoOnBPlGiXKhgaF21T8kqV9C7R6OAuP0U6CgMJnINx/UjozvBENH
30
- Ux45QdvRd6vai8nHp7AgV7rr55SxXAZVgATll84uBUpfpmC6YK/j
31
- -----END RSA PRIVATE KEY-----
32
- v2_only_authenticate: false
33
- v2_only_sign_requests: false
34
- disable_fallback_to_v1_on_v2_failure: true
35
-
36
- production:
37
- <<: *common
38
- development:
39
- <<: *common
40
- test:
41
- <<: *common
42
- ```
43
-
44
- Optionally you can load the private key from a file:
45
-
46
- ```yaml
47
- common: &common
48
- mauth_baseurl: https://mauth-innovate.imedidata.com
49
- mauth_api_version: v1
50
- app_uuid: 123we997-0333-44d8-8fCf-5dd555c5bd51
51
- private_key_file: config/my_mauth_private.key
52
- v2_only_authenticate: false
53
- v2_only_sign_requests: false
54
- disable_fallback_to_v1_on_v2_failure: true
55
- v1_only_sign_requests: false
56
-
57
- production:
58
- <<: *common
59
- development:
60
- <<: *common
61
- test:
62
- <<: *common
63
- ```
64
-
65
- ## Configuration options
66
-
67
- - `private_key` - Required for signing and for authenticating responses. May be omitted if only remote authentication of requests is being performed.
68
- - `private_key_file` - May be used instead of `private_key`, mauth-client will load the file instead.
69
- - `app_uuid` - Required in the same circumstances where a `private_key` is required.
70
- - `mauth_baseurl` - Required for authentication but not for signing. Needed for local authentication to retrieve public keys and for remote authentication. Usually this is `https://mauth.imedidata.com` for production.
71
- - `mauth_api_version` - Required for authentication but not for signing. only `v1` exists as of this writing.
72
- - `v2_only_sign_requests` - If true, all outgoing requests will be signed with only the V2 protocol. Defaults to false.
73
- - `v2_only_authenticate` - If true, any incoming request or incoming response that does not use the V2 protocol will be rejected. Defaults to false.
74
- - `disable_fallback_to_v1_on_v2_failure` - If true, any incoming V2 requests that fail authentication will not fall back to V1 authentication. Defaults to false.
75
- - `v1_only_sign_requests` - If true, all outgoing requests will be signed with only the V1 protocol. Defaults to true. Note, cannot be `true` if `v2_only_sign_requests` is also `true`.
76
-
77
- ## Usage in your application
78
-
79
- Load mauth.yml, merge in any other configuration that is needed for your usage, and pass the config along to instantiate a `MAuth::Client` or a middleware.
80
- See the [README](../README.md) for more detail.
81
-
82
- ## Usage in MAuth-Client executables (mauth-client, mauth-proxy)
83
-
84
- See the [MAuth-Client CLI Tool doc](./mauth-client_CLI.md#configuration).
@@ -1,69 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- mauth-client (6.4.3)
5
- addressable (~> 2.0)
6
- coderay (~> 1.0)
7
- dice_bag (>= 0.9, < 2.0)
8
- faraday (>= 0.9, < 3.0)
9
- faraday-http-cache (>= 2.0, < 3.0)
10
- rack (> 2.2.3)
11
- term-ansicolor (~> 1.0)
12
-
13
- GEM
14
- remote: https://rubygems.org/
15
- specs:
16
- addressable (2.8.1)
17
- public_suffix (>= 2.0.2, < 6.0)
18
- coderay (1.1.3)
19
- dice_bag (1.6.1)
20
- diff-lcs (~> 1.0)
21
- rake
22
- thor (< 2.0)
23
- diff-lcs (1.5.0)
24
- faraday (1.10.2)
25
- faraday-em_http (~> 1.0)
26
- faraday-em_synchrony (~> 1.0)
27
- faraday-excon (~> 1.1)
28
- faraday-httpclient (~> 1.0)
29
- faraday-multipart (~> 1.0)
30
- faraday-net_http (~> 1.0)
31
- faraday-net_http_persistent (~> 1.0)
32
- faraday-patron (~> 1.0)
33
- faraday-rack (~> 1.0)
34
- faraday-retry (~> 1.0)
35
- ruby2_keywords (>= 0.0.4)
36
- faraday-em_http (1.0.0)
37
- faraday-em_synchrony (1.0.0)
38
- faraday-excon (1.1.0)
39
- faraday-http-cache (2.4.1)
40
- faraday (>= 0.8)
41
- faraday-httpclient (1.0.1)
42
- faraday-multipart (1.0.4)
43
- multipart-post (~> 2)
44
- faraday-net_http (1.0.1)
45
- faraday-net_http_persistent (1.2.0)
46
- faraday-patron (1.0.0)
47
- faraday-rack (1.0.0)
48
- faraday-retry (1.0.3)
49
- multipart-post (2.2.3)
50
- public_suffix (5.0.0)
51
- rack (3.0.0)
52
- rake (13.0.6)
53
- ruby2_keywords (0.0.5)
54
- sync (0.5.0)
55
- term-ansicolor (1.7.1)
56
- tins (~> 1.0)
57
- thor (1.2.1)
58
- tins (1.31.1)
59
- sync
60
-
61
- PLATFORMS
62
- ruby
63
-
64
- DEPENDENCIES
65
- faraday (~> 1.0)
66
- mauth-client!
67
-
68
- BUNDLED WITH
69
- 2.2.29
data/examples/config.yml DELETED
@@ -1,12 +0,0 @@
1
- imedidata:
2
- host: https://innovate.imedidata.com
3
-
4
- mauth:
5
- mauth_baseurl: https://mauth-innovate.imedidata.com
6
- mauth_api_version: v1
7
- app_uuid: <APP UUID>
8
- private_key_file: ./mauth_key
9
- v2_only_authenticate: false
10
- v2_only_sign_requests: false
11
- disable_fallback_to_v1_on_v2_failure: true
12
- v1_only_sign_requests: false
@@ -1,58 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- abort "USAGE: ./#{__FILE__} <USER UUID>" unless ARGV.size == 1
5
-
6
- require 'bundler/setup'
7
- Bundler.require(:default)
8
-
9
- def config
10
- @config ||= YAML.safe_load(File.open('./config.yml'))
11
- end
12
-
13
- # get user information
14
- def get_user_info_mauth(user_uuid)
15
- get_data_from_imedidata "users/#{user_uuid}.json"
16
- end
17
-
18
- # fetch data from iMedidata
19
- def get_data_from_imedidata(resource_name)
20
- puts "fetching #{resource_name}..."
21
- begin
22
- connection = Faraday::Connection.new(url: config['imedidata']['host']) do |builder|
23
- builder.use MAuth::Faraday::RequestSigner, config['mauth']
24
- builder.adapter Faraday.default_adapter
25
- end
26
-
27
- # get the data
28
- response = connection.get "/api/v2/#{resource_name}"
29
- puts "HTTP #{response.status}"
30
-
31
- # return the user info
32
- if response.status == 200
33
- result = JSON.parse(response.body)
34
- puts JSON.pretty_generate(result)
35
- result
36
- else
37
- puts response.body
38
- nil
39
- end
40
- rescue JSON::ParserError => e
41
- puts "Error parsing data from imedidata: #{e.inspect}"
42
- puts e.backtrace.join("\n")
43
- end
44
- end
45
-
46
- get_user_info_mauth(ARGV[0])
47
-
48
- ### OTHER EXAMPLES
49
-
50
- #### get study groups for an user
51
- def get_study_groups_mauth(user_uuid)
52
- get_data_from_imedidata "users/#{user_uuid}/study_groups.json"
53
- end
54
-
55
- #### get roles for a user in an application study
56
- def get_user_study_roles_mauth(user_uuid, study_uuid)
57
- get_data_from_imedidata "users/#{user_uuid}/studies/#{study_uuid}/apps/#{config["mauth"]["app_uuid"]}/roles.json"
58
- end
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "faraday", "0.9.0"
6
-
7
- gemspec path: "../"