devise_saml_authenticatable 1.6.0 → 1.6.1

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.
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: