Skip to content

Commit 3b3ec18

Browse files
committed
Make deflate process when retrieving built SAML messages optional
1 parent efb2515 commit 3b3ec18

3 files changed

Lines changed: 31 additions & 16 deletions

File tree

src/onelogin/saml2/authn_request.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@
88
AuthNRequest class of OneLogin's Python Toolkit.
99
1010
"""
11-
1211
from base64 import b64encode
13-
from zlib import compress
1412

15-
from onelogin.saml2.utils import OneLogin_Saml2_Utils
1613
from onelogin.saml2.constants import OneLogin_Saml2_Constants
14+
from onelogin.saml2.utils import OneLogin_Saml2_Utils
1715

1816

1917
class OneLogin_Saml2_Authn_Request(object):
@@ -121,14 +119,19 @@ def __init__(self, settings, force_authn=False, is_passive=False):
121119

122120
self.__authn_request = request
123121

124-
def get_request(self):
122+
def get_request(self, deflate=True):
125123
"""
126124
Returns unsigned AuthnRequest.
127-
:return: Unsigned AuthnRequest
125+
:param deflate: It makes the deflate process optional
126+
:type: bool
127+
:return: AuthnRequest maybe deflated and base64 encoded
128128
:rtype: str object
129129
"""
130-
deflated_request = compress(self.__authn_request)[2:-4]
131-
return b64encode(deflated_request)
130+
if deflate:
131+
request = OneLogin_Saml2_Utils.deflate_and_base64_encode(self.__authn_request)
132+
else:
133+
request = b64encode(self.__authn_request)
134+
return request
132135

133136
def get_id(self):
134137
"""

src/onelogin/saml2/logout_request.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"""
1111

1212
from zlib import decompress
13-
from base64 import b64decode
13+
from base64 import b64encode, b64decode
1414
from lxml import etree
1515
from defusedxml.lxml import fromstring
1616
from urllib import quote_plus
@@ -117,13 +117,19 @@ def __init__(self, settings, request=None, name_id=None, session_index=None, nq=
117117

118118
self.__logout_request = logout_request
119119

120-
def get_request(self):
120+
def get_request(self, deflate=True):
121121
"""
122122
Returns the Logout Request defated, base64encoded
123-
:return: Deflated base64 encoded Logout Request
123+
:param deflate: It makes the deflate process optional
124+
:type: bool
125+
:return: Logout Request maybe deflated and base64 encoded
124126
:rtype: str object
125127
"""
126-
return OneLogin_Saml2_Utils.deflate_and_base64_encode(self.__logout_request)
128+
if deflate:
129+
request = OneLogin_Saml2_Utils.deflate_and_base64_encode(self.__logout_request)
130+
else:
131+
request = b64encode(self.__logout_request)
132+
return request
127133

128134
@staticmethod
129135
def get_id(request):

src/onelogin/saml2/logout_response.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
1010
"""
1111

12-
from base64 import b64decode
12+
from base64 import b64encode, b64decode
1313
from defusedxml.lxml import fromstring
1414

1515
from urllib import quote_plus
@@ -188,13 +188,19 @@ def build(self, in_response_to):
188188

189189
self.__logout_response = logout_response
190190

191-
def get_response(self):
191+
def get_response(self, deflate=True):
192192
"""
193-
Returns a Logout Response object.
194-
:return: Logout Response deflated and base64 encoded
193+
Returns the Logout Response defated, base64encoded
194+
:param deflate: It makes the deflate process optional
195+
:type: bool
196+
:return: Logout Response maybe deflated and base64 encoded
195197
:rtype: string
196198
"""
197-
return OneLogin_Saml2_Utils.deflate_and_base64_encode(self.__logout_response)
199+
if deflate:
200+
response = OneLogin_Saml2_Utils.deflate_and_base64_encode(self.__logout_response)
201+
else:
202+
response = b64encode(self.__logout_response)
203+
return response
198204

199205
def get_error(self):
200206
"""

0 commit comments

Comments
 (0)