devise_saml_authenticatable 1.6.0 → 1.6.1

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
  SHA256:
3
- metadata.gz: 8f372d3d801220ab4ce4a7e83501f0e5d7a9cc2590eb64aa1c91a0a5ad053d7d
4
- data.tar.gz: bcdfc0370f0926a542164ea577030e9ff17666adb9e0d5ae8367a605e4966866
3
+ metadata.gz: d3ca38cfe51cdf71fc8a264de868fc285bfa413307aa4798e097fbf88e85020d
4
+ data.tar.gz: 2371ef1371e29547b4eb9681066fa43f0b6d39236b7df8676236bf13678e2d01
5
5
  SHA512:
6
- metadata.gz: d9bd026db0bb199aaa9b72d1c03fccef49a905dc7270739b48e682623036f945b74f16c99f1d457086df47ff03f8e71aee5c4a412d01cd9f9c80b4f84e79d58a
7
- data.tar.gz: c2f32e5297c0e9a4aadce6069282d8c17e91d95550a777e2f5755745effc0fda5eaa958e4656d5776e2a507251d230fdaba3d944189874d0166d3f2cefbe153c
6
+ metadata.gz: 872bfb214a00504735d9183d169e4119ebb9c6ae3129de729be642f39c4675b57040bb1c9d46899e73d534aa82d7ac9291c425109c10eaeb290831480e7976ab
7
+ data.tar.gz: 3269ef293937aef443afa9a325acc0addf027c3ad7421865a9ebe1554d7215461767ffe9e34cd4cc2bf8edbae831e7e342dd3c47245d57209d8ddd820a128212
@@ -20,8 +20,9 @@ class Devise::SamlSessionsController < Devise::SessionsController
20
20
  end
21
21
 
22
22
  def metadata
23
+ idp_entity_id = params[:idp_entity_id]
23
24
  meta = OneLogin::RubySaml::Metadata.new
24
- render :xml => meta.generate(saml_config)
25
+ render :xml => meta.generate(saml_config(idp_entity_id))
25
26
  end
26
27
 
27
28
  def idp_sign_out
@@ -33,7 +33,7 @@ module Devise
33
33
  key = Devise.saml_default_user_key
34
34
  decorated_response = ::SamlAuthenticatable::SamlResponse.new(
35
35
  saml_response,
36
- Devise.saml_attribute_map_resolver.new(saml_response).attribute_map,
36
+ attribute_map(saml_response),
37
37
  )
38
38
  if Devise.saml_use_subject
39
39
  auth_value = saml_response.name_id
@@ -66,7 +66,12 @@ module Devise
66
66
  end
67
67
 
68
68
  if Devise.saml_update_user || (resource.new_record? && Devise.saml_create_user)
69
- Devise.saml_update_resource_hook.call(resource, decorated_response, auth_value)
69
+ begin
70
+ Devise.saml_update_resource_hook.call(resource, decorated_response, auth_value)
71
+ rescue
72
+ logger.info("User(#{auth_value}) failed to create or update.")
73
+ return nil
74
+ end
70
75
  end
71
76
 
72
77
  resource
@@ -80,6 +85,10 @@ module Devise
80
85
  def find_for_shibb_authentication(conditions)
81
86
  find_for_authentication(conditions)
82
87
  end
88
+
89
+ def attribute_map(saml_response = nil)
90
+ Devise.saml_attribute_map_resolver.new(saml_response).attribute_map
91
+ end
83
92
  end
84
93
  end
85
94
  end
@@ -1,3 +1,3 @@
1
1
  module DeviseSamlAuthenticatable
2
- VERSION = "1.6.0"
2
+ VERSION = "1.6.1"
3
3
  end
@@ -104,6 +104,12 @@ describe Devise::Models::SamlAuthenticatable do
104
104
  expect(model.name).to eq('A User')
105
105
  expect(model.saved).to be(true)
106
106
  end
107
+
108
+ it "returns nil if it fails to create a user" do
109
+ expect(Model).to receive(:where).with(email: 'user@example.com').and_return([])
110
+ expect(Devise).to receive(:saml_update_resource_hook).and_raise(StandardError.new)
111
+ expect(Model.authenticate_with_saml(response, nil)).to be_nil
112
+ end
107
113
  end
108
114
 
109
115
  context "when configured to update a user and the user is found" do
@@ -119,6 +125,13 @@ describe Devise::Models::SamlAuthenticatable do
119
125
  expect(model.name).to eq('A User')
120
126
  expect(model.saved).to be(true)
121
127
  end
128
+
129
+ it "returns nil if it fails to update a user" do
130
+ user = Model.new(new_record: false)
131
+ expect(Model).to receive(:where).with(email: 'user@example.com').and_return([user])
132
+ expect(Devise).to receive(:saml_update_resource_hook).and_raise(StandardError.new)
133
+ expect(Model.authenticate_with_saml(response, nil)).to be_nil
134
+ end
122
135
  end
123
136
  end
124
137
 
@@ -372,4 +385,10 @@ describe Devise::Models::SamlAuthenticatable do
372
385
  allow(Devise).to receive(:saml_resource_locator).and_return(block)
373
386
  end
374
387
  end
388
+
389
+ describe "::attribute_map" do
390
+ it "returns the attribute map" do
391
+ expect(Model.attribute_map).to eq(attributemap)
392
+ end
393
+ end
375
394
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_saml_authenticatable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josef Sauter
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-13 00:00:00.000000000 Z
11
+ date: 2020-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: devise
@@ -95,7 +95,7 @@ homepage: ''
95
95
  licenses:
96
96
  - MIT
97
97
  metadata: {}
98
- post_install_message:
98
+ post_install_message:
99
99
  rdoc_options: []
100
100
  require_paths:
101
101
  - lib
@@ -110,8 +110,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  requirements: []
113
- rubygems_version: 3.0.6
114
- signing_key:
113
+ rubygems_version: 3.0.3
114
+ signing_key:
115
115
  specification_version: 4
116
116
  summary: SAML Authentication for devise
117
117
  test_files: