Skip to content

Commit 95f06d3

Browse files
committed
Add _generate_request_id to logout_request and logout_response and replace staticmethod by classmethod
1 parent 6510202 commit 95f06d3

File tree

2 files changed

+25
-13
lines changed

2 files changed

+25
-13
lines changed

src/onelogin/saml2/logout_request.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,7 @@ def __init__(self, settings, request=None, name_id=None, session_index=None, nq=
5959
idp_data = self.__settings.get_idp_data()
6060
security = self.__settings.get_security_data()
6161

62-
uid = OneLogin_Saml2_Utils.generate_unique_id()
63-
self.id = uid
62+
self.id = self._generate_request_id()
6463

6564
issue_instant = OneLogin_Saml2_Utils.parse_time_to_SAML(OneLogin_Saml2_Utils.now())
6665

@@ -108,7 +107,7 @@ def __init__(self, settings, request=None, name_id=None, session_index=None, nq=
108107

109108
logout_request = OneLogin_Saml2_Templates.LOGOUT_REQUEST % \
110109
{
111-
'id': uid,
110+
'id': self.id,
112111
'issue_instant': issue_instant,
113112
'single_logout_url': self.__settings.get_idp_slo_response_url(),
114113
'entity_id': sp_data['entityId'],
@@ -144,8 +143,8 @@ def get_xml(self):
144143
"""
145144
return self.__logout_request
146145

147-
@staticmethod
148-
def get_id(request):
146+
@classmethod
147+
def get_id(cls, request):
149148
"""
150149
Returns the ID of the Logout Request
151150
:param request: Logout Request Message
@@ -157,8 +156,8 @@ def get_id(request):
157156
elem = OneLogin_Saml2_XML.to_etree(request)
158157
return elem.get('ID', None)
159158

160-
@staticmethod
161-
def get_nameid_data(request, key=None):
159+
@classmethod
160+
def get_nameid_data(cls, request, key=None):
162161
"""
163162
Gets the NameID Data of the the Logout Request
164163
:param request: Logout Request Message
@@ -234,8 +233,8 @@ def get_nameid_format(cls, request, key=None):
234233
name_id_format = name_id_data['Format']
235234
return name_id_format
236235

237-
@staticmethod
238-
def get_issuer(request):
236+
@classmethod
237+
def get_issuer(cls, request):
239238
"""
240239
Gets the Issuer of the Logout Request Message
241240
:param request: Logout Request Message
@@ -251,8 +250,8 @@ def get_issuer(request):
251250
issuer = OneLogin_Saml2_XML.element_text(issuer_nodes[0])
252251
return issuer
253252

254-
@staticmethod
255-
def get_session_indexes(request):
253+
@classmethod
254+
def get_session_indexes(cls, request):
256255
"""
257256
Gets the SessionIndexes from the Logout Request
258257
:param request: Logout Request Message
@@ -359,3 +358,9 @@ def get_error(self):
359358
After executing a validation process, if it fails this method returns the cause
360359
"""
361360
return self.__error
361+
362+
def _generate_request_id(self):
363+
"""
364+
Generate an unique logout request ID.
365+
"""
366+
return OneLogin_Saml2_Utils.generate_unique_id()

src/onelogin/saml2/logout_response.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,13 @@ def build(self, in_response_to):
160160
"""
161161
sp_data = self.__settings.get_sp_data()
162162

163-
uid = OneLogin_Saml2_Utils.generate_unique_id()
163+
self.id = self._generate_request_id()
164+
164165
issue_instant = OneLogin_Saml2_Utils.parse_time_to_SAML(OneLogin_Saml2_Utils.now())
165166

166167
logout_response = OneLogin_Saml2_Templates.LOGOUT_RESPONSE % \
167168
{
168-
'id': uid,
169+
'id': self.id,
169170
'issue_instant': issue_instant,
170171
'destination': self.__settings.get_idp_slo_response_url(),
171172
'in_response_to': in_response_to,
@@ -211,3 +212,9 @@ def get_xml(self):
211212
:rtype: string
212213
"""
213214
return self.__logout_response
215+
216+
def _generate_request_id(self):
217+
"""
218+
Generate an unique logout response ID.
219+
"""
220+
return OneLogin_Saml2_Utils.generate_unique_id()

0 commit comments

Comments
 (0)