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.
- checksums.yaml +4 -4
- data/Rakefile +0 -5
- data/app/controllers/sso/application_controller.rb +6 -0
- data/app/controllers/sso/sessions_controller.rb +76 -12
- data/app/models/sso/client.rb +28 -0
- data/app/models/sso/session.rb +65 -41
- data/app/serializers/sso/owner_serializer.rb +5 -0
- data/app/serializers/sso/session_serializer.rb +7 -0
- data/db/migrate/{20150414102248_create_sso_sessions.rb → 20150521102248_create_sso_sessions.rb} +2 -3
- data/db/migrate/20150521142926_create_sso_clients.rb +18 -0
- data/db/migrate/20150521165143_remove_extra_columns_from_sso_sessions.rb +9 -0
- data/lib/doorkeeper_sso.rb +1 -0
- data/lib/sso.rb +4 -0
- data/lib/sso/doorkeeper/access_grant_mixin.rb +12 -0
- data/lib/sso/doorkeeper/access_token_mixin.rb +12 -0
- data/lib/sso/doorkeeper/application_mixin.rb +12 -0
- data/lib/sso/doorkeeper/authorizations_controller_mixin.rb +16 -4
- data/lib/sso/doorkeeper/tokens_controller_mixin.rb +15 -5
- data/lib/sso/engine.rb +27 -1
- data/lib/sso/engine.rb.orig +46 -0
- data/lib/sso/logging.rb +1 -1
- data/lib/sso/version.rb +1 -1
- data/lib/sso/warden/hooks/after_authentication.rb +17 -2
- data/lib/sso/warden/hooks/before_logout.rb +14 -5
- data/lib/sso/warden/hooks/session_check.rb +45 -0
- data/spec/api/schemas/session.json +35 -0
- data/spec/controllers/sso/sessions_controller_spec.rb +49 -9
- data/spec/fabricators/api_application_fabricator.rb +2 -2
- data/spec/fabricators/sso_client_fabricator.rb +5 -0
- data/spec/fabricators/sso_session_fabricator.rb +1 -2
- data/spec/fabricators/user_fabricator.rb +5 -3
- data/spec/lib/doorkeeper/access_grant_mixin_spec.rb +29 -0
- data/spec/lib/doorkeeper/access_token_mixin_spec.rb +29 -0
- data/spec/lib/doorkeeper/application_mixin_spec.rb +29 -0
- data/spec/lib/sso/warden/hooks/after_authentication_spec.rb +37 -0
- data/spec/lib/sso/warden/hooks/before_logout_spec.rb +30 -0
- data/spec/models/sso/client_spec.rb +15 -0
- data/spec/models/sso/session_spec.rb +108 -71
- data/spec/spec_helper.rb +1 -0
- data/spec/support/api_schema_matcher.rb +7 -0
- data/spec/test_app/Rakefile +5 -0
- data/spec/test_app/db/schema.rb +15 -1
- metadata +75 -18
data/spec/test_app/db/schema.rb
CHANGED
@@ -1,4 +1,16 @@
|
|
1
|
-
|
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.
|
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-
|
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
|
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
|
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: '
|
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: '
|
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/
|
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: '
|
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:
|
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
|