doorkeeper_sso 0.4.3 → 0.4.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0ca0ce3b31e9f84891cca3a72dddd92d8b401bf2
4
- data.tar.gz: 926a26fbbec7d49bb05a2b71fd4db19f85a6f5fe
3
+ metadata.gz: 2bd334100cf66c77b3f645412a863eabdc1662d2
4
+ data.tar.gz: dc41d49dbc70d8372eafd3f3b4d4992d46f70ec7
5
5
  SHA512:
6
- metadata.gz: 5b96c999fe8b444644bc6b1c5faa131d7f0950a4e391da11ab6a71a0255ec58538dd4636887965fb4542a20f3b550718117bda9d9c8a9a27dcacc66a8e43b645
7
- data.tar.gz: 32e6a6a7460f9c5b2e37901f637ad5db92afe1ff4c29e573ee1efe0a620c7ddf204b603b4c5aec7fe22375b7274c03180e29cb702c51b30b23f84be46c976d44
6
+ metadata.gz: 733ec62c0762c923ccd25322e5670641f531850fddb84778a408c1d45bdac1b19c928db1114caeb296391e57bb4b2ec26f69cd43414ba53face2da3ab5cdd606
7
+ data.tar.gz: efdd2637c8a3b766f47766d985e7ffab1d1ee2643e2299b0b156dc049c474de6970983bf3e66e384742fff00915285100f24f9b877e94dc84e80d7dfe1ad94a7
@@ -15,20 +15,21 @@ module Sso
15
15
  # Sessionless (iphone/outsider)
16
16
  # Returns passport
17
17
  def show
18
- @session = current_client.session
19
- render json: @session, serializer: Sso::SessionSerializer
18
+ @client = current_client
19
+ render json: @client, serializer: Sso::ClientSerializer
20
20
  end
21
21
 
22
22
  # Passport exchange
23
23
  # Passport Strategy first exchange
24
24
  # Insider : Client information from Apps should always be trusted
25
25
  def create
26
- @session = current_client.session
26
+ @client = current_client
27
+ @session = @client.session
27
28
  debug { "SessionsController#create - #{@session.inspect}"}
28
29
  raise "ResourceOwner from token != session.owner" if doorkeeper_token.resource_owner_id != @session.owner.id
29
30
 
30
- current_client.update_attributes!(client_params)
31
- render json: @session, status: :created, serializer: Sso::SessionSerializer
31
+ @client.update_attributes!(client_params)
32
+ render json: @client, status: :created, serializer: Sso::ClientSerializer
32
33
  end
33
34
 
34
35
  ################################################################################
@@ -10,6 +10,11 @@ module Sso
10
10
  validates :access_grant_id, uniqueness: { allow_nil: true }
11
11
  validates :access_token_id, uniqueness: { allow_nil: true }
12
12
 
13
+ scope :with_access_grant, -> { where.not(access_grant: nil) }
14
+ scope :with_access_token, -> { where.not(access_token: nil) }
15
+
16
+ before_save :ensure_random_token
17
+
13
18
  class << self
14
19
  def find_by_grant_token(token)
15
20
  find_by(access_grant: ::Doorkeeper::AccessGrant.by_token(token))
@@ -29,5 +34,10 @@ module Sso
29
34
  return false unless oauth_token = ::Doorkeeper::AccessToken.by_token(token)
30
35
  update(access_token_id: oauth_token.id, application_id: oauth_token.application.id)
31
36
  end
37
+
38
+ private
39
+ def ensure_random_token
40
+ self.random_token ||= SecureRandom.hex
41
+ end
32
42
  end
33
43
  end
@@ -16,7 +16,6 @@ module Sso
16
16
  scope :master, -> { where(application_id: nil) }
17
17
 
18
18
  before_validation :ensure_secret
19
- before_validation :ensure_group_id
20
19
  before_validation :ensure_activity_at
21
20
 
22
21
  class << self
@@ -57,6 +56,9 @@ module Sso
57
56
  end
58
57
 
59
58
  def logout
59
+ clients.with_access_token.each do |c|
60
+ c.access_token.revoke
61
+ end
60
62
  update revoked_at: Time.current, revoke_reason: "logout"
61
63
  end
62
64
 
@@ -66,10 +68,6 @@ module Sso
66
68
  self.secret ||= SecureRandom.uuid
67
69
  end
68
70
 
69
- def ensure_group_id
70
- self.group_id ||= SecureRandom.uuid
71
- end
72
-
73
71
  def ensure_activity_at
74
72
  self.activity_at ||= Time.current
75
73
  end
@@ -0,0 +1,20 @@
1
+ module Sso
2
+ class ClientSerializer < ActiveModel::Serializer
3
+ delegate :id, :active?, :revoked_at, :revoke_reason, :secret, to: :session
4
+
5
+ attribute :id, :key => :client_id
6
+ attributes :id, :active?, :revoked_at, :revoke_reason, :secret, :random_token
7
+
8
+
9
+ belongs_to :owner, serializer: Sso::OwnerSerializer # WTH : hack to load owner using serializer
10
+
11
+ def session
12
+ object.session
13
+ end
14
+
15
+ # WTH : i dont get why i have to do loops to customize my json output
16
+ def owner
17
+ session.owner
18
+ end
19
+ end
20
+ end
@@ -1,7 +1,8 @@
1
1
  module Sso
2
2
  class SessionSerializer < ActiveModel::Serializer
3
- attributes :id, :active?, :secret, :revoked_at, :revoke_reason
3
+ attributes :id, :active?, :revoked_at, :revoke_reason, :secret
4
4
 
5
+ has_many :clients
5
6
  belongs_to :owner, serializer: Sso::OwnerSerializer
6
7
  end
7
8
  end
@@ -0,0 +1,16 @@
1
+ class AddDeviceInformationToSsoClients < ActiveRecord::Migration
2
+ def change
3
+ change_table :sso_clients do |t|
4
+ t.string "device_os"
5
+ t.string "device_os_version"
6
+ t.string "device_model"
7
+ t.string "random_token"
8
+ end
9
+
10
+ Sso::Client.find_each do |client|
11
+ client.save
12
+ end
13
+
14
+ change_column :sso_clients, :random_token, :string, :null => true
15
+ end
16
+ end
@@ -0,0 +1,7 @@
1
+ class RemoveGroupIdFromSessions < ActiveRecord::Migration
2
+ def change
3
+ change_table :sso_sessions do |t|
4
+ t.remove :group_id
5
+ end
6
+ end
7
+ end
@@ -1,3 +1,4 @@
1
+ require "rails"
1
2
  require "active_model_serializers"
2
3
  require "wisper"
3
4
  require "sso"
data/lib/sso/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sso
2
- VERSION = "0.4.3"
2
+ VERSION = "0.4.6"
3
3
  end
@@ -1,17 +1,21 @@
1
1
  {
2
2
  "type": "object",
3
3
  "required" : [
4
+ "client_id",
4
5
  "id",
5
6
  "active?",
6
7
  "secret",
7
- "owner"
8
+ "owner",
9
+ "random_token"
8
10
  ],
9
11
  "properties": {
12
+ "client_id" : { "type" : "string" },
10
13
  "id" : { "type" : "string" },
11
14
  "active?" : { "type" : "boolean" },
12
15
  "revoked_at" : { "type": ["string", "null"], "format": "date-time" },
13
16
  "revoke_reason" : { "type": ["string", "null"] },
14
17
  "secret" : { "type" : "string" },
18
+ "random_token" : { "type" : "string" },
15
19
  "owner" : {
16
20
  "type" : "object",
17
21
  "required" : [
@@ -32,4 +36,4 @@
32
36
  }
33
37
  }
34
38
  }
35
- }
39
+ }
@@ -59,7 +59,7 @@ RSpec.describe Sso::SessionsController, :type => :controller do
59
59
  end
60
60
 
61
61
  it { expect(response).to have_http_status(:ok) }
62
- it { expect(assigns(:session)).to eq session }
62
+ it { expect(assigns(:client)).to eq client }
63
63
  it { expect(response).to match_response_schema("session") }
64
64
  end
65
65
  end
@@ -57,4 +57,12 @@ RSpec.describe Sso::Client, :type => :model do
57
57
  end
58
58
  end
59
59
 
60
+ describe "#ensure_random_token" do
61
+ subject!(:client) { Fabricate('Sso::Client', session: session,
62
+ application_id: application.id,
63
+ access_grant_id: access_grant.id) }
64
+
65
+ it { expect(client.random_token).not_to be_blank }
66
+ end
67
+
60
68
  end
@@ -92,18 +92,32 @@ RSpec.describe Sso::Session, :type => :model do
92
92
 
93
93
  context "(failure)" do
94
94
  it "raises exception" do
95
- expect { Sso::Session.generate_master(nil) }.to raise_exception
95
+ expect { Sso::Session.generate_master(nil, nil) }.to raise_exception(ActiveRecord::RecordInvalid)
96
96
  end
97
97
  end
98
98
  end
99
99
 
100
100
  describe "::logout" do
101
- let!(:sso_session) { Fabricate('Sso::Session') }
102
- let!(:user) { sso_session.owner }
101
+ let(:user) { Fabricate(:user) }
102
+ let(:access_token) { Fabricate('Doorkeeper::AccessToken',
103
+ resource_owner_id: user.id) }
104
+ let(:access_grant) { Fabricate('Doorkeeper::AccessGrant',
105
+ application_id: nil,
106
+ resource_owner_id: user.id,
107
+ redirect_uri: 'http://localhost:3002/oauth/callback'
108
+ ) }
109
+
110
+ let(:sso_session) { Fabricate('Sso::Session', owner: user) }
111
+ let!(:sso_client) { Fabricate('Sso::Client', session: sso_session,
112
+ access_token_id: access_token.id,
113
+ access_grant_id: access_grant.id) }
103
114
 
104
- it "revokes session" do
115
+ it "revokes session and access token" do
105
116
  Sso::Session.logout(sso_session.id)
106
117
  new_session = Sso::Session.find(sso_session.id)
118
+
119
+ expect(new_session.clients.count).to eq(2) # Should have 2 clients for a session
120
+ expect(new_session.clients.with_access_token.first.access_token.revoked_at).not_to be_blank # Client access token should be revoked
107
121
  expect(new_session.revoked_at).not_to be_blank
108
122
  expect(new_session.revoke_reason).to eq("logout")
109
123
  end
@@ -15,8 +15,8 @@ RSpec.describe 'OAuth 2.0 Authorization Grant Flow', type: :request, db: true do
15
15
  let(:access_token_count) { ::Doorkeeper::AccessToken.count }
16
16
  let(:grant_count) { ::Doorkeeper::AccessGrant.count }
17
17
 
18
- let(:latest_passport) { ::SSO::Session.last }
19
- let(:passport_count) { ::SSO::Session.last.count }
18
+ let(:latest_session) { ::Sso::Session.last }
19
+ let(:session_count) { ::Sso::Session.count }
20
20
 
21
21
  before do
22
22
  get_via_redirect '/oauth/authorize', grant_params
@@ -27,32 +27,40 @@ RSpec.describe 'OAuth 2.0 Authorization Grant Flow', type: :request, db: true do
27
27
  end
28
28
 
29
29
  describe 'Logging in' do
30
- before do
31
- post '/login', user: { email: user.email, password: "bumblebee" }
30
+ before(:each) do
31
+ post '/users/sign_in', user: { email: user.email, password: "bumblebee" }
32
32
  follow_redirect!
33
33
  end
34
34
 
35
35
  it 'redirects to the application callback including the Grant Token' do
36
- #expect(latest_grant).to be_present
37
- expect(response.body).to eq 1 #redirect_to "#{doorkeeper_application.redirect_uri}?code=#{latest_grant.token}&state=some_random_string"
36
+ is_expected.to redirect_to "#{doorkeeper_application.redirect_uri}?code=#{latest_grant.token}&state=some_random_string"
38
37
  end
39
38
 
40
- # it 'generates a passport with the grant token attached to it' do
41
- # expect(latest_passport.oauth_access_grant_id).to eq latest_grant.id
42
- # end
39
+ it 'generates a master session' do
40
+ expect(session_count).to eq 1
41
+ end
42
+
43
+ it 'generates a master client and a child client' do
44
+ expect(latest_session.clients.count).to eq 2
45
+ end
46
+
47
+ it 'child client have grant token info attached to it' do
48
+ expect(latest_session.clients.with_access_grant.count).to eq 1
49
+ expect(latest_session.clients.with_access_grant.first.access_grant_id).to eq latest_grant.id
50
+ end
43
51
 
44
- # it 'does not generate multiple authorization grants' do
45
- # expect(grant_count).to eq 1
46
- # end
52
+ it 'does not generate multiple authorization grants' do
53
+ expect(grant_count).to eq 1
54
+ end
47
55
 
48
- pending 'Exchanging the Authorization Grant for an Access Token' do
56
+ context 'Exchanging the Authorization Grant for an Access Token' do
49
57
  let(:grant) { ::Rack::Utils.parse_query(URI.parse(response.location).query).fetch('code') }
50
58
  let(:grant_type) { :authorization_code }
51
- let(:params) { { doorkeeper_application_id: doorkeeper_application.uid, doorkeeper_application_secret: doorkeeper_application.secret, code: grant, grant_type: grant_type, redirect_uri: redirect_uri } }
59
+ let(:token_params) { { client_id: doorkeeper_application.uid, client_secret: doorkeeper_application.secret, code: grant, grant_type: grant_type, redirect_uri: redirect_uri } }
52
60
  let(:token) { JSON.parse(response.body).fetch 'access_token' }
53
61
 
54
- before do
55
- post '/oauth/token', params
62
+ before(:each) do
63
+ post '/oauth/token', token_params
56
64
  end
57
65
 
58
66
  it 'succeeds' do
@@ -67,52 +75,33 @@ RSpec.describe 'OAuth 2.0 Authorization Grant Flow', type: :request, db: true do
67
75
  expect(result['access_token']).to eq latest_access_token.token
68
76
  end
69
77
 
70
- it 'generates a passport with the grant token attached to it' do
71
- expect(latest_passport.oauth_access_token_id).to eq latest_access_token.id
78
+ it 'does not generate multiple master session' do
79
+ expect(session_count).to eq 1
72
80
  end
73
81
 
74
- it 'does not generate multiple passports' do
75
- expect(passport_count).to eq 1
82
+ it 'does not generate another client' do
83
+ expect(latest_session.clients.count).to eq 2
76
84
  end
77
85
 
78
- it 'does not generate multiple access tokens' do
79
- expect(access_token_count).to eq 1
86
+ it 'updates child client with the access token info' do
87
+ expect(latest_session.clients.with_access_token.first.access_token_id).to eq latest_access_token.id
80
88
  end
81
89
 
82
- it 'succeeds' do
83
- expect(response.status).to eq 200
84
- end
90
+ context 'Updates the child client with user info' do
91
+ let(:client_params) { { access_token: token, ip: "127.0.0.1", agent: "curl/7.43.0" } }
85
92
 
86
- pending 'Exchanging the Access Token for a Passport' do
87
- before do
88
- SSO.config.passport_chip_key = SecureRandom.hex
89
- post '/oauth/sso/v1/passports', access_token: token
93
+ before(:each) do
94
+ post '/sso/sessions', client_params
90
95
  end
91
96
 
92
97
  it 'succeeds' do
93
- expect(response.status).to eq 200
94
- end
95
-
96
- it 'gets the passport' do
97
- expect(result['passport']).to be_present
98
- end
99
-
100
- it 'is the passport for that access token' do
101
- expect(result['passport']['id']).to eq latest_passport.id
102
- expect(latest_passport.oauth_access_token_id).to eq latest_access_token.id
103
- end
104
-
105
- pending 'is an outsider passport' do
106
- expect(latest_passport).to_not be_insider
98
+ expect(response.status).to eq 201
107
99
  end
108
100
 
109
- pending 'insider application' do
110
- let!(:doorkeeper_application) { Fabricate('Doorkeeper::Application') }
111
- let(:scope) { :insider }
112
-
113
- it 'is an insider passport' do
114
- expect(latest_passport).to be_insider
115
- end
101
+ it 'child client is updated with user info' do
102
+ child_client = latest_session.clients.with_access_token.first
103
+ expect(child_client.ip).to eq "127.0.0.1"
104
+ expect(child_client.agent).to eq "curl/7.43.0"
116
105
  end
117
106
  end
118
107
 
@@ -0,0 +1,6 @@
1
+ Shoulda::Matchers.configure do |config|
2
+ config.integrate do |with|
3
+ with.test_framework :rspec
4
+ with.library :rails
5
+ end
6
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20150603145730) do
14
+ ActiveRecord::Schema.define(version: 20151104090509) do
15
15
 
16
16
  # These are extensions that must be enabled in order to support this database
17
17
  enable_extension "plpgsql"
@@ -78,8 +78,12 @@ ActiveRecord::Schema.define(version: 20150603145730) do
78
78
  t.string "location"
79
79
  t.string "device"
80
80
  t.datetime "activity_at"
81
- t.datetime "created_at", null: false
82
- t.datetime "updated_at", null: false
81
+ t.datetime "created_at", null: false
82
+ t.datetime "updated_at", null: false
83
+ t.string "device_os"
84
+ t.string "device_os_version"
85
+ t.string "device_model"
86
+ t.string "random_token", null: false
83
87
  end
84
88
 
85
89
  add_index "sso_clients", ["access_grant_id"], name: "index_sso_clients_on_access_grant_id", using: :btree
@@ -97,7 +101,6 @@ ActiveRecord::Schema.define(version: 20150603145730) do
97
101
  t.integer "access_token_id"
98
102
  t.integer "application_id"
99
103
  t.integer "owner_id", null: false
100
- t.string "group_id", null: false
101
104
  t.string "secret", null: false
102
105
  t.datetime "activity_at", null: false
103
106
  t.datetime "revoked_at"
@@ -109,7 +112,6 @@ ActiveRecord::Schema.define(version: 20150603145730) do
109
112
  add_index "sso_sessions", ["access_grant_id"], name: "index_sso_sessions_on_access_grant_id", using: :btree
110
113
  add_index "sso_sessions", ["access_token_id"], name: "index_sso_sessions_on_access_token_id", using: :btree
111
114
  add_index "sso_sessions", ["application_id"], name: "index_sso_sessions_on_application_id", using: :btree
112
- add_index "sso_sessions", ["group_id"], name: "index_sso_sessions_on_group_id", using: :btree
113
115
  add_index "sso_sessions", ["owner_id", "access_token_id", "application_id"], name: "one_access_token_per_owner", unique: true, where: "((revoked_at IS NULL) AND (access_token_id IS NOT NULL))", using: :btree
114
116
  add_index "sso_sessions", ["owner_id"], name: "index_sso_sessions_on_owner_id", using: :btree
115
117
  add_index "sso_sessions", ["revoke_reason"], name: "index_sso_sessions_on_revoke_reason", using: :btree
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doorkeeper_sso
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.6
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-09-23 00:00:00.000000000 Z
11
+ date: 2015-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: warden
@@ -338,6 +338,7 @@ files:
338
338
  - app/models/sso/notifier.rb
339
339
  - app/models/sso/pingback.rb
340
340
  - app/models/sso/session.rb
341
+ - app/serializers/sso/client_serializer.rb
341
342
  - app/serializers/sso/owner_serializer.rb
342
343
  - app/serializers/sso/session_serializer.rb
343
344
  - app/views/layouts/doorkeeper/admin.html.erb
@@ -348,6 +349,8 @@ files:
348
349
  - db/migrate/20150521142926_create_sso_clients.rb
349
350
  - db/migrate/20150521165143_remove_extra_columns_from_sso_sessions.rb
350
351
  - db/migrate/20150603145730_add_pingback_uri_to_doorkeeper_applications.rb
352
+ - db/migrate/20151030064515_add_device_information_to_sso_clients.rb
353
+ - db/migrate/20151104090509_remove_group_id_from_sessions.rb
351
354
  - lib/doorkeeper_sso.rb
352
355
  - lib/sso.rb
353
356
  - lib/sso/doorkeeper/access_grant_mixin.rb
@@ -361,7 +364,6 @@ files:
361
364
  - lib/sso/doorkeeper/oauth/authorization_code_request_mixin.rb
362
365
  - lib/sso/doorkeeper/oauth/base.rb
363
366
  - lib/sso/engine.rb
364
- - lib/sso/engine.rb.orig
365
367
  - lib/sso/logging.rb
366
368
  - lib/sso/version.rb
367
369
  - lib/sso/warden/hooks/before_logout.rb
@@ -393,6 +395,7 @@ files:
393
395
  - spec/support/database_cleaner.rb
394
396
  - spec/support/devise.rb
395
397
  - spec/support/fabrication.rb
398
+ - spec/support/shoulda_matchers.rb
396
399
  - spec/support/vcr.rb
397
400
  - spec/test_app/Rakefile
398
401
  - spec/test_app/app/controllers/application_controller.rb
@@ -452,6 +455,7 @@ test_files:
452
455
  - spec/support/database_cleaner.rb
453
456
  - spec/support/devise.rb
454
457
  - spec/support/fabrication.rb
458
+ - spec/support/shoulda_matchers.rb
455
459
  - spec/support/vcr.rb
456
460
  - spec/test_app/app/controllers/application_controller.rb
457
461
  - spec/test_app/app/models/user.rb
@@ -1,71 +0,0 @@
1
- module Sso
2
- class Engine < ::Rails::Engine
3
- isolate_namespace Sso
4
-
5
- # New test framework integration
6
- config.generators do |g|
7
- g.test_framework :rspec,
8
- :fixtures => true,
9
- :view_specs => false,
10
- :helper_specs => false,
11
- :routing_specs => false,
12
- :controller_specs => true,
13
- :request_specs => false
14
- g.fixture_replacement :fabrication
15
- end
16
-
17
- initializer :append_migrations do |app|
18
- unless app.root.to_s.match root.to_s
19
- config.paths["db/migrate"].expanded.each do |expanded_path|
20
- app.config.paths["db/migrate"] << expanded_path
21
- end
22
- end
23
- end
24
-
25
- config.before_initialize do
26
- [::Sso::Logging, ::Wisper::Publisher].each do |klass|
27
- ::Doorkeeper::OAuth::RequestConcern.send(:include, klass)
28
- ::Doorkeeper::OAuth::Authorization::Code.send(:include, klass)
29
- ::Doorkeeper::OAuth::Authorization::Token.send(:include, klass)
30
- end
31
-
32
- ::Doorkeeper::ApplicationMetalController.send(:include, ::AbstractController::Callbacks)
33
-
34
- # need a better way to fix this
35
- ::Doorkeeper::OAuth::RequestConcern.class_eval do
36
- def after_successful_response
37
- raise "RequestConcern#token - #{@access_token.inspect}"
38
- broadcast(:access_token_request_successful, @access_token.id)
39
- super
40
- end
41
- end
42
- end
43
-
44
- config.after_initialize do
45
-
46
- ::Doorkeeper::OAuth::Authorization::Code.send(:prepend, ::Sso::Doorkeeper::Authorization::CodeMixin)
47
- ::Doorkeeper::OAuth::Authorization::Token.send(:prepend, ::Sso::Doorkeeper::Authorization::TokenMixin)
48
- ::Doorkeeper::Application.send(:include, ::Sso::Doorkeeper::ApplicationMixin)
49
- ::Doorkeeper::AccessGrant.send(:include, ::Sso::Doorkeeper::AccessGrantMixin)
50
- ::Doorkeeper::AccessToken.send(:include, ::Sso::Doorkeeper::AccessTokenMixin)
51
- ::Doorkeeper::ApplicationMetalController.send(:include, ::Sso::Doorkeeper::ApplicationControllerMixin)
52
- ::Doorkeeper::ApplicationController.send(:include, ::Sso::Doorkeeper::ApplicationControllerMixin)
53
- # ::Doorkeeper::TokensController.send(:include, ::AbstractController::Callbacks)
54
- # ::Doorkeeper::TokensController.send(:include, ::Sso::Doorkeeper::TokensControllerMixin)
55
- # ::Doorkeeper::AuthorizationsController.send(:include, ::Sso::Doorkeeper::AuthorizationsControllerMixin)
56
-
57
- <<<<<<< HEAD
58
- ::Warden::Manager.after_set_user(scope: :user, &::Sso::Warden::Hooks::CreateMasterSession.to_proc)
59
- =======
60
- >>>>>>> Use wisper to broadcast when token is created
61
- ::Warden::Manager.after_set_user(scope: :user, except: :fetch, &::Sso::Warden::Hooks::CreateMasterSession.to_proc)
62
- ::Warden::Manager.before_logout(scope: :user, &::Sso::Warden::Hooks::BeforeLogout.to_proc)
63
-
64
- # TODO : Do we want to ensure that session is always active?
65
- # ::Warden::Manager.after_fetch(scope: :user, &::Sso::Warden::Hooks::SessionCheck.to_proc)
66
-
67
- # TODO : Why does it need a passport strategy
68
- # Warden::Strategies.add :passport, ::Sso::Server::Warden::Strategies::Passport
69
- end
70
- end
71
- end