Skip to content

Commit 9ffd521

Browse files
committed
Fix __build_signature method. If relay_state is null not be part of the SignQuery
1 parent e473dea commit 9ffd521

1 file changed

Lines changed: 6 additions & 8 deletions

File tree

src/onelogin/saml2/auth.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,8 @@ def process_slo(self, keep_local_session=False, request_id=None, delete_session_
150150
parameters = {'SAMLResponse': logout_response}
151151
if 'RelayState' in self.__request_data['get_data']:
152152
parameters['RelayState'] = self.__request_data['get_data']['RelayState']
153-
else:
154-
parameters['RelayState'] = OneLogin_Saml2_Utils.get_self_url_no_query(self.__request_data)
153+
# else:
154+
# parameters['RelayState'] = OneLogin_Saml2_Utils.get_self_url_no_query(self.__request_data)
155155

156156
security = self.__settings.get_security_data()
157157
if 'logoutResponseSigned' in security and security['logoutResponseSigned']:
@@ -434,12 +434,10 @@ def __build_signature(self, saml_data, relay_state, saml_type, sign_algorithm=On
434434
dsig_ctx = xmlsec.DSigCtx()
435435
dsig_ctx.signKey = xmlsec.Key.loadMemory(key, xmlsec.KeyDataFormatPem, None)
436436

437-
saml_data_str = '%s=%s' % (saml_type, quote_plus(saml_data))
438-
relay_state_str = 'RelayState=%s' % quote_plus(relay_state)
439-
alg_str = 'SigAlg=%s' % quote_plus(sign_algorithm)
440-
441-
sign_data = [saml_data_str, relay_state_str, alg_str]
442-
msg = '&'.join(sign_data)
437+
msg = '%s=%s' % (saml_type, quote_plus(saml_data))
438+
if relay_state is not None:
439+
msg += '&RelayState=%s' % quote_plus(relay_state)
440+
msg += '&SigAlg=%s' % quote_plus(sign_algorithm)
443441

444442
# Sign the metadata with our private key.
445443
sign_algorithm_transform_map = {

0 commit comments

Comments
 (0)