doorkeeper_sso 0.1.0.pre.alpha → 0.2.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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +0 -5
  3. data/app/controllers/sso/application_controller.rb +6 -0
  4. data/app/controllers/sso/sessions_controller.rb +76 -12
  5. data/app/models/sso/client.rb +28 -0
  6. data/app/models/sso/session.rb +65 -41
  7. data/app/serializers/sso/owner_serializer.rb +5 -0
  8. data/app/serializers/sso/session_serializer.rb +7 -0
  9. data/db/migrate/{20150414102248_create_sso_sessions.rb → 20150521102248_create_sso_sessions.rb} +2 -3
  10. data/db/migrate/20150521142926_create_sso_clients.rb +18 -0
  11. data/db/migrate/20150521165143_remove_extra_columns_from_sso_sessions.rb +9 -0
  12. data/lib/doorkeeper_sso.rb +1 -0
  13. data/lib/sso.rb +4 -0
  14. data/lib/sso/doorkeeper/access_grant_mixin.rb +12 -0
  15. data/lib/sso/doorkeeper/access_token_mixin.rb +12 -0
  16. data/lib/sso/doorkeeper/application_mixin.rb +12 -0
  17. data/lib/sso/doorkeeper/authorizations_controller_mixin.rb +16 -4
  18. data/lib/sso/doorkeeper/tokens_controller_mixin.rb +15 -5
  19. data/lib/sso/engine.rb +27 -1
  20. data/lib/sso/engine.rb.orig +46 -0
  21. data/lib/sso/logging.rb +1 -1
  22. data/lib/sso/version.rb +1 -1
  23. data/lib/sso/warden/hooks/after_authentication.rb +17 -2
  24. data/lib/sso/warden/hooks/before_logout.rb +14 -5
  25. data/lib/sso/warden/hooks/session_check.rb +45 -0
  26. data/spec/api/schemas/session.json +35 -0
  27. data/spec/controllers/sso/sessions_controller_spec.rb +49 -9
  28. data/spec/fabricators/api_application_fabricator.rb +2 -2
  29. data/spec/fabricators/sso_client_fabricator.rb +5 -0
  30. data/spec/fabricators/sso_session_fabricator.rb +1 -2
  31. data/spec/fabricators/user_fabricator.rb +5 -3
  32. data/spec/lib/doorkeeper/access_grant_mixin_spec.rb +29 -0
  33. data/spec/lib/doorkeeper/access_token_mixin_spec.rb +29 -0
  34. data/spec/lib/doorkeeper/application_mixin_spec.rb +29 -0
  35. data/spec/lib/sso/warden/hooks/after_authentication_spec.rb +37 -0
  36. data/spec/lib/sso/warden/hooks/before_logout_spec.rb +30 -0
  37. data/spec/models/sso/client_spec.rb +15 -0
  38. data/spec/models/sso/session_spec.rb +108 -71
  39. data/spec/spec_helper.rb +1 -0
  40. data/spec/support/api_schema_matcher.rb +7 -0
  41. data/spec/test_app/Rakefile +5 -0
  42. data/spec/test_app/db/schema.rb +15 -1
  43. metadata +75 -18
@@ -1,4 +1,16 @@
1
- ActiveRecord::Schema.define do
1
+ # This file is auto-generated from the current state of the database. Instead
2
+ # of editing this file, please use the migrations feature of Active Record to
3
+ # incrementally modify your database, and then regenerate this schema definition.
4
+ #
5
+ # Note that this schema.rb definition is the authoritative source for your
6
+ # database schema. If you need to create the application database on another
7
+ # system, you should be using db:schema:load, not running all the migrations
8
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
10
+ #
11
+ # It's strongly recommended that you check this file into your version control system.
12
+
13
+ ActiveRecord::Schema.define(version: 20150519065143) do
2
14
 
3
15
  # These are extensions that must be enabled in order to support this database
4
16
  enable_extension "plpgsql"
@@ -67,6 +79,7 @@ ActiveRecord::Schema.define do
67
79
  t.inet "last_sign_in_ip"
68
80
  t.datetime "created_at"
69
81
  t.datetime "updated_at"
82
+ t.string "name"
70
83
  t.string "first_name"
71
84
  t.string "last_name"
72
85
  t.string "lang", default: "EN"
@@ -75,4 +88,5 @@ ActiveRecord::Schema.define do
75
88
 
76
89
  add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree
77
90
  add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
91
+
78
92
  end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doorkeeper_sso
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre.alpha
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Wong
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-20 00:00:00.000000000 Z
11
+ date: 2015-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: devise
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '3.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.4'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: doorkeeper
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 2.0.0
47
+ version: '2.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 2.0.0
54
+ version: '2.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: omniauth-oauth2
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: 1.2.3
97
+ - !ruby/object:Gem::Dependency
98
+ name: active_model_serializers
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.10.0.rc1
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.10.0.rc1
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: database_cleaner
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -252,16 +266,30 @@ dependencies:
252
266
  name: ffaker
253
267
  requirement: !ruby/object:Gem::Requirement
254
268
  requirements:
255
- - - ">="
269
+ - - "~>"
256
270
  - !ruby/object:Gem::Version
257
- version: '1'
271
+ version: '2'
258
272
  type: :development
259
273
  prerelease: false
260
274
  version_requirements: !ruby/object:Gem::Requirement
261
275
  requirements:
262
- - - ">="
276
+ - - "~>"
263
277
  - !ruby/object:Gem::Version
264
- version: '1'
278
+ version: '2'
279
+ - !ruby/object:Gem::Dependency
280
+ name: json-schema
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - "~>"
284
+ - !ruby/object:Gem::Version
285
+ version: '2.5'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - "~>"
291
+ - !ruby/object:Gem::Version
292
+ version: '2.5'
265
293
  description: Leveraging Doorkeeper as single-sign-on OAuth server. To provide true
266
294
  single-sign-OUT, every request on an OAuth client app is verified with the SSO server.
267
295
  email:
@@ -275,34 +303,54 @@ files:
275
303
  - Rakefile
276
304
  - app/assets/javascripts/sso/application.js
277
305
  - app/assets/stylesheets/sso/application.css
306
+ - app/controllers/sso/application_controller.rb
278
307
  - app/controllers/sso/sessions_controller.rb
279
308
  - app/helpers/sso/application_helper.rb
309
+ - app/models/sso/client.rb
280
310
  - app/models/sso/session.rb
311
+ - app/serializers/sso/owner_serializer.rb
312
+ - app/serializers/sso/session_serializer.rb
281
313
  - app/views/layouts/doorkeeper/admin.html.erb
282
314
  - app/views/layouts/doorkeeper/application.html.erb
283
315
  - app/views/layouts/sso/application.html.erb
284
316
  - config/routes.rb
285
- - db/migrate/20150414102248_create_sso_sessions.rb
317
+ - db/migrate/20150521102248_create_sso_sessions.rb
318
+ - db/migrate/20150521142926_create_sso_clients.rb
319
+ - db/migrate/20150521165143_remove_extra_columns_from_sso_sessions.rb
286
320
  - lib/doorkeeper_sso.rb
287
321
  - lib/sso.rb
322
+ - lib/sso/doorkeeper/access_grant_mixin.rb
323
+ - lib/sso/doorkeeper/access_token_mixin.rb
324
+ - lib/sso/doorkeeper/application_mixin.rb
288
325
  - lib/sso/doorkeeper/authorizations_controller_mixin.rb
289
326
  - lib/sso/doorkeeper/tokens_controller_mixin.rb
290
327
  - lib/sso/engine.rb
328
+ - lib/sso/engine.rb.orig
291
329
  - lib/sso/logging.rb
292
330
  - lib/sso/version.rb
293
331
  - lib/sso/warden/hooks/after_authentication.rb
294
332
  - lib/sso/warden/hooks/before_logout.rb
333
+ - lib/sso/warden/hooks/session_check.rb
295
334
  - lib/tasks/sso_tasks.rake
335
+ - spec/api/schemas/session.json
296
336
  - spec/controllers/sso/sessions_controller_spec.rb
297
337
  - spec/fabricators/api_application_fabricator.rb
298
338
  - spec/fabricators/doorkeeper_access_grant_fabricator.rb
299
339
  - spec/fabricators/doorkeeper_access_token_fabricator.rb
300
340
  - spec/fabricators/doorkeeper_application_fabricator.rb
341
+ - spec/fabricators/sso_client_fabricator.rb
301
342
  - spec/fabricators/sso_session_fabricator.rb
302
343
  - spec/fabricators/user_fabricator.rb
344
+ - spec/lib/doorkeeper/access_grant_mixin_spec.rb
345
+ - spec/lib/doorkeeper/access_token_mixin_spec.rb
346
+ - spec/lib/doorkeeper/application_mixin_spec.rb
347
+ - spec/lib/sso/warden/hooks/after_authentication_spec.rb
348
+ - spec/lib/sso/warden/hooks/before_logout_spec.rb
349
+ - spec/models/sso/client_spec.rb
303
350
  - spec/models/sso/session_spec.rb
304
351
  - spec/rails_helper.rb
305
352
  - spec/spec_helper.rb
353
+ - spec/support/api_schema_matcher.rb
306
354
  - spec/support/database_cleaner.rb
307
355
  - spec/support/devise.rb
308
356
  - spec/support/fabrication.rb
@@ -328,12 +376,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
328
376
  requirements:
329
377
  - - ">="
330
378
  - !ruby/object:Gem::Version
331
- version: '0'
379
+ version: '1.9'
332
380
  required_rubygems_version: !ruby/object:Gem::Requirement
333
381
  requirements:
334
- - - ">"
382
+ - - ">="
335
383
  - !ruby/object:Gem::Version
336
- version: 1.3.1
384
+ version: '0'
337
385
  requirements: []
338
386
  rubyforge_project:
339
387
  rubygems_version: 2.4.5
@@ -341,16 +389,25 @@ signing_key:
341
389
  specification_version: 4
342
390
  summary: Leveraging Doorkeeper as single-sign-on OAuth server.
343
391
  test_files:
392
+ - spec/api/schemas/session.json
344
393
  - spec/controllers/sso/sessions_controller_spec.rb
345
394
  - spec/fabricators/api_application_fabricator.rb
346
395
  - spec/fabricators/doorkeeper_access_grant_fabricator.rb
347
396
  - spec/fabricators/doorkeeper_access_token_fabricator.rb
348
397
  - spec/fabricators/doorkeeper_application_fabricator.rb
398
+ - spec/fabricators/sso_client_fabricator.rb
349
399
  - spec/fabricators/sso_session_fabricator.rb
350
400
  - spec/fabricators/user_fabricator.rb
401
+ - spec/lib/doorkeeper/access_grant_mixin_spec.rb
402
+ - spec/lib/doorkeeper/access_token_mixin_spec.rb
403
+ - spec/lib/doorkeeper/application_mixin_spec.rb
404
+ - spec/lib/sso/warden/hooks/after_authentication_spec.rb
405
+ - spec/lib/sso/warden/hooks/before_logout_spec.rb
406
+ - spec/models/sso/client_spec.rb
351
407
  - spec/models/sso/session_spec.rb
352
408
  - spec/rails_helper.rb
353
409
  - spec/spec_helper.rb
410
+ - spec/support/api_schema_matcher.rb
354
411
  - spec/support/database_cleaner.rb
355
412
  - spec/support/devise.rb
356
413
  - spec/support/fabrication.rb