Skip to content

Commit a5de86f

Browse files
author
Jacob Klapwijk
committed
Fix SloLogoutresponse that threw SettingError due to idp_slo_target_url being deprecated
1 parent 61d09d0 commit a5de86f

3 files changed

Lines changed: 8 additions & 7 deletions

File tree

lib/onelogin/ruby-saml/slo_logoutresponse.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ def response_id
3636
#
3737
def create(settings, request_id = nil, logout_message = nil, params = {}, logout_status_code = nil)
3838
params = create_params(settings, request_id, logout_message, params, logout_status_code)
39-
params_prefix = (settings.idp_slo_target_url =~ /\?/) ? '&' : '?'
40-
url = settings.idp_slo_response_service_url || settings.idp_slo_target_url
39+
params_prefix = (settings.idp_slo_service_url =~ /\?/) ? '&' : '?'
40+
url = settings.idp_slo_response_service_url || settings.idp_slo_service_url
4141
saml_response = CGI.escape(params.delete("SAMLResponse"))
4242
response_params = "#{params_prefix}SAMLResponse=#{saml_response}"
4343
params.each_pair do |key, value|
4444
response_params << "&#{key.to_s}=#{CGI.escape(value.to_s)}"
4545
end
4646

47-
raise SettingError.new "Invalid settings, idp_slo_target_url is not set!" if url.nil? or url.empty?
47+
raise SettingError.new "Invalid settings, idp_slo_service_url is not set!" if url.nil? or url.empty?
4848
@logout_url = url + response_params
4949
end
5050

@@ -117,7 +117,8 @@ def create_xml_document(settings, request_id = nil, logout_message = nil, status
117117
response_doc = XMLSecurity::Document.new
118118
response_doc.uuid = uuid
119119

120-
destination = settings.idp_slo_response_service_url || settings.idp_slo_target_url
120+
destination = settings.idp_slo_response_service_url || settings.idp_slo_service_url
121+
121122

122123
root = response_doc.add_element 'samlp:LogoutResponse', { 'xmlns:samlp' => 'urn:oasis:names:tc:SAML:2.0:protocol', "xmlns:saml" => "urn:oasis:names:tc:SAML:2.0:assertion" }
123124
root.attributes['ID'] = uuid

test/logoutresponse_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ class RubySamlTest < Minitest::Test
225225

226226
before do
227227
settings.soft = true
228-
settings.idp_slo_target_url = "http://example.com?field=value"
228+
settings.idp_slo_service_url = "http://example.com?field=value"
229229
settings.security[:logout_responses_signed] = true
230230
settings.security[:embed_sign] = false
231231
settings.certificate = ruby_saml_cert_text
@@ -373,7 +373,7 @@ class RubySamlTest < Minitest::Test
373373

374374
before do
375375
settings.soft = true
376-
settings.idp_slo_target_url = "http://example.com?field=value"
376+
settings.idp_slo_service_url = "http://example.com?field=value"
377377
settings.security[:signature_method] = XMLSecurity::Document::RSA_SHA1
378378
settings.security[:logout_responses_signed] = true
379379
settings.security[:embed_sign] = false

test/slo_logoutresponse_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class SloLogoutresponseTest < Minitest::Test
1010

1111
before do
1212
settings.idp_entity_id = 'https://app.onelogin.com/saml/metadata/SOMEACCOUNT'
13-
settings.idp_slo_target_url = "http://unauth.com/logout"
13+
settings.idp_slo_service_url = "http://unauth.com/logout"
1414
settings.name_identifier_value = "f00f00"
1515
settings.compress_request = true
1616
settings.certificate = ruby_saml_cert_text

0 commit comments

Comments
 (0)