masq2 1.0.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.
Files changed (92) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +83 -0
  4. data/CODE_OF_CONDUCT.md +135 -0
  5. data/CONTRIBUTING.md +151 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +426 -0
  8. data/SECURITY.md +23 -0
  9. data/app/assets/images/masq/favicon.ico +0 -0
  10. data/app/assets/images/masq/openid_symbol.png +0 -0
  11. data/app/assets/images/masq/seatbelt_icon.png +0 -0
  12. data/app/assets/images/masq/seatbelt_icon_gray.png +0 -0
  13. data/app/assets/images/masq/seatbelt_icon_high.png +0 -0
  14. data/app/assets/stylesheets/masq/application.css.erb +61 -0
  15. data/app/controllers/masq/accounts_controller.rb +132 -0
  16. data/app/controllers/masq/base_controller.rb +78 -0
  17. data/app/controllers/masq/consumer_controller.rb +144 -0
  18. data/app/controllers/masq/info_controller.rb +23 -0
  19. data/app/controllers/masq/passwords_controller.rb +42 -0
  20. data/app/controllers/masq/personas_controller.rb +75 -0
  21. data/app/controllers/masq/server_controller.rb +247 -0
  22. data/app/controllers/masq/sessions_controller.rb +58 -0
  23. data/app/controllers/masq/sites_controller.rb +60 -0
  24. data/app/controllers/masq/yubikey_associations_controller.rb +25 -0
  25. data/app/helpers/masq/application_helper.rb +57 -0
  26. data/app/helpers/masq/personas_helper.rb +15 -0
  27. data/app/helpers/masq/server_helper.rb +15 -0
  28. data/app/mailers/masq/account_mailer.rb +17 -0
  29. data/app/models/masq/account.rb +245 -0
  30. data/app/models/masq/open_id_request.rb +42 -0
  31. data/app/models/masq/persona.rb +61 -0
  32. data/app/models/masq/release_policy.rb +11 -0
  33. data/app/models/masq/site.rb +68 -0
  34. data/app/views/layouts/masq/base.html.erb +70 -0
  35. data/app/views/layouts/masq/consumer.html.erb +30 -0
  36. data/app/views/masq/account_mailer/forgot_password.html.erb +3 -0
  37. data/app/views/masq/account_mailer/forgot_password.text.erb +3 -0
  38. data/app/views/masq/account_mailer/signup_notification.html.erb +5 -0
  39. data/app/views/masq/account_mailer/signup_notification.text.erb +5 -0
  40. data/app/views/masq/accounts/_hcard.html.erb +29 -0
  41. data/app/views/masq/accounts/edit.html.erb +100 -0
  42. data/app/views/masq/accounts/new.html.erb +27 -0
  43. data/app/views/masq/accounts/show.html.erb +4 -0
  44. data/app/views/masq/accounts/show.xrds.builder +40 -0
  45. data/app/views/masq/consumer/index.html.erb +31 -0
  46. data/app/views/masq/consumer/start.html.erb +2 -0
  47. data/app/views/masq/info/help.html.erb +8 -0
  48. data/app/views/masq/info/index.html.erb +5 -0
  49. data/app/views/masq/info/safe_login.html.erb +24 -0
  50. data/app/views/masq/passwords/edit.html.erb +13 -0
  51. data/app/views/masq/passwords/new.html.erb +11 -0
  52. data/app/views/masq/personas/_form.html.erb +159 -0
  53. data/app/views/masq/personas/edit.html.erb +9 -0
  54. data/app/views/masq/personas/index.html.erb +17 -0
  55. data/app/views/masq/personas/new.html.erb +9 -0
  56. data/app/views/masq/server/decide.html.erb +146 -0
  57. data/app/views/masq/server/index.xrds.builder +19 -0
  58. data/app/views/masq/server/seatbelt_config.xml.builder +24 -0
  59. data/app/views/masq/server/seatbelt_login_state.xml.builder +4 -0
  60. data/app/views/masq/sessions/new.html.erb +27 -0
  61. data/app/views/masq/shared/_error_messages.html.erb +12 -0
  62. data/app/views/masq/sites/edit.html.erb +42 -0
  63. data/app/views/masq/sites/index.html.erb +20 -0
  64. data/config/initializers/configuration.rb +5 -0
  65. data/config/initializers/mime_types.rb +1 -0
  66. data/config/initializers/requires.rb +6 -0
  67. data/config/locales/de.yml +281 -0
  68. data/config/locales/en.yml +271 -0
  69. data/config/locales/es.yml +254 -0
  70. data/config/locales/nl.yml +258 -0
  71. data/config/locales/rails.de.yml +225 -0
  72. data/config/locales/ru.yml +272 -0
  73. data/config/masq.example.yml +132 -0
  74. data/config/routes.rb +41 -0
  75. data/db/migrate/20120312120000_masq_schema.rb +152 -0
  76. data/db/migrate/20130626220915_remame_last_authenticated_with_yubikey_on_masq_accounts.rb +11 -0
  77. data/db/migrate/20130704205532_add_first_and_lastname_columns_to_personas.rb +11 -0
  78. data/db/migrate/20130807060329_change_open_id_associations_server_url_column_type.rb +22 -0
  79. data/lib/masq/active_record_openid_store/association.rb +16 -0
  80. data/lib/masq/active_record_openid_store/nonce.rb +9 -0
  81. data/lib/masq/active_record_openid_store/openid_ar_store.rb +58 -0
  82. data/lib/masq/authenticated_system.rb +136 -0
  83. data/lib/masq/engine.rb +12 -0
  84. data/lib/masq/openid_server_system.rb +110 -0
  85. data/lib/masq/signup.rb +53 -0
  86. data/lib/masq/version.rb +5 -0
  87. data/lib/masq.rb +50 -0
  88. data/lib/masq2.rb +1 -0
  89. data/lib/tasks/masq_tasks.rake +58 -0
  90. data.tar.gz.sig +2 -0
  91. metadata +377 -0
  92. metadata.gz.sig +0 -0
metadata ADDED
@@ -0,0 +1,377 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: masq2
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Peter Boling
8
+ - Dennis Reimann
9
+ - Bardoe Besselaar
10
+ - Nikita Vasiliev
11
+ bindir: bin
12
+ cert_chain:
13
+ - |
14
+ -----BEGIN CERTIFICATE-----
15
+ MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
16
+ ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
17
+ A2NvbTAeFw0yNDA5MjAwODU4NDJaFw0yNTA5MjAwODU4NDJaMEMxFTATBgNVBAMM
18
+ DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
19
+ LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAjrxsKObI
20
+ rFQjBpzvVfqnT6JlF8/pkpgEEjFh7ex3zIerfuHzZvSrx+sRDGxQ8koWWG0Wjx8s
21
+ wkBZ5dIqvl0g3sWP5asa28u/09opxkQTC1Ao77iYxcBcwoCe/Dpf1m4Q/m6oH0kL
22
+ 2AZVNJQL3UkqAcLS0tsj/s/jAKnVlsaZZE5gQiIIi8HtkvSsajtx+Cq2AxDvcWvV
23
+ /CliD+pmzYkTjvjwGm8yeyFGGGgrisJMryiZdZlkTwrQSjCzudIKbLeuG8Se4JTD
24
+ TAcT+rPubr27v1jwmtIjtiot3rf4nof7LHLb122a/0VR7cC7xPLnXw0Cq1BShvoq
25
+ /GKRdSwMNinTOGkFTK1gKnjN+3iD4zyXU3XO3CXoTr+Ju8fXPN1x4tpOMgbv8dme
26
+ WbcQMOH9ZjmA5w0bSVRL1c3NhRRpUzrKTNXBEvqOyWjUnintxWKj+cRXx+z+dUgI
27
+ dL3kj68fcsiTgl75In3C485pnCMmq1eLuVoiy3jkLNOn2lHeLt9ZK63LAgMBAAGj
28
+ fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRhfc+2UaVYd74p
29
+ yJ1JclGiUYN8+jAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
30
+ A1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD
31
+ ggGBAA4fLU2+mQ++jBhVM2IeyvQdw1nm+0thkH4Ldv8ZOBm5ZxCPGIMoYliDDzg4
32
+ 4JDFxZR1wR4sdrz/K5tWtEkN23SKzopwbNb1NIQRSLQ7nOoc+4bkuz9xwKinmIvF
33
+ D+5qsl2S27WLKFreMDtGoh0CREIMBUxU4rGTh0gtzmweGR+fnOShg4Jo0kxrjU5h
34
+ uYk/uVE+bn/jOEGs43GvKXZLyshpBrZjQ+ArbvxDht5t35zbSxerbUxUPZUbXUCW
35
+ tTyh38a9UYjAAHvnh6Y4Fi9wd4/pGNsektrzB3z/zlVj4YF2TMLX9XfNJWEGRGpO
36
+ sSkLYdtEX1WQAmuZtActVW2cL3HdQaRbiv7VbfpA0eSk0ZdZHvBCl516ZZu10uX6
37
+ 82W1mg6fuezdpeBOiXwrEbZSt/oGiF4V511F6nd55p0okwHc/6nS10F/3aKJ4gwC
38
+ I5o+DRfXQHqKucx1ldFHvI2rE/kSCWqGTHN2eyu1sqCPeOoIMxrltJhaejKPkxqj
39
+ zaF9Og==
40
+ -----END CERTIFICATE-----
41
+ date: 2025-04-04 00:00:00.000000000 Z
42
+ dependencies:
43
+ - !ruby/object:Gem::Dependency
44
+ name: erb
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: i18n_data
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: rails
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: 5.2.8.1
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: 5.2.8.1
85
+ - !ruby/object:Gem::Dependency
86
+ name: ruby-openid2
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '3.1'
92
+ type: :runtime
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '3.1'
99
+ - !ruby/object:Gem::Dependency
100
+ name: ruby-yadis
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ type: :runtime
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ - !ruby/object:Gem::Dependency
114
+ name: version_gem
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '1.1'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 1.1.6
123
+ type: :runtime
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '1.1'
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 1.1.6
133
+ - !ruby/object:Gem::Dependency
134
+ name: yubikey
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ type: :runtime
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ - !ruby/object:Gem::Dependency
148
+ name: stone_checksums
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '1.0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '1.0'
161
+ - !ruby/object:Gem::Dependency
162
+ name: rake
163
+ requirement: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '13.0'
168
+ type: :development
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: '13.0'
175
+ - !ruby/object:Gem::Dependency
176
+ name: kettle-soup-cover
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '1.0'
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: 1.0.5
185
+ type: :development
186
+ prerelease: false
187
+ version_requirements: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - "~>"
190
+ - !ruby/object:Gem::Version
191
+ version: '1.0'
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: 1.0.5
195
+ - !ruby/object:Gem::Dependency
196
+ name: rails-controller-testing
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '1.0'
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: 1.0.5
205
+ type: :development
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - "~>"
210
+ - !ruby/object:Gem::Version
211
+ version: '1.0'
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: 1.0.5
215
+ - !ruby/object:Gem::Dependency
216
+ name: rubocop-lts
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '18.2'
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ version: 18.2.1
225
+ type: :development
226
+ prerelease: false
227
+ version_requirements: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - "~>"
230
+ - !ruby/object:Gem::Version
231
+ version: '18.2'
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: 18.2.1
235
+ description: Masq2 supports OpenID 2.0 and supports SReg, AX (fetch and store requests)
236
+ and PAPE as well as some custom additions like multi-factor authentication using
237
+ a yubikey
238
+ email:
239
+ - peter.boling@gmail.com
240
+ - oauth-ruby@googlegroups.com
241
+ executables: []
242
+ extensions: []
243
+ extra_rdoc_files:
244
+ - CHANGELOG.md
245
+ - CODE_OF_CONDUCT.md
246
+ - CONTRIBUTING.md
247
+ - LICENSE.txt
248
+ - README.md
249
+ - SECURITY.md
250
+ files:
251
+ - CHANGELOG.md
252
+ - CODE_OF_CONDUCT.md
253
+ - CONTRIBUTING.md
254
+ - LICENSE.txt
255
+ - README.md
256
+ - SECURITY.md
257
+ - app/assets/images/masq/favicon.ico
258
+ - app/assets/images/masq/openid_symbol.png
259
+ - app/assets/images/masq/seatbelt_icon.png
260
+ - app/assets/images/masq/seatbelt_icon_gray.png
261
+ - app/assets/images/masq/seatbelt_icon_high.png
262
+ - app/assets/stylesheets/masq/application.css.erb
263
+ - app/controllers/masq/accounts_controller.rb
264
+ - app/controllers/masq/base_controller.rb
265
+ - app/controllers/masq/consumer_controller.rb
266
+ - app/controllers/masq/info_controller.rb
267
+ - app/controllers/masq/passwords_controller.rb
268
+ - app/controllers/masq/personas_controller.rb
269
+ - app/controllers/masq/server_controller.rb
270
+ - app/controllers/masq/sessions_controller.rb
271
+ - app/controllers/masq/sites_controller.rb
272
+ - app/controllers/masq/yubikey_associations_controller.rb
273
+ - app/helpers/masq/application_helper.rb
274
+ - app/helpers/masq/personas_helper.rb
275
+ - app/helpers/masq/server_helper.rb
276
+ - app/mailers/masq/account_mailer.rb
277
+ - app/models/masq/account.rb
278
+ - app/models/masq/open_id_request.rb
279
+ - app/models/masq/persona.rb
280
+ - app/models/masq/release_policy.rb
281
+ - app/models/masq/site.rb
282
+ - app/views/layouts/masq/base.html.erb
283
+ - app/views/layouts/masq/consumer.html.erb
284
+ - app/views/masq/account_mailer/forgot_password.html.erb
285
+ - app/views/masq/account_mailer/forgot_password.text.erb
286
+ - app/views/masq/account_mailer/signup_notification.html.erb
287
+ - app/views/masq/account_mailer/signup_notification.text.erb
288
+ - app/views/masq/accounts/_hcard.html.erb
289
+ - app/views/masq/accounts/edit.html.erb
290
+ - app/views/masq/accounts/new.html.erb
291
+ - app/views/masq/accounts/show.html.erb
292
+ - app/views/masq/accounts/show.xrds.builder
293
+ - app/views/masq/consumer/index.html.erb
294
+ - app/views/masq/consumer/start.html.erb
295
+ - app/views/masq/info/help.html.erb
296
+ - app/views/masq/info/index.html.erb
297
+ - app/views/masq/info/safe_login.html.erb
298
+ - app/views/masq/passwords/edit.html.erb
299
+ - app/views/masq/passwords/new.html.erb
300
+ - app/views/masq/personas/_form.html.erb
301
+ - app/views/masq/personas/edit.html.erb
302
+ - app/views/masq/personas/index.html.erb
303
+ - app/views/masq/personas/new.html.erb
304
+ - app/views/masq/server/decide.html.erb
305
+ - app/views/masq/server/index.xrds.builder
306
+ - app/views/masq/server/seatbelt_config.xml.builder
307
+ - app/views/masq/server/seatbelt_login_state.xml.builder
308
+ - app/views/masq/sessions/new.html.erb
309
+ - app/views/masq/shared/_error_messages.html.erb
310
+ - app/views/masq/sites/edit.html.erb
311
+ - app/views/masq/sites/index.html.erb
312
+ - config/initializers/configuration.rb
313
+ - config/initializers/mime_types.rb
314
+ - config/initializers/requires.rb
315
+ - config/locales/de.yml
316
+ - config/locales/en.yml
317
+ - config/locales/es.yml
318
+ - config/locales/nl.yml
319
+ - config/locales/rails.de.yml
320
+ - config/locales/ru.yml
321
+ - config/masq.example.yml
322
+ - config/routes.rb
323
+ - db/migrate/20120312120000_masq_schema.rb
324
+ - db/migrate/20130626220915_remame_last_authenticated_with_yubikey_on_masq_accounts.rb
325
+ - db/migrate/20130704205532_add_first_and_lastname_columns_to_personas.rb
326
+ - db/migrate/20130807060329_change_open_id_associations_server_url_column_type.rb
327
+ - lib/masq.rb
328
+ - lib/masq/active_record_openid_store/association.rb
329
+ - lib/masq/active_record_openid_store/nonce.rb
330
+ - lib/masq/active_record_openid_store/openid_ar_store.rb
331
+ - lib/masq/authenticated_system.rb
332
+ - lib/masq/engine.rb
333
+ - lib/masq/openid_server_system.rb
334
+ - lib/masq/signup.rb
335
+ - lib/masq/version.rb
336
+ - lib/masq2.rb
337
+ - lib/tasks/masq_tasks.rake
338
+ homepage: https://github.com/oauth-xx/masq2
339
+ licenses:
340
+ - MIT
341
+ metadata:
342
+ homepage_uri: https://railsbling.com/tags/masq2/
343
+ source_code_uri: https://github.com/oauth-xx/masq2/tree/v1.0.0
344
+ changelog_uri: https://github.com/oauth-xx/masq2/blob/v1.0.0/CHANGELOG.md
345
+ bug_tracker_uri: https://github.com/oauth-xx/masq2/issues
346
+ documentation_uri: https://www.rubydoc.info/gems/masq2/1.0.0
347
+ wiki_uri: https://github.com/oauth-xx/masq2/wiki
348
+ mailing_list_uri: https://groups.google.com/g/oauth-ruby
349
+ funding_uri: https://liberapay.com/pboling
350
+ rubygems_mfa_required: 'true'
351
+ rdoc_options:
352
+ - "--title"
353
+ - masq2 - Mountable Rails engine that provides OpenID 2.0 server/identity provider
354
+ functionality
355
+ - "--main"
356
+ - README.md
357
+ - "--line-numbers"
358
+ - "--inline-source"
359
+ - "--quiet"
360
+ require_paths:
361
+ - lib
362
+ required_ruby_version: !ruby/object:Gem::Requirement
363
+ requirements:
364
+ - - ">="
365
+ - !ruby/object:Gem::Version
366
+ version: '2.7'
367
+ required_rubygems_version: !ruby/object:Gem::Requirement
368
+ requirements:
369
+ - - ">="
370
+ - !ruby/object:Gem::Version
371
+ version: '0'
372
+ requirements: []
373
+ rubygems_version: 3.6.6
374
+ specification_version: 4
375
+ summary: Mountable Rails engine that provides OpenID 2.0 server/identity provider
376
+ functionality
377
+ test_files: []
metadata.gz.sig ADDED
Binary file