keycloak_rack 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/main.yml +68 -0
  3. data/.gitignore +8 -0
  4. data/.rspec +2 -0
  5. data/.rubocop.yml +220 -0
  6. data/.ruby-version +1 -0
  7. data/.yardopts +7 -0
  8. data/Appraisals +16 -0
  9. data/CHANGELOG.md +10 -0
  10. data/CODE_OF_CONDUCT.md +132 -0
  11. data/Gemfile +5 -0
  12. data/LICENSE +19 -0
  13. data/README.md +288 -0
  14. data/Rakefile +10 -0
  15. data/bin/appraisal +29 -0
  16. data/bin/console +6 -0
  17. data/bin/fix-appraisals +14 -0
  18. data/bin/rake +29 -0
  19. data/bin/rspec +29 -0
  20. data/bin/rubocop +29 -0
  21. data/bin/yard +29 -0
  22. data/bin/yardoc +29 -0
  23. data/bin/yri +29 -0
  24. data/gemfiles/rack_only.gemfile +5 -0
  25. data/gemfiles/rack_only.gemfile.lock +204 -0
  26. data/gemfiles/rails_6_0.gemfile +9 -0
  27. data/gemfiles/rails_6_0.gemfile.lock +323 -0
  28. data/gemfiles/rails_6_1.gemfile +9 -0
  29. data/gemfiles/rails_6_1.gemfile.lock +326 -0
  30. data/keycloak_rack.gemspec +56 -0
  31. data/lib/keycloak_rack.rb +59 -0
  32. data/lib/keycloak_rack/authenticate.rb +115 -0
  33. data/lib/keycloak_rack/authorize_realm.rb +53 -0
  34. data/lib/keycloak_rack/authorize_resource.rb +54 -0
  35. data/lib/keycloak_rack/config.rb +84 -0
  36. data/lib/keycloak_rack/container.rb +53 -0
  37. data/lib/keycloak_rack/decoded_token.rb +191 -0
  38. data/lib/keycloak_rack/flexible_struct.rb +20 -0
  39. data/lib/keycloak_rack/http_client.rb +86 -0
  40. data/lib/keycloak_rack/import.rb +9 -0
  41. data/lib/keycloak_rack/key_fetcher.rb +20 -0
  42. data/lib/keycloak_rack/key_resolver.rb +64 -0
  43. data/lib/keycloak_rack/middleware.rb +132 -0
  44. data/lib/keycloak_rack/railtie.rb +14 -0
  45. data/lib/keycloak_rack/read_token.rb +40 -0
  46. data/lib/keycloak_rack/resource_role_map.rb +8 -0
  47. data/lib/keycloak_rack/role_map.rb +15 -0
  48. data/lib/keycloak_rack/session.rb +44 -0
  49. data/lib/keycloak_rack/skip_authentication.rb +44 -0
  50. data/lib/keycloak_rack/types.rb +42 -0
  51. data/lib/keycloak_rack/version.rb +6 -0
  52. data/lib/keycloak_rack/with_config.rb +15 -0
  53. data/spec/dummy/.ruby-version +1 -0
  54. data/spec/dummy/README.md +24 -0
  55. data/spec/dummy/Rakefile +8 -0
  56. data/spec/dummy/app/controllers/application_controller.rb +22 -0
  57. data/spec/dummy/app/controllers/test_controller.rb +9 -0
  58. data/spec/dummy/config.ru +8 -0
  59. data/spec/dummy/config/application.rb +52 -0
  60. data/spec/dummy/config/boot.rb +3 -0
  61. data/spec/dummy/config/environment.rb +7 -0
  62. data/spec/dummy/config/environments/development.rb +51 -0
  63. data/spec/dummy/config/environments/test.rb +51 -0
  64. data/spec/dummy/config/initializers/application_controller_renderer.rb +9 -0
  65. data/spec/dummy/config/initializers/backtrace_silencers.rb +10 -0
  66. data/spec/dummy/config/initializers/cors.rb +17 -0
  67. data/spec/dummy/config/initializers/filter_parameter_logging.rb +8 -0
  68. data/spec/dummy/config/initializers/inflections.rb +17 -0
  69. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  70. data/spec/dummy/config/initializers/wrap_parameters.rb +11 -0
  71. data/spec/dummy/config/keycloak.yml +12 -0
  72. data/spec/dummy/config/locales/en.yml +33 -0
  73. data/spec/dummy/config/routes.rb +5 -0
  74. data/spec/dummy/public/robots.txt +1 -0
  75. data/spec/dummy/tmp/development_secret.txt +1 -0
  76. data/spec/factories/decoded_token.rb +18 -0
  77. data/spec/factories/session.rb +21 -0
  78. data/spec/factories/token_payload.rb +40 -0
  79. data/spec/keycloak_rack/authorize_realm_spec.rb +15 -0
  80. data/spec/keycloak_rack/authorize_resource_spec.rb +19 -0
  81. data/spec/keycloak_rack/decoded_token_spec.rb +31 -0
  82. data/spec/keycloak_rack/key_resolver_spec.rb +95 -0
  83. data/spec/keycloak_rack/middleware_spec.rb +172 -0
  84. data/spec/keycloak_rack/rails_integration_spec.rb +43 -0
  85. data/spec/keycloak_rack/session_spec.rb +37 -0
  86. data/spec/keycloak_rack/skip_authentication_spec.rb +55 -0
  87. data/spec/spec_helper.rb +101 -0
  88. data/spec/support/contexts/mocked_keycloak.rb +63 -0
  89. data/spec/support/contexts/mocked_rack_application.rb +41 -0
  90. data/spec/support/test_key.pem +27 -0
  91. data/spec/support/token_helper.rb +76 -0
  92. metadata +616 -0
data/bin/yard ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'yard' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("yard", "yard")
data/bin/yardoc ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'yardoc' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("yard", "yardoc")
data/bin/yri ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'yri' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("yard", "yri")
@@ -0,0 +1,5 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gemspec path: "../"
@@ -0,0 +1,204 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ keycloak_rack (1.0.0)
5
+ activesupport (>= 4.2)
6
+ anyway_config (>= 2.1.0, < 3)
7
+ dry-auto_inject
8
+ dry-container
9
+ dry-effects (>= 0.0.1)
10
+ dry-initializer
11
+ dry-matcher
12
+ dry-monads (>= 1.3.5, < 2)
13
+ dry-struct (>= 1, < 2)
14
+ dry-types (>= 1, < 2)
15
+ dry-validation
16
+ jwt (>= 2.2.0, < 3)
17
+ rack (>= 2.0.0, < 3)
18
+ zeitwerk (>= 2.0.0, < 3)
19
+
20
+ GEM
21
+ remote: https://rubygems.org/
22
+ specs:
23
+ activesupport (6.1.3.1)
24
+ concurrent-ruby (~> 1.0, >= 1.0.2)
25
+ i18n (>= 1.6, < 2)
26
+ minitest (>= 5.1)
27
+ tzinfo (~> 2.0)
28
+ zeitwerk (~> 2.3)
29
+ addressable (2.7.0)
30
+ public_suffix (>= 2.0.2, < 5.0)
31
+ anyway_config (2.1.0)
32
+ ruby-next-core (>= 0.11.0)
33
+ appraisal (2.4.0)
34
+ bundler
35
+ rake
36
+ thor (>= 0.14.0)
37
+ ast (2.4.2)
38
+ backports (3.21.0)
39
+ coderay (1.1.3)
40
+ concurrent-ruby (1.1.8)
41
+ crack (0.4.5)
42
+ rexml
43
+ diff-lcs (1.4.4)
44
+ docile (1.3.5)
45
+ dry-auto_inject (0.7.0)
46
+ dry-container (>= 0.3.4)
47
+ dry-configurable (0.12.1)
48
+ concurrent-ruby (~> 1.0)
49
+ dry-core (~> 0.5, >= 0.5.0)
50
+ dry-container (0.7.2)
51
+ concurrent-ruby (~> 1.0)
52
+ dry-configurable (~> 0.1, >= 0.1.3)
53
+ dry-core (0.5.0)
54
+ concurrent-ruby (~> 1.0)
55
+ dry-effects (0.1.5)
56
+ concurrent-ruby (~> 1.0)
57
+ dry-container (~> 0.7, >= 0.7.2)
58
+ dry-core (~> 0.4, >= 0.4.7)
59
+ dry-equalizer (~> 0.2, >= 0.2.2)
60
+ dry-inflector (~> 0.1, >= 0.1.2)
61
+ dry-initializer (~> 3.0)
62
+ dry-equalizer (0.3.0)
63
+ dry-inflector (0.2.0)
64
+ dry-initializer (3.0.4)
65
+ dry-logic (1.2.0)
66
+ concurrent-ruby (~> 1.0)
67
+ dry-core (~> 0.5, >= 0.5)
68
+ dry-matcher (0.9.0)
69
+ dry-core (~> 0.4, >= 0.4.8)
70
+ dry-monads (1.3.5)
71
+ concurrent-ruby (~> 1.0)
72
+ dry-core (~> 0.4, >= 0.4.4)
73
+ dry-equalizer
74
+ dry-schema (1.6.2)
75
+ concurrent-ruby (~> 1.0)
76
+ dry-configurable (~> 0.8, >= 0.8.3)
77
+ dry-core (~> 0.5, >= 0.5)
78
+ dry-initializer (~> 3.0)
79
+ dry-logic (~> 1.0)
80
+ dry-types (~> 1.5)
81
+ dry-struct (1.4.0)
82
+ dry-core (~> 0.5, >= 0.5)
83
+ dry-types (~> 1.5)
84
+ ice_nine (~> 0.11)
85
+ dry-types (1.5.1)
86
+ concurrent-ruby (~> 1.0)
87
+ dry-container (~> 0.3)
88
+ dry-core (~> 0.5, >= 0.5)
89
+ dry-inflector (~> 0.1, >= 0.1.2)
90
+ dry-logic (~> 1.0, >= 1.0.2)
91
+ dry-validation (1.6.0)
92
+ concurrent-ruby (~> 1.0)
93
+ dry-container (~> 0.7, >= 0.7.1)
94
+ dry-core (~> 0.4)
95
+ dry-equalizer (~> 0.2)
96
+ dry-initializer (~> 3.0)
97
+ dry-schema (~> 1.5, >= 1.5.2)
98
+ factory_bot (6.1.0)
99
+ activesupport (>= 5.0.0)
100
+ faker (2.17.0)
101
+ i18n (>= 1.6, < 2)
102
+ hashdiff (1.0.1)
103
+ i18n (1.8.10)
104
+ concurrent-ruby (~> 1.0)
105
+ ice_nine (0.11.2)
106
+ jwt (2.2.3)
107
+ method_source (1.0.0)
108
+ minitest (5.14.4)
109
+ parallel (1.20.1)
110
+ parser (3.0.1.1)
111
+ ast (~> 2.4.1)
112
+ pry (0.14.1)
113
+ coderay (~> 1.1)
114
+ method_source (~> 1.0)
115
+ public_suffix (4.0.6)
116
+ rack (2.2.3)
117
+ rack-test (1.1.0)
118
+ rack (>= 1.0, < 3)
119
+ rainbow (3.0.0)
120
+ rake (13.0.3)
121
+ redcarpet (3.5.1)
122
+ regexp_parser (2.1.1)
123
+ rexml (3.2.5)
124
+ rspec (3.10.0)
125
+ rspec-core (~> 3.10.0)
126
+ rspec-expectations (~> 3.10.0)
127
+ rspec-mocks (~> 3.10.0)
128
+ rspec-core (3.10.1)
129
+ rspec-support (~> 3.10.0)
130
+ rspec-expectations (3.10.1)
131
+ diff-lcs (>= 1.2.0, < 2.0)
132
+ rspec-support (~> 3.10.0)
133
+ rspec-json_expectations (2.2.0)
134
+ rspec-mocks (3.10.2)
135
+ diff-lcs (>= 1.2.0, < 2.0)
136
+ rspec-support (~> 3.10.0)
137
+ rspec-support (3.10.2)
138
+ rubocop (1.13.0)
139
+ parallel (~> 1.10)
140
+ parser (>= 3.0.0.0)
141
+ rainbow (>= 2.2.2, < 4.0)
142
+ regexp_parser (>= 1.8, < 3.0)
143
+ rexml
144
+ rubocop-ast (>= 1.2.0, < 2.0)
145
+ ruby-progressbar (~> 1.7)
146
+ unicode-display_width (>= 1.4.0, < 3.0)
147
+ rubocop-ast (1.5.0)
148
+ parser (>= 3.0.1.1)
149
+ rubocop-rake (0.5.1)
150
+ rubocop
151
+ rubocop-rspec (2.3.0)
152
+ rubocop (~> 1.0)
153
+ rubocop-ast (>= 1.1.0)
154
+ ruby-next-core (0.12.0)
155
+ ruby-progressbar (1.11.0)
156
+ simplecov (0.21.2)
157
+ docile (~> 1.1)
158
+ simplecov-html (~> 0.11)
159
+ simplecov_json_formatter (~> 0.1)
160
+ simplecov-html (0.12.3)
161
+ simplecov_json_formatter (0.1.2)
162
+ thor (1.1.0)
163
+ timecop (0.9.4)
164
+ tzinfo (2.0.4)
165
+ concurrent-ruby (~> 1.0)
166
+ unicode-display_width (2.0.0)
167
+ webmock (3.12.2)
168
+ addressable (>= 2.3.6)
169
+ crack (>= 0.3.2)
170
+ hashdiff (>= 0.4.0, < 2.0.0)
171
+ yard (0.9.26)
172
+ yard-junk (0.0.9)
173
+ backports (>= 3.18)
174
+ rainbow
175
+ yard
176
+ zeitwerk (2.4.2)
177
+
178
+ PLATFORMS
179
+ ruby
180
+ x86_64-darwin-19
181
+ x86_64-linux
182
+
183
+ DEPENDENCIES
184
+ appraisal (= 2.4.0)
185
+ factory_bot (~> 6.1.0)
186
+ faker (= 2.17.0)
187
+ keycloak_rack!
188
+ pry (= 0.14.1)
189
+ rack-test (= 1.1.0)
190
+ rake (>= 13, < 14)
191
+ redcarpet
192
+ rspec (= 3.10.0)
193
+ rspec-json_expectations (= 2.2.0)
194
+ rubocop (= 1.13.0)
195
+ rubocop-rake (= 0.5.1)
196
+ rubocop-rspec (= 2.3.0)
197
+ simplecov (= 0.21.2)
198
+ timecop (= 0.9.4)
199
+ webmock (= 3.12.2)
200
+ yard (= 0.9.26)
201
+ yard-junk
202
+
203
+ BUNDLED WITH
204
+ 2.2.16
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "nokogiri", platforms: [:ruby]
6
+ gem "rails", ">= 6", "< 6.1.0"
7
+ gem "rspec-rails", "5.0.1"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,323 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ keycloak_rack (1.0.0)
5
+ activesupport (>= 4.2)
6
+ anyway_config (>= 2.1.0, < 3)
7
+ dry-auto_inject
8
+ dry-container
9
+ dry-effects (>= 0.0.1)
10
+ dry-initializer
11
+ dry-matcher
12
+ dry-monads (>= 1.3.5, < 2)
13
+ dry-struct (>= 1, < 2)
14
+ dry-types (>= 1, < 2)
15
+ dry-validation
16
+ jwt (>= 2.2.0, < 3)
17
+ rack (>= 2.0.0, < 3)
18
+ zeitwerk (>= 2.0.0, < 3)
19
+
20
+ GEM
21
+ remote: https://rubygems.org/
22
+ specs:
23
+ actioncable (6.0.3.6)
24
+ actionpack (= 6.0.3.6)
25
+ nio4r (~> 2.0)
26
+ websocket-driver (>= 0.6.1)
27
+ actionmailbox (6.0.3.6)
28
+ actionpack (= 6.0.3.6)
29
+ activejob (= 6.0.3.6)
30
+ activerecord (= 6.0.3.6)
31
+ activestorage (= 6.0.3.6)
32
+ activesupport (= 6.0.3.6)
33
+ mail (>= 2.7.1)
34
+ actionmailer (6.0.3.6)
35
+ actionpack (= 6.0.3.6)
36
+ actionview (= 6.0.3.6)
37
+ activejob (= 6.0.3.6)
38
+ mail (~> 2.5, >= 2.5.4)
39
+ rails-dom-testing (~> 2.0)
40
+ actionpack (6.0.3.6)
41
+ actionview (= 6.0.3.6)
42
+ activesupport (= 6.0.3.6)
43
+ rack (~> 2.0, >= 2.0.8)
44
+ rack-test (>= 0.6.3)
45
+ rails-dom-testing (~> 2.0)
46
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
47
+ actiontext (6.0.3.6)
48
+ actionpack (= 6.0.3.6)
49
+ activerecord (= 6.0.3.6)
50
+ activestorage (= 6.0.3.6)
51
+ activesupport (= 6.0.3.6)
52
+ nokogiri (>= 1.8.5)
53
+ actionview (6.0.3.6)
54
+ activesupport (= 6.0.3.6)
55
+ builder (~> 3.1)
56
+ erubi (~> 1.4)
57
+ rails-dom-testing (~> 2.0)
58
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
59
+ activejob (6.0.3.6)
60
+ activesupport (= 6.0.3.6)
61
+ globalid (>= 0.3.6)
62
+ activemodel (6.0.3.6)
63
+ activesupport (= 6.0.3.6)
64
+ activerecord (6.0.3.6)
65
+ activemodel (= 6.0.3.6)
66
+ activesupport (= 6.0.3.6)
67
+ activestorage (6.0.3.6)
68
+ actionpack (= 6.0.3.6)
69
+ activejob (= 6.0.3.6)
70
+ activerecord (= 6.0.3.6)
71
+ marcel (~> 1.0.0)
72
+ activesupport (6.0.3.6)
73
+ concurrent-ruby (~> 1.0, >= 1.0.2)
74
+ i18n (>= 0.7, < 2)
75
+ minitest (~> 5.1)
76
+ tzinfo (~> 1.1)
77
+ zeitwerk (~> 2.2, >= 2.2.2)
78
+ addressable (2.7.0)
79
+ public_suffix (>= 2.0.2, < 5.0)
80
+ anyway_config (2.1.0)
81
+ ruby-next-core (>= 0.11.0)
82
+ appraisal (2.4.0)
83
+ bundler
84
+ rake
85
+ thor (>= 0.14.0)
86
+ ast (2.4.2)
87
+ backports (3.21.0)
88
+ builder (3.2.4)
89
+ coderay (1.1.3)
90
+ concurrent-ruby (1.1.8)
91
+ crack (0.4.5)
92
+ rexml
93
+ crass (1.0.6)
94
+ diff-lcs (1.4.4)
95
+ docile (1.3.5)
96
+ dry-auto_inject (0.7.0)
97
+ dry-container (>= 0.3.4)
98
+ dry-configurable (0.12.1)
99
+ concurrent-ruby (~> 1.0)
100
+ dry-core (~> 0.5, >= 0.5.0)
101
+ dry-container (0.7.2)
102
+ concurrent-ruby (~> 1.0)
103
+ dry-configurable (~> 0.1, >= 0.1.3)
104
+ dry-core (0.5.0)
105
+ concurrent-ruby (~> 1.0)
106
+ dry-effects (0.1.5)
107
+ concurrent-ruby (~> 1.0)
108
+ dry-container (~> 0.7, >= 0.7.2)
109
+ dry-core (~> 0.4, >= 0.4.7)
110
+ dry-equalizer (~> 0.2, >= 0.2.2)
111
+ dry-inflector (~> 0.1, >= 0.1.2)
112
+ dry-initializer (~> 3.0)
113
+ dry-equalizer (0.3.0)
114
+ dry-inflector (0.2.0)
115
+ dry-initializer (3.0.4)
116
+ dry-logic (1.2.0)
117
+ concurrent-ruby (~> 1.0)
118
+ dry-core (~> 0.5, >= 0.5)
119
+ dry-matcher (0.9.0)
120
+ dry-core (~> 0.4, >= 0.4.8)
121
+ dry-monads (1.3.5)
122
+ concurrent-ruby (~> 1.0)
123
+ dry-core (~> 0.4, >= 0.4.4)
124
+ dry-equalizer
125
+ dry-schema (1.6.2)
126
+ concurrent-ruby (~> 1.0)
127
+ dry-configurable (~> 0.8, >= 0.8.3)
128
+ dry-core (~> 0.5, >= 0.5)
129
+ dry-initializer (~> 3.0)
130
+ dry-logic (~> 1.0)
131
+ dry-types (~> 1.5)
132
+ dry-struct (1.4.0)
133
+ dry-core (~> 0.5, >= 0.5)
134
+ dry-types (~> 1.5)
135
+ ice_nine (~> 0.11)
136
+ dry-types (1.5.1)
137
+ concurrent-ruby (~> 1.0)
138
+ dry-container (~> 0.3)
139
+ dry-core (~> 0.5, >= 0.5)
140
+ dry-inflector (~> 0.1, >= 0.1.2)
141
+ dry-logic (~> 1.0, >= 1.0.2)
142
+ dry-validation (1.6.0)
143
+ concurrent-ruby (~> 1.0)
144
+ dry-container (~> 0.7, >= 0.7.1)
145
+ dry-core (~> 0.4)
146
+ dry-equalizer (~> 0.2)
147
+ dry-initializer (~> 3.0)
148
+ dry-schema (~> 1.5, >= 1.5.2)
149
+ erubi (1.10.0)
150
+ factory_bot (6.1.0)
151
+ activesupport (>= 5.0.0)
152
+ faker (2.17.0)
153
+ i18n (>= 1.6, < 2)
154
+ globalid (0.4.2)
155
+ activesupport (>= 4.2.0)
156
+ hashdiff (1.0.1)
157
+ i18n (1.8.10)
158
+ concurrent-ruby (~> 1.0)
159
+ ice_nine (0.11.2)
160
+ jwt (2.2.3)
161
+ loofah (2.9.1)
162
+ crass (~> 1.0.2)
163
+ nokogiri (>= 1.5.9)
164
+ mail (2.7.1)
165
+ mini_mime (>= 0.1.1)
166
+ marcel (1.0.1)
167
+ method_source (1.0.0)
168
+ mini_mime (1.1.0)
169
+ mini_portile2 (2.5.1)
170
+ minitest (5.14.4)
171
+ nio4r (2.5.7)
172
+ nokogiri (1.11.3)
173
+ mini_portile2 (~> 2.5.0)
174
+ racc (~> 1.4)
175
+ nokogiri (1.11.3-x86_64-darwin)
176
+ racc (~> 1.4)
177
+ nokogiri (1.11.3-x86_64-linux)
178
+ racc (~> 1.4)
179
+ parallel (1.20.1)
180
+ parser (3.0.1.1)
181
+ ast (~> 2.4.1)
182
+ pry (0.14.1)
183
+ coderay (~> 1.1)
184
+ method_source (~> 1.0)
185
+ public_suffix (4.0.6)
186
+ racc (1.5.2)
187
+ rack (2.2.3)
188
+ rack-test (1.1.0)
189
+ rack (>= 1.0, < 3)
190
+ rails (6.0.3.6)
191
+ actioncable (= 6.0.3.6)
192
+ actionmailbox (= 6.0.3.6)
193
+ actionmailer (= 6.0.3.6)
194
+ actionpack (= 6.0.3.6)
195
+ actiontext (= 6.0.3.6)
196
+ actionview (= 6.0.3.6)
197
+ activejob (= 6.0.3.6)
198
+ activemodel (= 6.0.3.6)
199
+ activerecord (= 6.0.3.6)
200
+ activestorage (= 6.0.3.6)
201
+ activesupport (= 6.0.3.6)
202
+ bundler (>= 1.3.0)
203
+ railties (= 6.0.3.6)
204
+ sprockets-rails (>= 2.0.0)
205
+ rails-dom-testing (2.0.3)
206
+ activesupport (>= 4.2.0)
207
+ nokogiri (>= 1.6)
208
+ rails-html-sanitizer (1.3.0)
209
+ loofah (~> 2.3)
210
+ railties (6.0.3.6)
211
+ actionpack (= 6.0.3.6)
212
+ activesupport (= 6.0.3.6)
213
+ method_source
214
+ rake (>= 0.8.7)
215
+ thor (>= 0.20.3, < 2.0)
216
+ rainbow (3.0.0)
217
+ rake (13.0.3)
218
+ redcarpet (3.5.1)
219
+ regexp_parser (2.1.1)
220
+ rexml (3.2.5)
221
+ rspec (3.10.0)
222
+ rspec-core (~> 3.10.0)
223
+ rspec-expectations (~> 3.10.0)
224
+ rspec-mocks (~> 3.10.0)
225
+ rspec-core (3.10.1)
226
+ rspec-support (~> 3.10.0)
227
+ rspec-expectations (3.10.1)
228
+ diff-lcs (>= 1.2.0, < 2.0)
229
+ rspec-support (~> 3.10.0)
230
+ rspec-json_expectations (2.2.0)
231
+ rspec-mocks (3.10.2)
232
+ diff-lcs (>= 1.2.0, < 2.0)
233
+ rspec-support (~> 3.10.0)
234
+ rspec-rails (5.0.1)
235
+ actionpack (>= 5.2)
236
+ activesupport (>= 5.2)
237
+ railties (>= 5.2)
238
+ rspec-core (~> 3.10)
239
+ rspec-expectations (~> 3.10)
240
+ rspec-mocks (~> 3.10)
241
+ rspec-support (~> 3.10)
242
+ rspec-support (3.10.2)
243
+ rubocop (1.13.0)
244
+ parallel (~> 1.10)
245
+ parser (>= 3.0.0.0)
246
+ rainbow (>= 2.2.2, < 4.0)
247
+ regexp_parser (>= 1.8, < 3.0)
248
+ rexml
249
+ rubocop-ast (>= 1.2.0, < 2.0)
250
+ ruby-progressbar (~> 1.7)
251
+ unicode-display_width (>= 1.4.0, < 3.0)
252
+ rubocop-ast (1.5.0)
253
+ parser (>= 3.0.1.1)
254
+ rubocop-rake (0.5.1)
255
+ rubocop
256
+ rubocop-rspec (2.3.0)
257
+ rubocop (~> 1.0)
258
+ rubocop-ast (>= 1.1.0)
259
+ ruby-next-core (0.12.0)
260
+ ruby-progressbar (1.11.0)
261
+ simplecov (0.21.2)
262
+ docile (~> 1.1)
263
+ simplecov-html (~> 0.11)
264
+ simplecov_json_formatter (~> 0.1)
265
+ simplecov-html (0.12.3)
266
+ simplecov_json_formatter (0.1.2)
267
+ sprockets (4.0.2)
268
+ concurrent-ruby (~> 1.0)
269
+ rack (> 1, < 3)
270
+ sprockets-rails (3.2.2)
271
+ actionpack (>= 4.0)
272
+ activesupport (>= 4.0)
273
+ sprockets (>= 3.0.0)
274
+ thor (1.1.0)
275
+ thread_safe (0.3.6)
276
+ timecop (0.9.4)
277
+ tzinfo (1.2.9)
278
+ thread_safe (~> 0.1)
279
+ unicode-display_width (2.0.0)
280
+ webmock (3.12.2)
281
+ addressable (>= 2.3.6)
282
+ crack (>= 0.3.2)
283
+ hashdiff (>= 0.4.0, < 2.0.0)
284
+ websocket-driver (0.7.3)
285
+ websocket-extensions (>= 0.1.0)
286
+ websocket-extensions (0.1.5)
287
+ yard (0.9.26)
288
+ yard-junk (0.0.9)
289
+ backports (>= 3.18)
290
+ rainbow
291
+ yard
292
+ zeitwerk (2.4.2)
293
+
294
+ PLATFORMS
295
+ ruby
296
+ x86_64-darwin-19
297
+ x86_64-linux
298
+
299
+ DEPENDENCIES
300
+ appraisal (= 2.4.0)
301
+ factory_bot (~> 6.1.0)
302
+ faker (= 2.17.0)
303
+ keycloak_rack!
304
+ nokogiri
305
+ pry (= 0.14.1)
306
+ rack-test (= 1.1.0)
307
+ rails (>= 6, < 6.1.0)
308
+ rake (>= 13, < 14)
309
+ redcarpet
310
+ rspec (= 3.10.0)
311
+ rspec-json_expectations (= 2.2.0)
312
+ rspec-rails (= 5.0.1)
313
+ rubocop (= 1.13.0)
314
+ rubocop-rake (= 0.5.1)
315
+ rubocop-rspec (= 2.3.0)
316
+ simplecov (= 0.21.2)
317
+ timecop (= 0.9.4)
318
+ webmock (= 3.12.2)
319
+ yard (= 0.9.26)
320
+ yard-junk
321
+
322
+ BUNDLED WITH
323
+ 2.2.16