doorkeeper_sso 0.1.0.pre.alpha → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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