From 2d2f3ae582935864e2ca5008474715dc0f8d0c53 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Mon, 2 Sep 2024 00:47:21 +0200 Subject: [PATCH] Add mssp-elements --- resources/schemas/mssp.xsd | 14 +++ src/XML/mssp/MustNotSendCancel.php | 22 +++++ src/XML/mssp/RequireClientCertificate.php | 22 +++++ src/XML/mssp/RsaToken.php | 22 +++++ src/XML/mssp/SslContextToken.php | 22 +++++ .../XML/mssp/MustNotSendCancelTest.php | 48 ++++++++++ .../XML/mssp/RequireClientCertificateTest.php | 48 ++++++++++ tests/WSSecurity/XML/mssp/RsaTokenTest.php | 87 +++++++++++++++++++ .../XML/mssp/SslContextTokenTest.php | 87 +++++++++++++++++++ .../resources/xml/mssp_MustNotSendCancel.xml | 1 + .../xml/mssp_RequireClientCertificate.xml | 1 + tests/resources/xml/mssp_RsaToken.xml | 3 + tests/resources/xml/mssp_SslContextToken.xml | 3 + 13 files changed, 380 insertions(+) create mode 100644 resources/schemas/mssp.xsd create mode 100644 src/XML/mssp/MustNotSendCancel.php create mode 100644 src/XML/mssp/RequireClientCertificate.php create mode 100644 src/XML/mssp/RsaToken.php create mode 100644 src/XML/mssp/SslContextToken.php create mode 100644 tests/WSSecurity/XML/mssp/MustNotSendCancelTest.php create mode 100644 tests/WSSecurity/XML/mssp/RequireClientCertificateTest.php create mode 100644 tests/WSSecurity/XML/mssp/RsaTokenTest.php create mode 100644 tests/WSSecurity/XML/mssp/SslContextTokenTest.php create mode 100644 tests/resources/xml/mssp_MustNotSendCancel.xml create mode 100644 tests/resources/xml/mssp_RequireClientCertificate.xml create mode 100644 tests/resources/xml/mssp_RsaToken.xml create mode 100644 tests/resources/xml/mssp_SslContextToken.xml diff --git a/resources/schemas/mssp.xsd b/resources/schemas/mssp.xsd new file mode 100644 index 00000000..359be749 --- /dev/null +++ b/resources/schemas/mssp.xsd @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/src/XML/mssp/MustNotSendCancel.php b/src/XML/mssp/MustNotSendCancel.php new file mode 100644 index 00000000..aa2fcc9f --- /dev/null +++ b/src/XML/mssp/MustNotSendCancel.php @@ -0,0 +1,22 @@ +assertEquals( + "", + strval($rsaToken), + ); + $this->assertTrue($rsaToken->isEmptyElement()); + } + + + /** + * Test that creating a RsaToken from scratch works. + */ + public function testMarshalling(): void + { + $attr = new XMLAttribute(C::NAMESPACE, 'ssp', 'attr1', 'value1'); + $chunk = new Chunk(DOMDocumentFactory::fromString( + 'some', + )->documentElement); + + $rsaToken = new RsaToken(IncludeToken::Always, [$chunk], [$attr]); + $this->assertEquals( + self::$xmlRepresentation->saveXML(self::$xmlRepresentation->documentElement), + strval($rsaToken), + ); + } +} diff --git a/tests/WSSecurity/XML/mssp/SslContextTokenTest.php b/tests/WSSecurity/XML/mssp/SslContextTokenTest.php new file mode 100644 index 00000000..00a85d0e --- /dev/null +++ b/tests/WSSecurity/XML/mssp/SslContextTokenTest.php @@ -0,0 +1,87 @@ +assertEquals( + "", + strval($sslContextToken), + ); + $this->assertTrue($sslContextToken->isEmptyElement()); + } + + + /** + * Test that creating a SslContextToken from scratch works. + */ + public function testMarshalling(): void + { + $attr = new XMLAttribute(C::NAMESPACE, 'ssp', 'attr1', 'value1'); + $chunk = new Chunk(DOMDocumentFactory::fromString( + 'some', + )->documentElement); + + $sslContextToken = new SslContextToken(IncludeToken::Always, [$chunk], [$attr]); + $this->assertEquals( + self::$xmlRepresentation->saveXML(self::$xmlRepresentation->documentElement), + strval($sslContextToken), + ); + } +} diff --git a/tests/resources/xml/mssp_MustNotSendCancel.xml b/tests/resources/xml/mssp_MustNotSendCancel.xml new file mode 100644 index 00000000..304aec29 --- /dev/null +++ b/tests/resources/xml/mssp_MustNotSendCancel.xml @@ -0,0 +1 @@ + diff --git a/tests/resources/xml/mssp_RequireClientCertificate.xml b/tests/resources/xml/mssp_RequireClientCertificate.xml new file mode 100644 index 00000000..9b2c781f --- /dev/null +++ b/tests/resources/xml/mssp_RequireClientCertificate.xml @@ -0,0 +1 @@ + diff --git a/tests/resources/xml/mssp_RsaToken.xml b/tests/resources/xml/mssp_RsaToken.xml new file mode 100644 index 00000000..0d3cedc7 --- /dev/null +++ b/tests/resources/xml/mssp_RsaToken.xml @@ -0,0 +1,3 @@ + + some + diff --git a/tests/resources/xml/mssp_SslContextToken.xml b/tests/resources/xml/mssp_SslContextToken.xml new file mode 100644 index 00000000..f4312722 --- /dev/null +++ b/tests/resources/xml/mssp_SslContextToken.xml @@ -0,0 +1,3 @@ + + some +