diff --git a/.gitignore b/.gitignore
index ad382d79..a424f0e3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,6 +19,7 @@ __pycache_
/venv
.coverage
.pypirc
+.idea/
*.key
*.crt
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 00000000..8148b784
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+python-saml
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 00000000..97626ba4
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..bf5e71d9
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+ Python
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..5172c0c5
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/python-saml.iml b/.idea/python-saml.iml
new file mode 100644
index 00000000..7b12246a
--- /dev/null
+++ b/.idea/python-saml.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..94a25f7f
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 00000000..7295f575
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $USER_HOME$/.subversion
+
+
+
+
+ 1482932200463
+
+ 1482932200463
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/onelogin/saml2/auth.py b/src/onelogin/saml2/auth.py
index ab8fb2af..1fd9551e 100644
--- a/src/onelogin/saml2/auth.py
+++ b/src/onelogin/saml2/auth.py
@@ -271,7 +271,7 @@ def get_last_request_id(self):
"""
return self.__last_request_id
- def login(self, return_to=None, force_authn=False, is_passive=False, set_nameid_policy=True):
+ def login(self, return_to=None, force_authn=False, is_passive=False, set_nameid_policy=True, deflate=False):
"""
Initiates the SSO process.
@@ -287,13 +287,16 @@ def login(self, return_to=None, force_authn=False, is_passive=False, set_nameid_
:param set_nameid_policy: Optional argument. When true the AuthNRequest will set a nameIdPolicy element.
:type set_nameid_policy: bool
+ :param deflate: Optional argument. When true, compress request
+ :type deflate: bool
+
:returns: Redirection URL
:rtype: string
"""
authn_request = OneLogin_Saml2_Authn_Request(self.__settings, force_authn, is_passive, set_nameid_policy)
self.__last_request = authn_request.get_xml()
self.__last_request_id = authn_request.get_id()
- saml_request = authn_request.get_request()
+ saml_request = authn_request.get_request(deflate)
parameters = {'SAMLRequest': saml_request}
if return_to is not None:
diff --git a/src/onelogin/saml2/authn_request.py b/src/onelogin/saml2/authn_request.py
index 636a6888..ff3f19fa 100644
--- a/src/onelogin/saml2/authn_request.py
+++ b/src/onelogin/saml2/authn_request.py
@@ -9,6 +9,7 @@
"""
from base64 import b64encode
+from django.conf import settings
from onelogin.saml2.constants import OneLogin_Saml2_Constants
from onelogin.saml2.utils import OneLogin_Saml2_Utils
@@ -128,7 +129,7 @@ def __init__(self, settings, force_authn=False, is_passive=False, set_nameid_pol
self.__authn_request = request
- def get_request(self, deflate=True):
+ def get_request(self, deflate=None):
"""
Returns unsigned AuthnRequest.
:param deflate: It makes the deflate process optional
@@ -136,7 +137,8 @@ def get_request(self, deflate=True):
:return: AuthnRequest maybe deflated and base64 encoded
:rtype: str object
"""
- if deflate:
+
+ if deflate or getattr(settings, 'ENABLE_SAML_COMPRESSION', True):
request = OneLogin_Saml2_Utils.deflate_and_base64_encode(self.__authn_request)
else:
request = b64encode(self.__authn_request)