Skip to content

Commit b37366e

Browse files
committed
Use new behaviour only providing a flag
1 parent 4a4577d commit b37366e

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

lib/onelogin/ruby-saml/settings.rb

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,15 @@ module RubySaml
99
# SAML2 Toolkit Settings
1010
#
1111
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+
1621
config.each do |k,v|
1722
acc = "#{k.to_s}=".to_sym
1823
if respond_to? acc

test/settings_test.rb

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class SettingsTest < Minitest::Test
7777
assert_equal new_settings.security[:signature_method], XMLSecurity::Document::RSA_SHA1
7878
end
7979

80-
it "overrides only provided security attributes" do
80+
it "overrides only provided security attributes passing a second parameter" do
8181
config = {
8282
:security => {
8383
:metadata_signed => true
@@ -86,11 +86,25 @@ class SettingsTest < Minitest::Test
8686

8787
@default_attributes = OneLogin::RubySaml::Settings::DEFAULTS
8888

89-
@settings = OneLogin::RubySaml::Settings.new(config)
89+
@settings = OneLogin::RubySaml::Settings.new(config, true)
9090
assert_equal @settings.security[:metadata_signed], true
9191
assert_equal @settings.security[:digest_method], @default_attributes[:security][:digest_method]
9292
end
9393

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+
94108
describe "#single_logout_service_url" do
95109
it "when single_logout_service_url is nil but assertion_consumer_logout_service_url returns its value" do
96110
@settings.single_logout_service_url = nil

0 commit comments

Comments
 (0)