From be0797cb8d751cce7c880ebefb7ed1efa14c6237 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 30 Jan 2021 13:48:35 -0800 Subject: [PATCH 01/27] initial commit to add travis ci and a mock unittest --- .travis.yml | 10 ++++++++++ tests/test_test.py | 13 +++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 .travis.yml create mode 100644 tests/test_test.py diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..ca098a5 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,10 @@ +language: python +python: + - "3.6" +# command to install dependencies +install: + - sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl + - pip install . +# command to run tests +script: + - pytest --verbose \ No newline at end of file diff --git a/tests/test_test.py b/tests/test_test.py new file mode 100644 index 0000000..6034f43 --- /dev/null +++ b/tests/test_test.py @@ -0,0 +1,13 @@ +import unittest + + +class MyTestCase(unittest.TestCase): + def test_something(self): + self.assertEqual(True, False) + + def test_something_else(self): + self.assertEqual(True, True) + + +if __name__ == '__main__': + unittest.main() From f2b3cc9e15d91cad8eea607db86a12077571e567 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 30 Jan 2021 13:53:38 -0800 Subject: [PATCH 02/27] Skip failing test (intentionally) --- tests/test_test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_test.py b/tests/test_test.py index 6034f43..81a3233 100644 --- a/tests/test_test.py +++ b/tests/test_test.py @@ -2,6 +2,7 @@ class MyTestCase(unittest.TestCase): + @unittest.skip def test_something(self): self.assertEqual(True, False) From b0a7ef451589d86e052cf44e95fb61277f41e49a Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 30 Jan 2021 14:02:17 -0800 Subject: [PATCH 03/27] Add coveralls support for coverage checking --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ca098a5..b837a2a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,4 +7,6 @@ install: - pip install . # command to run tests script: - - pytest --verbose \ No newline at end of file + - pytest --verbose +after_success: + - coveralls \ No newline at end of file From 330de6328622f0eb042fe62c02c11bb6a07af16c Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 30 Jan 2021 14:06:30 -0800 Subject: [PATCH 04/27] Change script to support coverage --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b837a2a..52ee6b1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,6 @@ install: - pip install . # command to run tests script: - - pytest --verbose + - coverage run --source=saml_reader -m pytest --verbose after_success: - coveralls \ No newline at end of file From c309a0ce7bb160b02b1e3ebff7542d5d07ae2562 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 30 Jan 2021 14:09:47 -0800 Subject: [PATCH 05/27] install coverage packages --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 52ee6b1..73c72e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ python: install: - sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl - pip install . + - pip install coverage coveralls # command to run tests script: - coverage run --source=saml_reader -m pytest --verbose From 7e85ecf1e5c616860ffb50fd56ab7eaee0fce7f9 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 30 Jan 2021 14:20:25 -0800 Subject: [PATCH 06/27] Add badges to readme --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index d9b3ece..01ab940 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # SAML Reader +[![Build Status](https://travis-ci.com/clegaspi/saml_reader.svg?branch=master)](https://travis-ci.com/clegaspi/saml_reader) +[![Coverage Status](https://coveralls.io/repos/github/clegaspi/saml_reader/badge.svg?branch=add_travis)](https://coveralls.io/github/clegaspi/saml_reader?branch=add_travis) + ## **IMPORTANT** Please **DO NOT** add any personally identifiable information (PII) when reporting an issue. From 1ab02661752dfa4ef0991997eee24fb72de9a67b Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 20 Mar 2021 23:03:19 -0700 Subject: [PATCH 07/27] Tests for cert.py --- tests/test_cert.py | 73 ++++++++++++++++++++++++++++++++++++++++++++++ tests/test_test.py | 14 --------- 2 files changed, 73 insertions(+), 14 deletions(-) create mode 100644 tests/test_cert.py delete mode 100644 tests/test_test.py diff --git a/tests/test_cert.py b/tests/test_cert.py new file mode 100644 index 0000000..28c27cd --- /dev/null +++ b/tests/test_cert.py @@ -0,0 +1,73 @@ +import unittest + +from saml_reader.cert import Certificate + + +class CertificateTests(unittest.TestCase): + # The x509 certificate used here is a self-signed certificate from + # https://www.samltool.com/self_signed_certs.php and carries no validity for any real system. + + def setUp(self): + self.cert_data = """MIICsjCCAhugAwIBAgIBADANBgkqhkiG9w0BAQ0FADB2MQswCQYDVQQGEwJ1czET +MBEGA1UECAwKQ2FsaWZvcm5pYTEYMBYGA1UECgwPRm9vIEVudGVycHJpc2VzMRAw +DgYDVQQDDAdmb28uY29tMRAwDgYDVQQHDAdBbnl0b3duMRQwEgYDVQQLDAtCYXIg +SGFja2VyczAeFw0yMTAzMjEwNTU1MzRaFw0yMjAzMjEwNTU1MzRaMHYxCzAJBgNV +BAYTAnVzMRMwEQYDVQQIDApDYWxpZm9ybmlhMRgwFgYDVQQKDA9Gb28gRW50ZXJw +cmlzZXMxEDAOBgNVBAMMB2Zvby5jb20xEDAOBgNVBAcMB0FueXRvd24xFDASBgNV +BAsMC0JhciBIYWNrZXJzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCe2Ks8 +RJ076uDQEuVsfzgqzjRRveW5IFyq7JS8kui0oDzEAGKEoCRQdtEXsQV+SGC59Aw/ +oWkjr4R5ES9uOsey2q6fux27axisM0enZouZUxK1/p7Ac7p/WvqJ0rUZPv7Vaivk +deHD+x9XKF8nwE+qUXcoZxsmkYQVHoJRtLQh0wIDAQABo1AwTjAdBgNVHQ4EFgQU +qdfqajF6ln6wLv93sefMpk044m0wHwYDVR0jBBgwFoAUqdfqajF6ln6wLv93sefM +pk044m0wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQ0FAAOBgQCaFCsqsZQn8Pbp +zHE0j5Nv4jkETpiAP5CnBpl+M2icJDFO/9nyLNTm8uX357Sx2UKKjh1pjJE3RYal +RIunxMna1LIuDdwB+my11qbq7jh8HhHtpqr7XQ2256zLgJUyW/El/HjEP31antDu +qIOIVbHWPK7mJ7ObtI/kFXG/gbdaRw==""" + + def test_load_cert_with_linebreaks(self): + try: + _ = Certificate(self.cert_data) + except Exception as e: + self.fail(f"Test raised exception: {e}") + + def test_load_cert_without_linebreaks(self): + cert_data_no_linebreaks = self.cert_data.replace('\n', '') + try: + _ = Certificate(cert_data_no_linebreaks) + except Exception as e: + self.fail(f"Test raised exception: {e}") + + def test_get_subject_as_dict(self): + cert = Certificate(self.cert_data) + actual_subject = cert.get_subject() + expected_subject = { + 'C': 'us', + 'ST': 'California', + 'O': 'Foo Enterprises', + 'CN': 'foo.com', + 'L': 'Anytown', + 'OU': 'Bar Hackers' + } + self.assertEqual(actual_subject, expected_subject) + + def test_get_subject_as_str(self): + cert = Certificate(self.cert_data) + actual_subject = cert.get_subject(as_string=True) + expected_subject = "OU=Bar Hackers,L=Anytown,CN=foo.com,O=Foo Enterprises,ST=California,C=us" + self.assertEqual(actual_subject, expected_subject) + + def test_get_organization(self): + cert = Certificate(self.cert_data) + actual_org = cert.get_organization_name() + expected_org = "Foo Enterprises" + self.assertEqual(actual_org, expected_org) + + def test_get_common_name(self): + cert = Certificate(self.cert_data) + actual_cn = cert.get_common_name() + expected_cn = "foo.com" + self.assertEqual(actual_cn, expected_cn) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_test.py b/tests/test_test.py deleted file mode 100644 index 81a3233..0000000 --- a/tests/test_test.py +++ /dev/null @@ -1,14 +0,0 @@ -import unittest - - -class MyTestCase(unittest.TestCase): - @unittest.skip - def test_something(self): - self.assertEqual(True, False) - - def test_something_else(self): - self.assertEqual(True, True) - - -if __name__ == '__main__': - unittest.main() From e062cc64993cb1f6fa1f580aa1859e11769b5ad7 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 20 Mar 2021 23:07:49 -0700 Subject: [PATCH 08/27] Move comment --- tests/test_cert.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_cert.py b/tests/test_cert.py index 28c27cd..19c027f 100644 --- a/tests/test_cert.py +++ b/tests/test_cert.py @@ -4,10 +4,10 @@ class CertificateTests(unittest.TestCase): - # The x509 certificate used here is a self-signed certificate from - # https://www.samltool.com/self_signed_certs.php and carries no validity for any real system. - def setUp(self): + # The x509 certificate used here is a self-signed certificate from + # https://www.samltool.com/self_signed_certs.php and carries no validity for any real system. + self.cert_data = """MIICsjCCAhugAwIBAgIBADANBgkqhkiG9w0BAQ0FADB2MQswCQYDVQQGEwJ1czET MBEGA1UECAwKQ2FsaWZvcm5pYTEYMBYGA1UECgwPRm9vIEVudGVycHJpc2VzMRAw DgYDVQQDDAdmb28uY29tMRAwDgYDVQQHDAdBbnl0b3duMRQwEgYDVQQLDAtCYXIg From 3b89e6d7682603cd37a4c44b6ee8556e9c24acea Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 27 Mar 2021 18:17:25 -0700 Subject: [PATCH 09/27] Reading cert from alternate location (#35) --- saml_reader/saml/parser.py | 45 ++++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/saml_reader/saml/parser.py b/saml_reader/saml/parser.py index 8183250..c46a0f0 100644 --- a/saml_reader/saml/parser.py +++ b/saml_reader/saml/parser.py @@ -59,21 +59,14 @@ def _parse_saml_values(self): """ value_by_field = { - 'certificate': self._saml.query_assertion( - '/ds:Signature/ds:KeyInfo/ds:X509Data/ds:X509Certificate' - ), + 'certificate': self.__get_certificate(), 'name_id': self._saml.query_assertion( '/saml:Subject/saml:NameID' ), 'name_id_format': self._saml.query_assertion( '/saml:Subject/saml:NameID' ), - 'acs': [ - self._saml.query('/samlp:Response'), - self._saml.query_assertion( - '/saml:Subject/saml:SubjectConfirmation/saml:SubjectConfirmationData' - ) - ], + 'acs': self.__get_acs(), 'encryption': self._saml.query_assertion('/ds:Signature/ds:SignedInfo/ds:SignatureMethod') or self._saml.query('/samlp:Response/ds:Signature/ds:SignedInfo/ds:SignatureMethod'), @@ -83,10 +76,10 @@ def _parse_saml_values(self): } transform_by_field = { - 'certificate': lambda x: x[0].text if x else None, + 'certificate': lambda x: x, 'name_id': lambda x: x[0].text if x else None, 'name_id_format': lambda x: x[0].attrib.get('Format') if x else None, - 'acs': lambda x: x[0][0].attrib.get('Destination') or x[1][0].attrib.get('Recipient') or None, + 'acs': lambda x: x, 'encryption': self.__parse_encryption, 'audience': lambda x: x[0].text if x else None, 'issuer': lambda x: x[0].text if x else None, @@ -96,6 +89,36 @@ def _parse_saml_values(self): for field, value in value_by_field.items(): self._saml_values[field] = transform_by_field[field](value) + def __get_acs(self): + """ + Return the Assertion Consumer Service URL, if it exists in the SAML data + + Returns: + (`basestring` or `None`) ACS data, or None, if it doesn't exist + """ + value = self._saml.query('/samlp:Response') + if value: + return value[0].attrib.get('Destination') + value = self._saml.query_assertion( + '/saml:Subject/saml:SubjectConfirmation/saml:SubjectConfirmationData' + ) + if value: + return value[0].attrib.get('Recipient') + return None + + def __get_certificate(self): + """ + Return the certificate data, if it exists in the SAML data + + Returns: + (`basestring` or `None`) Certificate data, or None, if it doesn't exist + """ + value = self._saml.query_assertion('/ds:Signature/ds:KeyInfo/ds:X509Data/ds:X509Certificate') or \ + self._saml.query('/samlp:Response/ds:Signature/ds:KeyInfo/ds:X509Data/ds:X509Certificate') + if not value: + return None + return value[0].text + @staticmethod def __parse_attributes(attribute_data): """ From 8c32879bd5eed83c30cf6c03a8bd85a96391c090 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 27 Mar 2021 19:09:31 -0700 Subject: [PATCH 10/27] Adding start of har tests, testing travis encrypted file --- .gitignore | 1 + .travis.yml | 2 ++ tests/data/redacted.har.enc | Bin 0 -> 31776 bytes tests/test_har.py | 27 +++++++++++++++++++++++++++ 4 files changed, 30 insertions(+) create mode 100644 .gitignore create mode 100644 tests/data/redacted.har.enc create mode 100644 tests/test_har.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..964d4a8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/tests/data/redacted.har diff --git a/.travis.yml b/.travis.yml index 73c72e7..206ff3c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,8 @@ language: python python: - "3.6" # command to install dependencies +before_install: + - openssl aes-256-cbc -K $encrypted_d83e6e0e8a96_key -iv $encrypted_d83e6e0e8a96_iv -in tests/redacted.har.enc -out tests/redacted.har -d install: - sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl - pip install . diff --git a/tests/data/redacted.har.enc b/tests/data/redacted.har.enc new file mode 100644 index 0000000000000000000000000000000000000000..77a78307137ab56e16b174c94d0c7460c2ba7737 GIT binary patch literal 31776 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 None: + if not os.path.exists(TEST_HAR_DATA): + raise FileNotFoundError( + "HAR data for testing not found! Modify TEST_HAR_DATA with path to valid HAR file" + ) + with open(TEST_HAR_DATA, 'r') as f: + cls.har_data = f.read() + + def test_load_har(self): + pass + + +if __name__ == '__main__': + unittest.main() From da8cc0af7dad0a7d8ce7c5e4968484531cc5f729 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 27 Mar 2021 19:11:21 -0700 Subject: [PATCH 11/27] Fix data path --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 206ff3c..3870451 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ python: - "3.6" # command to install dependencies before_install: - - openssl aes-256-cbc -K $encrypted_d83e6e0e8a96_key -iv $encrypted_d83e6e0e8a96_iv -in tests/redacted.har.enc -out tests/redacted.har -d + - openssl aes-256-cbc -K $encrypted_d83e6e0e8a96_key -iv $encrypted_d83e6e0e8a96_iv -in tests/data/redacted.har.enc -out tests/data/redacted.har -d install: - sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl - pip install . From b3549f6f80153c37d8a16b435710ab56d66c2ab9 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 27 Mar 2021 19:13:23 -0700 Subject: [PATCH 12/27] Remove path --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3870451..2d290a0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ python: - "3.6" # command to install dependencies before_install: - - openssl aes-256-cbc -K $encrypted_d83e6e0e8a96_key -iv $encrypted_d83e6e0e8a96_iv -in tests/data/redacted.har.enc -out tests/data/redacted.har -d + - openssl aes-256-cbc -K $encrypted_d83e6e0e8a96_key -iv $encrypted_d83e6e0e8a96_iv -in redacted.har.enc -out redacted.har -d install: - sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl - pip install . From 3f7028370948623c67716e0667470d8baf5801c8 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sat, 27 Mar 2021 19:23:26 -0700 Subject: [PATCH 13/27] Putting path back again since it worked before --- .travis.yml | 2 +- tests/data/redacted.har.enc | Bin 31776 -> 31776 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2d290a0..3870451 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,7 @@ python: - "3.6" # command to install dependencies before_install: - - openssl aes-256-cbc -K $encrypted_d83e6e0e8a96_key -iv $encrypted_d83e6e0e8a96_iv -in redacted.har.enc -out redacted.har -d + - openssl aes-256-cbc -K $encrypted_d83e6e0e8a96_key -iv $encrypted_d83e6e0e8a96_iv -in tests/data/redacted.har.enc -out tests/data/redacted.har -d install: - sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl - pip install . diff --git a/tests/data/redacted.har.enc b/tests/data/redacted.har.enc index 77a78307137ab56e16b174c94d0c7460c2ba7737..f98a272a2a25e30ab1441eb251bfefd4a54b2f64 100644 GIT binary patch literal 31776 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 Date: Sat, 27 Mar 2021 19:29:55 -0700 Subject: [PATCH 14/27] Uploading re-encrypted file --- tests/data/redacted.har.enc | Bin 31776 -> 31776 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/data/redacted.har.enc b/tests/data/redacted.har.enc index f98a272a2a25e30ab1441eb251bfefd4a54b2f64..4b9f500b7c7be722b1da93691b5df46a75f9e302 100644 GIT binary patch literal 31776 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%0D=+3wCnI8B{?GYoCHPt7)Y@st8Jmf9-=hF9! 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

G=0E>}oBoY_IIrf~%_Yved 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 Date: Sat, 27 Mar 2021 19:47:41 -0700 Subject: [PATCH 15/27] Change cert test setup to class setup --- tests/test_cert.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/test_cert.py b/tests/test_cert.py index 19c027f..fcc0fb5 100644 --- a/tests/test_cert.py +++ b/tests/test_cert.py @@ -4,11 +4,12 @@ class CertificateTests(unittest.TestCase): - def setUp(self): + @classmethod + def setUpClass(cls): # The x509 certificate used here is a self-signed certificate from # https://www.samltool.com/self_signed_certs.php and carries no validity for any real system. - self.cert_data = """MIICsjCCAhugAwIBAgIBADANBgkqhkiG9w0BAQ0FADB2MQswCQYDVQQGEwJ1czET + cls.cert_data = """MIICsjCCAhugAwIBAgIBADANBgkqhkiG9w0BAQ0FADB2MQswCQYDVQQGEwJ1czET MBEGA1UECAwKQ2FsaWZvcm5pYTEYMBYGA1UECgwPRm9vIEVudGVycHJpc2VzMRAw DgYDVQQDDAdmb28uY29tMRAwDgYDVQQHDAdBbnl0b3duMRQwEgYDVQQLDAtCYXIg SGFja2VyczAeFw0yMTAzMjEwNTU1MzRaFw0yMjAzMjEwNTU1MzRaMHYxCzAJBgNV From 75560660530477f3ed099fb33e72ee76d740fabf Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sun, 28 Mar 2021 16:02:38 -0700 Subject: [PATCH 16/27] Rewriting HarParser to parse in constructor (#36) and other improvement to code modularity --- saml_reader/har.py | 79 ++++++++++++++++++++++++++++++++------ saml_reader/text_reader.py | 11 ++++-- 2 files changed, 74 insertions(+), 16 deletions(-) diff --git a/saml_reader/har.py b/saml_reader/har.py index 9fd25e6..c7c5520 100644 --- a/saml_reader/har.py +++ b/saml_reader/har.py @@ -5,6 +5,8 @@ import json from urllib.parse import unquote +from datetime import datetime +from enum import Enum import haralyzer @@ -40,18 +42,21 @@ def __init__(self, data): self.data = json.loads(data) except json.JSONDecodeError: raise HarParsingError("Problem reading HAR JSON data") - self.parsed_data = None - self.errors = [] - def parse(self): + self.responses = self.__parse(self.data) + # Sort responses newest to oldest + self.responses.sort(reverse=True, key=lambda x: x.date) + + @staticmethod + def __parse(raw_json): """ - Parses the raw HAR data and stores it in the object. + Parses the raw HAR data and returns SAML response data. Returns: - (basestring): SAML response as base64 string + (`list` of `RawSamlData`): SAML response data found in HAR file """ try: - parsed_har = haralyzer.HarParser(self.data) + parsed_har = haralyzer.HarParser(raw_json) except Exception: # This is a wide catch-all raise HarParsingError("Could not parse the HAR data") @@ -59,18 +64,39 @@ def parse(self): responses = [] for page in parsed_har.pages: for post in page.post_requests: + timestamp = post['startedDateTime'] + url = post.get('request', {}).get('url', "") for param in post.get('request', {}).get('postData', {}).get('params', []): if param['name'] == 'SAMLResponse': - responses.append(param['value']) - - if len(responses) > 1: - self.errors.append("Multiple SAML responses found. Using the first one.") + unencoded_response = unquote(param['value']) + responses.append( + RawSamlData('response', unencoded_response, timestamp, url) + ) if not responses: raise NoSAMLResponseFound("No SAML response found in the HAR file") - self.parsed_data = unquote(responses[0]) - return self.parsed_data + return responses + + def get_raw_saml_response(self): + """ + Returns the most recent SAML response in the HAR data (if there are multiple) as + url-decoded base64-encoded string. + + Returns: + (basestring) Raw SAML data as base64-encoded string + + """ + return self.responses[0].saml_string + + def contains_multiple_responses(self): + """ + Checks if the HAR data contained multiple SAML responses. + + Returns: + (bool) True if contained more than one SAML response. False otherwise. + """ + return len(self.responses) > 1 @classmethod def from_file(cls, filename): @@ -85,3 +111,32 @@ def from_file(cls, filename): """ with open(filename, 'r') as f: return cls(f.read()) + + +class RawSamlData: + """ + Simple data structure for holding raw SAML data and some metadata + """ + class _SamlDataType(Enum): + """ + Enumeration of possible SAML data types + """ + RESPONSE = 0 + REQUEST = 1 + + def __init__(self, data_type, saml_string, date, url): + """ + Create data structure object + + Args: + data_type (basestring): Type of SAML data ('request' or 'response') + saml_string (basestring): URL-decoded base64 string containing SAML data + date (basestring): timestamp of request from HAR file, formatted "2019-11-04T10:00:00.000-08:00" + url (basestring): destination URL of the SAML data + """ + self.data_type = self._SamlDataType[data_type.upper()] + self.saml_string = saml_string + if ":" == date[-3:-2]: + date = date[:-3] + date[-2:] + self.date = datetime.strptime(date, "%Y-%m-%dT%H:%M:%S.%f%z") + self.url = url diff --git a/saml_reader/text_reader.py b/saml_reader/text_reader.py index 91d31e9..9d0134f 100644 --- a/saml_reader/text_reader.py +++ b/saml_reader/text_reader.py @@ -206,13 +206,16 @@ def _parse_raw_data(self, input_type, data, parser=StandardSamlParser): return parser.from_xml(data) if input_type == 'har': try: - # TODO: Do the HAR parsing in the constructor? har_parser = HarParser(data) - data = har_parser.parse() except HarParsingError as e: raise DataTypeInvalid(*e.args) - self._errors.extend(har_parser.errors) - return parser.from_base64(data) + if har_parser.contains_multiple_responses(): + # TODO: This is a place where some optimization could happen, such as prompting + # the user to select one of the responses, or trying to analyze the destination + # URL to see which one is "probably" right by matching the ACS pattern + self._errors.append("Multiple SAML responses found! Using the most recent.") + raw_saml_data = har_parser.get_raw_saml_response() + return parser.from_base64(raw_saml_data) raise DataTypeInvalid(f"Invalid data type specified: {input_type}") def get_saml(self): From 5813c5ff288ad81e258c13f6a7cfd5b8b745af6d Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sun, 28 Mar 2021 16:28:00 -0700 Subject: [PATCH 17/27] Update redacted HAR test data and include script for producing it --- tests/data/redact_har_data.py | 72 ++++++++++++++++++++++++++++++++++ tests/data/redacted.har.enc | Bin 31776 -> 63312 bytes 2 files changed, 72 insertions(+) create mode 100644 tests/data/redact_har_data.py diff --git a/tests/data/redact_har_data.py b/tests/data/redact_har_data.py new file mode 100644 index 0000000..1f43c86 --- /dev/null +++ b/tests/data/redact_har_data.py @@ -0,0 +1,72 @@ +""" +This script will strip a HAR file to include only SAML request and response data, +and redact all cookie and header data. + +Running from the command line, the first argument is the path to the source file and +the second is the path to the destination. +""" + +import json +from datetime import datetime, timedelta +from copy import deepcopy +import sys + + +def redact_har_file(source_file, destination_file): + # Read source file + with open(source_file, 'r') as f: + har = json.load(f) + + # Find only SAML Request and Response data in the HAR file + response_data = [e for e in har['log']['entries'] + if e['request']['method'] == 'POST' and \ + any(p['name'].startswith('SAML') for p in e['request'].get('postData', {}).get('params', []))] + + # Redact header and cookie values + for entry in response_data: + for t in ('request', 'response'): + for category in ('cookies', 'headers'): + for values_to_edit in entry[t][category]: + values_to_edit['value'] = "redacted" + + # Collect pages that match the entries found + page_nums = {p['pageref'] for p in response_data} + pages = [p for p in har['log']['pages'] if p['id'] in page_nums] + + # Create a second set of SAML data entries which are one day in the future. + # This is to test having multiple entries in the file. + second_response_entries = [] + + for entry in response_data: + raw_timestamp = entry['startedDateTime'] + + # HAR timestamps have a colon in the timezone offset. Removing it here. + if ":" == raw_timestamp[-3:-2]: + raw_timestamp = raw_timestamp[:-3] + raw_timestamp[-2:] + timestamp = datetime.strptime(raw_timestamp, "%Y-%m-%dT%H:%M:%S.%f%z") + new_timestamp = timestamp + timedelta(days=1) + + new_raw_timestamp = new_timestamp.strftime("%Y-%m-%dT%H:%M:%S") + # HAR timestamps have milliseconds instead of microseconds. Removing excess digits. + new_raw_timestamp += new_timestamp.strftime(".%f")[:4] + # HAR timestamps have a colon in the timezone offset. Adding it in here. + new_raw_timestamp += new_timestamp.strftime("%z") + new_raw_timestamp = new_raw_timestamp[:-2] + ":" + new_raw_timestamp[-2:] + + new_entry = deepcopy(entry) + new_entry['startedDateTime'] = new_raw_timestamp + second_response_entries.append(new_entry) + + out = {'log': { + 'pages': pages, + 'entries': response_data + second_response_entries} + } + + with open(destination_file, 'w') as f: + json.dump(out, f) + + +if __name__ == '__main__': + if len(sys.argv) != 3: + raise ValueError("Incorrect number of arguments specified! Need only a source and destination file.") + redact_har_file(*sys.argv[1:]) diff --git a/tests/data/redacted.har.enc b/tests/data/redacted.har.enc index 4b9f500b7c7be722b1da93691b5df46a75f9e302..802129c7ffd5d1215ed096ad65dcd9b1c4af6b65 100644 GIT binary patch literal 63312 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 BX+Hn} literal 31776 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%0D=+3wCnI8B{?GYoCHPt7)Y@st8Jmf9-=hF9! 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

G=0E>}oBoY_IIrf~%_Yved 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 Date: Sun, 28 Mar 2021 16:32:29 -0700 Subject: [PATCH 18/27] Remove todo line that is done --- saml_reader/har.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/saml_reader/har.py b/saml_reader/har.py index c7c5520..bf71f31 100644 --- a/saml_reader/har.py +++ b/saml_reader/har.py @@ -36,8 +36,6 @@ def __init__(self, data): Args: data (basestring): Raw HAR data as JSON-string """ - # TODO: Consider parsing this upon creation and writing a getter for SAML response(s) - # to wrap the haralyzer package more thoroughly try: self.data = json.loads(data) except json.JSONDecodeError: From 7ad364746f6735a06f0c89984e6e113b79128b3b Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sun, 28 Mar 2021 17:04:52 -0700 Subject: [PATCH 19/27] Add raises information to docs --- saml_reader/har.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/saml_reader/har.py b/saml_reader/har.py index bf71f31..4b423cd 100644 --- a/saml_reader/har.py +++ b/saml_reader/har.py @@ -35,6 +35,9 @@ def __init__(self, data): Args: data (basestring): Raw HAR data as JSON-string + + Raises: + (HarParsingError) If there is an error reading the HAR data """ try: self.data = json.loads(data) @@ -50,8 +53,14 @@ def __parse(raw_json): """ Parses the raw HAR data and returns SAML response data. + Args: + raw_json (dict): HAR JSON as a dictionary + Returns: (`list` of `RawSamlData`): SAML response data found in HAR file + + Raises: + (HarParsingError) If the HAR parsing class could not parse JSON as HAR data """ try: parsed_har = haralyzer.HarParser(raw_json) From 638d61a58da9c24f5722dd112ba8357828663d65 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sun, 28 Mar 2021 17:05:30 -0700 Subject: [PATCH 20/27] Update redaction script to output multiple HAR files --- tests/data/redact_har_data.py | 62 +++++++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 13 deletions(-) diff --git a/tests/data/redact_har_data.py b/tests/data/redact_har_data.py index 1f43c86..9785753 100644 --- a/tests/data/redact_har_data.py +++ b/tests/data/redact_har_data.py @@ -2,42 +2,44 @@ This script will strip a HAR file to include only SAML request and response data, and redact all cookie and header data. -Running from the command line, the first argument is the path to the source file and -the second is the path to the destination. +Running from the command line, the first argument is the path to the source file, which +should contain at least one SAML Request and one SAML Response. The second argument is the output path +for the redacted files. The third argument is a template for the output filenames. """ import json from datetime import datetime, timedelta from copy import deepcopy import sys +import os -def redact_har_file(source_file, destination_file): +def redact_har_file(source_file, destination_path, filename_template): # Read source file with open(source_file, 'r') as f: har = json.load(f) # Find only SAML Request and Response data in the HAR file - response_data = [e for e in har['log']['entries'] + entries = [e for e in har['log']['entries'] if e['request']['method'] == 'POST' and \ any(p['name'].startswith('SAML') for p in e['request'].get('postData', {}).get('params', []))] # Redact header and cookie values - for entry in response_data: + for entry in entries: for t in ('request', 'response'): for category in ('cookies', 'headers'): for values_to_edit in entry[t][category]: values_to_edit['value'] = "redacted" # Collect pages that match the entries found - page_nums = {p['pageref'] for p in response_data} + page_nums = {p['pageref'] for p in entries} pages = [p for p in har['log']['pages'] if p['id'] in page_nums] # Create a second set of SAML data entries which are one day in the future. # This is to test having multiple entries in the file. second_response_entries = [] - for entry in response_data: + for entry in entries: raw_timestamp = entry['startedDateTime'] # HAR timestamps have a colon in the timezone offset. Removing it here. @@ -57,16 +59,50 @@ def redact_har_file(source_file, destination_file): new_entry['startedDateTime'] = new_raw_timestamp second_response_entries.append(new_entry) - out = {'log': { + responses = [] + requests = [] + + for entry in entries + second_response_entries: + if any(p['name'] == 'SAMLRequest' for p in entry['request']['postData']['params']): + requests.append(entry) + else: + responses.append(entry) + + both_types_out = {'log': { + 'pages': pages, + 'entries': entries + second_response_entries} + } + + responses_out = {'log': { + 'pages': pages, + 'entries': responses} + } + + requests_out = {'log': { + 'pages': pages, + 'entries': requests} + } + + no_saml_data_out = {'log': { 'pages': pages, - 'entries': response_data + second_response_entries} + 'entries': []} } - with open(destination_file, 'w') as f: - json.dump(out, f) + with open(os.path.join(destination_path, filename_template + "_saml.har"), 'w') as f: + json.dump(both_types_out, f) + + with open(os.path.join(destination_path, filename_template + "_requests.har"), 'w') as f: + json.dump(requests_out, f) + + with open(os.path.join(destination_path, filename_template + "_responses.har"), 'w') as f: + json.dump(responses_out, f) + + with open(os.path.join(destination_path, filename_template + "_nodata.har"), 'w') as f: + json.dump(no_saml_data_out, f) if __name__ == '__main__': - if len(sys.argv) != 3: - raise ValueError("Incorrect number of arguments specified! Need only a source and destination file.") + if len(sys.argv) != 4: + raise ValueError("Incorrect number of arguments specified! " + "Need source file, destination path, filename template") redact_har_file(*sys.argv[1:]) From e0192c3c180875101f7221775bc7c06f1f99d334 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sun, 28 Mar 2021 17:20:08 -0700 Subject: [PATCH 21/27] Update har test data --- .gitignore | 6 +++++- .travis.yml | 5 ++++- tests/data/redacted.har.enc | Bin 63312 -> 0 bytes tests/data/redacted_har_data.tar.gz.enc | Bin 0 -> 25440 bytes 4 files changed, 9 insertions(+), 2 deletions(-) delete mode 100644 tests/data/redacted.har.enc create mode 100644 tests/data/redacted_har_data.tar.gz.enc diff --git a/.gitignore b/.gitignore index 964d4a8..b07a190 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ -/tests/data/redacted.har +/tests/data/redacted_nodata.har +/tests/data/redacted_requests.har +/tests/data/redacted_responses.har +/tests/data/redacted_saml.har +/tests/data/redacted_har_data.tar.gz diff --git a/.travis.yml b/.travis.yml index 3870451..635db28 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,10 @@ python: - "3.6" # command to install dependencies before_install: - - openssl aes-256-cbc -K $encrypted_d83e6e0e8a96_key -iv $encrypted_d83e6e0e8a96_iv -in tests/data/redacted.har.enc -out tests/data/redacted.har -d + - > + openssl aes-256-cbc -K $encrypted_b6a0e19775d3_key -iv $encrypted_b6a0e19775d3_iv + -in tests/data/redacted_har_data.tar.gz.enc -out tests/data/redacted_har_data.tar.gz -d + - tar -zxvf tests/data/redacted_har_data.tar.gz -c tests/data install: - sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl - pip install . diff --git a/tests/data/redacted.har.enc b/tests/data/redacted.har.enc deleted file mode 100644 index 802129c7ffd5d1215ed096ad65dcd9b1c4af6b65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63312 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 BX+Hn} diff --git a/tests/data/redacted_har_data.tar.gz.enc b/tests/data/redacted_har_data.tar.gz.enc new file mode 100644 index 0000000000000000000000000000000000000000..68fcf9e7dfa1d76cf120810c3477a68912bee58b GIT binary patch literal 25440 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 Date: Sun, 28 Mar 2021 17:28:44 -0700 Subject: [PATCH 22/27] Update har test data again --- tests/data/redacted_har_data.tar.gz.enc | Bin 25440 -> 25440 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/data/redacted_har_data.tar.gz.enc b/tests/data/redacted_har_data.tar.gz.enc index 68fcf9e7dfa1d76cf120810c3477a68912bee58b..c5f3e931cfd75438de1462efdb163b9e8ec9808b 100644 GIT binary patch literal 25440 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 bx|CwK!7Y#YuRzjr{E4f*Z4s4)78OqbMDU0t literal 25440 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 Date: Sun, 28 Mar 2021 17:29:12 -0700 Subject: [PATCH 23/27] Update travis file --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 635db28..e6c9894 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ before_install: - > openssl aes-256-cbc -K $encrypted_b6a0e19775d3_key -iv $encrypted_b6a0e19775d3_iv -in tests/data/redacted_har_data.tar.gz.enc -out tests/data/redacted_har_data.tar.gz -d - - tar -zxvf tests/data/redacted_har_data.tar.gz -c tests/data + - tar -zxvf tests/data/redacted_har_data.tar.gz -C tests/data install: - sudo apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl - pip install . From b16c24bb31a3a386e4892a849fb0c509781009cf Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sun, 28 Mar 2021 17:57:29 -0700 Subject: [PATCH 24/27] Update har data and tests --- tests/data/redacted_har_data.tar.gz.enc | Bin 25440 -> 12416 bytes tests/test_har.py | 44 ++++++++++++++++++++---- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/tests/data/redacted_har_data.tar.gz.enc b/tests/data/redacted_har_data.tar.gz.enc index c5f3e931cfd75438de1462efdb163b9e8ec9808b..9a2f64b72a27990c427cbf1bf064906ac08a1300 100644 GIT binary patch literal 12416 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 literal 25440 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 bx|CwK!7Y#YuRzjr{E4f*Z4s4)78OqbMDU0t diff --git a/tests/test_har.py b/tests/test_har.py index 541a2fb..09a3e6e 100644 --- a/tests/test_har.py +++ b/tests/test_har.py @@ -1,26 +1,56 @@ import unittest import os +import json -from saml_reader.har import HarParser +from saml_reader.har import HarParser, HarParsingError, NoSAMLResponseFound # The HAR data included here has been constructed from an actual login session, but # has been highly redacted. The infrastructure that generated this SAML data has been # torn down and is no longer usable. -TEST_HAR_DATA = './tests/data/redacted.har' +TEST_DATA = { + 'all_data': './tests/data/redacted_saml.har', + 'response': './tests/data/redacted_responses.har', + 'request': './tests/data/redacted_requests.har', + 'no_data': './tests/data/redacted_nodata.har' +} class HarTests(unittest.TestCase): @classmethod def setUpClass(cls) -> None: - if not os.path.exists(TEST_HAR_DATA): + missing_files = [data for data, file in TEST_DATA.items() if not os.path.exists(file)] + if missing_files: raise FileNotFoundError( - "HAR data for testing not found! Modify TEST_HAR_DATA with path to valid HAR file" + f"HAR data for testing not found! Missing:" + "\n- ".join(missing_files) ) - with open(TEST_HAR_DATA, 'r') as f: + with open(TEST_DATA['all_data'], 'r') as f: cls.har_data = f.read() + with open(TEST_DATA['no_data'], 'r') as f: + cls.har_data_no_saml = f.read() + with open(TEST_DATA['response'], 'r') as f: + cls.har_data_response = f.read() + with open(TEST_DATA['request'], 'r') as f: + cls.har_data_request = f.read() - def test_load_har(self): - pass + def test_load_valid_har_both_saml_types(self): + _ = HarParser(self.har_data) + + def test_load_valid_har_responses_only(self): + _ = HarParser(self.har_data_response) + + def test_load_valid_har_requests_only(self): + with self.assertRaises(NoSAMLResponseFound): + _ = HarParser(self.har_data_request) + + def test_load_valid_har_no_saml_data(self): + with self.assertRaises(NoSAMLResponseFound): + _ = HarParser(self.har_data_no_saml) + + def test_load_invalid_har(self): + with self.assertRaises(HarParsingError): + _ = HarParser("This is invalid JSON") + with self.assertRaises(HarParsingError): + _ = HarParser(json.dumps({'value': 'This is valid JSON, but not a HAR file'})) if __name__ == '__main__': From ace8a7dab22252c8cdd0923b2480e478116c6ae8 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sun, 28 Mar 2021 18:10:10 -0700 Subject: [PATCH 25/27] Add additional test file with only one response --- .gitignore | 1 + tests/data/redact_har_data.py | 8 ++++++++ tests/test_har.py | 34 ++++++++++++++++++++-------------- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index b07a190..e0dc3aa 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /tests/data/redacted_responses.har /tests/data/redacted_saml.har /tests/data/redacted_har_data.tar.gz +/tests/data/redacted_oneresponse.har diff --git a/tests/data/redact_har_data.py b/tests/data/redact_har_data.py index 9785753..50af408 100644 --- a/tests/data/redact_har_data.py +++ b/tests/data/redact_har_data.py @@ -78,6 +78,11 @@ def redact_har_file(source_file, destination_path, filename_template): 'entries': responses} } + one_response_out = {'log': { + 'pages': [p for p in pages if p['id'] == responses[0]['pageref']], + 'entries': [responses[0]]} + } + requests_out = {'log': { 'pages': pages, 'entries': requests} @@ -97,6 +102,9 @@ def redact_har_file(source_file, destination_path, filename_template): with open(os.path.join(destination_path, filename_template + "_responses.har"), 'w') as f: json.dump(responses_out, f) + with open(os.path.join(destination_path, filename_template + "_oneresponse.har"), 'w') as f: + json.dump(one_response_out, f) + with open(os.path.join(destination_path, filename_template + "_nodata.har"), 'w') as f: json.dump(no_saml_data_out, f) diff --git a/tests/test_har.py b/tests/test_har.py index 09a3e6e..8867ca7 100644 --- a/tests/test_har.py +++ b/tests/test_har.py @@ -8,9 +8,10 @@ # has been highly redacted. The infrastructure that generated this SAML data has been # torn down and is no longer usable. TEST_DATA = { - 'all_data': './tests/data/redacted_saml.har', - 'response': './tests/data/redacted_responses.har', - 'request': './tests/data/redacted_requests.har', + 'multiple_requests_and_responses': './tests/data/redacted_saml.har', + 'two_responses': './tests/data/redacted_responses.har', + 'one_response': './tests/data/redacted_oneresponse.har', + 'two_requests': './tests/data/redacted_requests.har', 'no_data': './tests/data/redacted_nodata.har' } @@ -23,29 +24,34 @@ def setUpClass(cls) -> None: raise FileNotFoundError( f"HAR data for testing not found! Missing:" + "\n- ".join(missing_files) ) - with open(TEST_DATA['all_data'], 'r') as f: - cls.har_data = f.read() + with open(TEST_DATA['multiple_requests_and_responses'], 'r') as f: + cls.har_data_full = f.read() with open(TEST_DATA['no_data'], 'r') as f: cls.har_data_no_saml = f.read() - with open(TEST_DATA['response'], 'r') as f: - cls.har_data_response = f.read() - with open(TEST_DATA['request'], 'r') as f: - cls.har_data_request = f.read() + with open(TEST_DATA['two_responses'], 'r') as f: + cls.har_data_responses = f.read() + with open(TEST_DATA['one_response'], 'r') as f: + cls.har_data_one_response = f.read() + with open(TEST_DATA['two_requests'], 'r') as f: + cls.har_data_requests = f.read() def test_load_valid_har_both_saml_types(self): - _ = HarParser(self.har_data) + _ = HarParser(self.har_data_full) - def test_load_valid_har_responses_only(self): - _ = HarParser(self.har_data_response) + def test_load_valid_har_multiple_responses_only(self): + _ = HarParser(self.har_data_responses) - def test_load_valid_har_requests_only(self): + def test_load_valid_har_multiple_requests_only(self): with self.assertRaises(NoSAMLResponseFound): - _ = HarParser(self.har_data_request) + _ = HarParser(self.har_data_requests) def test_load_valid_har_no_saml_data(self): with self.assertRaises(NoSAMLResponseFound): _ = HarParser(self.har_data_no_saml) + def test_load_valid_har_one_response(self): + _ = HarParser(self.har_data_one_response) + def test_load_invalid_har(self): with self.assertRaises(HarParsingError): _ = HarParser("This is invalid JSON") From 2a85d116fb0bbc6506f0e759c93e0e7811aebc22 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sun, 28 Mar 2021 18:10:58 -0700 Subject: [PATCH 26/27] Update har data --- tests/data/redacted_har_data.tar.gz.enc | Bin 12416 -> 17152 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/data/redacted_har_data.tar.gz.enc b/tests/data/redacted_har_data.tar.gz.enc index 9a2f64b72a27990c427cbf1bf064906ac08a1300..a6deb855516e72ccb6d356cf416726236e2a1be6 100644 GIT binary patch literal 17152 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 From 55b56cbcdf335bec7bce0eb0fea0e2c26c4cb6b1 Mon Sep 17 00:00:00 2001 From: Christian Legaspi <1392774+clegaspi@users.noreply.github.com> Date: Sun, 28 Mar 2021 18:45:30 -0700 Subject: [PATCH 27/27] Create more har.py tests --- tests/test_har.py | 80 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/tests/test_har.py b/tests/test_har.py index 8867ca7..47e98a0 100644 --- a/tests/test_har.py +++ b/tests/test_har.py @@ -1,8 +1,10 @@ import unittest import os import json +from datetime import datetime +from urllib.parse import unquote -from saml_reader.har import HarParser, HarParsingError, NoSAMLResponseFound +from saml_reader.har import HarParser, HarParsingError, NoSAMLResponseFound, RawSamlData # The HAR data included here has been constructed from an actual login session, but # has been highly redacted. The infrastructure that generated this SAML data has been @@ -36,10 +38,12 @@ def setUpClass(cls) -> None: cls.har_data_requests = f.read() def test_load_valid_har_both_saml_types(self): - _ = HarParser(self.har_data_full) + har = HarParser(self.har_data_full) + self.assertIsInstance(har, HarParser) def test_load_valid_har_multiple_responses_only(self): - _ = HarParser(self.har_data_responses) + har = HarParser(self.har_data_responses) + self.assertIsInstance(har, HarParser) def test_load_valid_har_multiple_requests_only(self): with self.assertRaises(NoSAMLResponseFound): @@ -50,7 +54,8 @@ def test_load_valid_har_no_saml_data(self): _ = HarParser(self.har_data_no_saml) def test_load_valid_har_one_response(self): - _ = HarParser(self.har_data_one_response) + har = HarParser(self.har_data_one_response) + self.assertIsInstance(har, HarParser) def test_load_invalid_har(self): with self.assertRaises(HarParsingError): @@ -58,6 +63,73 @@ def test_load_invalid_har(self): with self.assertRaises(HarParsingError): _ = HarParser(json.dumps({'value': 'This is valid JSON, but not a HAR file'})) + def test_load_from_file(self): + har = HarParser.from_file(TEST_DATA['one_response']) + self.assertIsInstance(har, HarParser) + + def test_detect_multiple_responses(self): + # Positive test + har = HarParser(self.har_data_responses) + self.assertTrue(har.contains_multiple_responses()) + har = HarParser(self.har_data_full) + self.assertTrue(har.contains_multiple_responses()) + + # Negative test + har = HarParser(self.har_data_one_response) + self.assertFalse(har.contains_multiple_responses()) + + def test_returns_most_recent_saml_response(self): + # Gather timestamps from SAML responses and sort them to get most recent + raw_json = json.loads(self.har_data_responses) + timestamps = [x['startedDateTime'] for x in raw_json['log']['entries']] + date_objects = [ + datetime.strptime("".join(x.rsplit(":", 1)), "%Y-%m-%dT%H:%M:%S.%f%z") + for x in timestamps + ] + date_objects.sort(reverse=True) + most_recent_timestamp = date_objects[0] + + # Get SAML data + har = HarParser(self.har_data_responses) + most_recent_response = [x.saml_string for x in har.responses if x.date == most_recent_timestamp] + self.assertTrue(len(most_recent_response) == 1) + returned_response = har.get_raw_saml_response() + self.assertEqual(returned_response, most_recent_response[0]) + + def test_create_raw_saml_response_data_structure(self): + raw_json = json.loads(self.har_data_one_response) + timestamp = raw_json['log']['entries'][0]['startedDateTime'] + date_object = datetime.strptime("".join(timestamp.rsplit(":", 1)), "%Y-%m-%dT%H:%M:%S.%f%z") + url = raw_json['log']['entries'][0]['request']['url'] + saml_string = None + for param in raw_json['log']['entries'][0]['request']['postData']['params']: + if param['name'] == 'SAMLResponse': + saml_string = unquote(param['value']) + self.assertIsNotNone(saml_string) + + saml_object = RawSamlData('response', saml_string, timestamp, url) + self.assertEqual(saml_object.data_type, RawSamlData._SamlDataType.RESPONSE) + self.assertEqual(saml_object.url, url) + self.assertEqual(saml_object.saml_string, saml_string) + self.assertEqual(saml_object.date, date_object) + + def test_create_raw_saml_request_data_structure(self): + raw_json = json.loads(self.har_data_requests) + timestamp = raw_json['log']['entries'][0]['startedDateTime'] + date_object = datetime.strptime("".join(timestamp.rsplit(":", 1)), "%Y-%m-%dT%H:%M:%S.%f%z") + url = raw_json['log']['entries'][0]['request']['url'] + saml_string = None + for param in raw_json['log']['entries'][0]['request']['postData']['params']: + if param['name'] == 'SAMLRequest': + saml_string = unquote(param['value']) + self.assertIsNotNone(saml_string) + + saml_object = RawSamlData('request', saml_string, timestamp, url) + self.assertEqual(saml_object.data_type, RawSamlData._SamlDataType.REQUEST) + self.assertEqual(saml_object.url, url) + self.assertEqual(saml_object.saml_string, saml_string) + self.assertEqual(saml_object.date, date_object) + if __name__ == '__main__': unittest.main()