File tree Expand file tree Collapse file tree 2 files changed +25
-6
lines changed Expand file tree Collapse file tree 2 files changed +25
-6
lines changed Original file line number Diff line number Diff line change @@ -9,10 +9,15 @@ module RubySaml
9
9
# SAML2 Toolkit Settings
10
10
#
11
11
class Settings
12
- def initialize ( overrides = { } )
13
- security_attributes = overrides . delete ( :security ) || { }
14
- config = DEFAULTS . merge ( overrides )
15
- config [ :security ] = DEFAULTS [ :security ] . merge ( security_attributes )
12
+ def initialize ( overrides = { } , keep_security_attributes = false )
13
+ if keep_security_attributes
14
+ security_attributes = overrides . delete ( :security ) || { }
15
+ config = DEFAULTS . merge ( overrides )
16
+ config [ :security ] = DEFAULTS [ :security ] . merge ( security_attributes )
17
+ else
18
+ config = DEFAULTS . merge ( overrides )
19
+ end
20
+
16
21
config . each do |k , v |
17
22
acc = "#{ k . to_s } =" . to_sym
18
23
if respond_to? acc
Original file line number Diff line number Diff line change @@ -77,7 +77,7 @@ class SettingsTest < Minitest::Test
77
77
assert_equal new_settings . security [ :signature_method ] , XMLSecurity ::Document ::RSA_SHA1
78
78
end
79
79
80
- it "overrides only provided security attributes" do
80
+ it "overrides only provided security attributes passing a second parameter " do
81
81
config = {
82
82
:security => {
83
83
:metadata_signed => true
@@ -86,11 +86,25 @@ class SettingsTest < Minitest::Test
86
86
87
87
@default_attributes = OneLogin ::RubySaml ::Settings ::DEFAULTS
88
88
89
- @settings = OneLogin ::RubySaml ::Settings . new ( config )
89
+ @settings = OneLogin ::RubySaml ::Settings . new ( config , true )
90
90
assert_equal @settings . security [ :metadata_signed ] , true
91
91
assert_equal @settings . security [ :digest_method ] , @default_attributes [ :security ] [ :digest_method ]
92
92
end
93
93
94
+ it "doesn't override only provided security attributes without passing a second parameter" do
95
+ config = {
96
+ :security => {
97
+ :metadata_signed => true
98
+ }
99
+ }
100
+
101
+ @default_attributes = OneLogin ::RubySaml ::Settings ::DEFAULTS
102
+
103
+ @settings = OneLogin ::RubySaml ::Settings . new ( config )
104
+ assert_equal @settings . security [ :metadata_signed ] , true
105
+ assert_equal @settings . security [ :digest_method ] , nil
106
+ end
107
+
94
108
describe "#single_logout_service_url" do
95
109
it "when single_logout_service_url is nil but assertion_consumer_logout_service_url returns its value" do
96
110
@settings . single_logout_service_url = nil
You can’t perform that action at this time.
0 commit comments