Skip to content

Releases: php-soap/psr18-wsse-middleware

Version 3.0.0

27 Mar 14:47
3.0.0

Choose a tag to compare

Breaking changes

  • PHP 8.4+ required (dropped 8.3)
  • WsseEntry interface: __invoke() first parameter changed from VeeWee\Xml\Dom\Document to \DOMDocument
  • KeyIdentifier interface: __invoke() first parameter changed from VeeWee\Xml\Dom\Document to \DOMDocument
  • SamlAssertion constructor: takes \DOMDocument instead of VeeWee\Xml\Dom\Document
  • WssePreset: no longer implements veewee/xml's Configurator interface; use WssePreset::xpath(\DOMDocument) instead
  • Locators (SecurityLocator, BinaryTokenLocator, SignatureLocator, EncryptedKeyLocator): accept \DOMDocument, return \DOMElement
  • CustomKeyIdentifier / ReferencingKeyIdentifier: build nodes via native \DOMDocument API (veewee builders removed)
  • veewee/xml removed as a direct dependency (still available transitively via php-soap/xml)

Dependency upgrades

  • php-soap/psr18-transport: ^1.8 -> ^2.0
  • php-soap/engine: ^2.16 -> ^2.20
  • php-soap/xml: ^1.9 -> ^1.10
  • php-http/client-common: ^2.3 -> ^2.7
  • PSL: replaced php-standard-library/php-standard-library with standalone packages (^6.1)

Why the legacy DOM switch?

robrichards/wse-php operates on legacy \DOMDocument. In veewee/xml v3, the Document wrapper shared the same underlying \DOMDocument, so it worked transparently. In v4, Document wraps Dom\XMLDocument (PHP 8.4's new DOM), which has no shared state with legacy DOM. Every bridge requires an XML round-trip. Since all WSSE/WSA operations flow through robrichards, the wrapper added overhead with no benefit. The package now works directly with legacy \DOMDocument.

Upgrading

  1. Require PHP 8.4+
  2. Custom WsseEntry implementations: change Document $envelope to \DOMDocument $envelope
  3. Custom KeyIdentifier implementations: change Document $envelope to \DOMDocument $envelope
  4. SamlAssertion: pass a \DOMDocument instead of VeeWee\Xml\Dom\Document
  5. If you used WssePreset as a veewee Configurator: use WssePreset::xpath($doc) instead
  6. If you read element text via ->nodeValue: use ->textContent (new DOM spec)

Full Changelog: 2.9.0...3.0.0

Version 2.9.0

19 Mar 08:08
2.9.0
064888a

Choose a tag to compare

What's Changed

  • Replace azjezz/psl with php-standard-library/php-standard-library by @veewee in #25

Full Changelog: 2.8.0...2.9.0

Version 2.8.0

11 Mar 15:09
2.8.0
abd764c

Choose a tag to compare

What's Changed

Full Changelog: 2.7.0...2.8.0

Version 2.7.0

20 Oct 11:19
2.7.0
2c1461b

Choose a tag to compare

What's Changed

  • Upgrade PHP project to support 8.3, 8.4, and 8.5 by @veewee in #23

Full Changelog: 2.6.0...2.7.0

Version 2.6.0

21 Mar 14:36
2.6.0
32c909a

Choose a tag to compare

What's Changed

  • Update phpunit/phpunit requirement from ^10.0 to ^11.4 by @dependabot in #19
  • Update symfony/http-client requirement from ^6.1 to ^7.1 by @dependabot in #20
  • Allow modification of encryptSignature by @jfschubert in #22

New Contributors

Full Changelog: 2.5.0...2.6.0

Version 2.5.0

25 Oct 08:51
2.5.0
fcaf36d

Choose a tag to compare

What's Changed

Full Changelog: 2.4.0...2.5.0

Version 2.4.0

29 Apr 11:00
2.4.0
ef7c8ae

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.3.0...2.4.0

Version 2.3.0

24 Nov 07:52
2.3.0
34bc469

Choose a tag to compare

What's Changed

Full Changelog: 2.2.0...2.3.0

Version 2.2.0

23 Nov 10:37
2.2.0
4ef7477

Choose a tag to compare

What's Changed

  • Add shortcut key-store for combined PEM client certificates by @veewee in #14

Full Changelog: 2.1.1...2.2.0

Release 2.1.1

31 Mar 11:42
2.1.1
1d3c693

Choose a tag to compare

What's Changed

Full Changelog: v2.1.0...2.1.1