robrichards/wse-php
robrichards/wse-php is a PHP library that adds WS-Security to SOAP requests, offering XML signing, encryption and decryption, security tokens and timestamp support for secure, interoperable web service integrations.
ext/soap, which is a security-critical, spec-heavy effort. Adopting this shifts that risk to a maintained dependency that wraps xmlseclibs; the PM decision is "buy" (consume OSS) versus "build and own a small internal SOAP security layer."ext/soap, rather than per-customer bespoke work. It affects SLAs we can credibly offer on enterprise connectors.Consider it when:
ext/soap and want to add WS-Security headers to SoapClient without replacing your HTTP/SOAP stack.Look elsewhere when:
ext/soap (some hosts disable it), or you need async/streaming/high-throughput behavior ext/soap handles poorly.Executives: A small, focused open-source library that lets our PHP platform talk to enterprise SOAP partners who require WS-Security. It is the difference between "we can integrate with your bank/clearinghouse" and a bespoke build. Cost is near zero; the payoff is unblocking enterprise deals and avoiding custom security code. Risk is manageable with version pinning and a review, and it is isolated to integrations that actually need it.
Engineering: This is the standard PHP answer for WS-Security over ext/soap — it composes with the existing SoapClient via filters rather than replacing it, and delegates XML signature/encryption primitives to xmlseclibs. Adoption means: pin an exact version, wrap it behind our own integration adapter so callers never touch it directly, add contract tests with recorded partner payloads (canonicalization and signature verification are where things break), and treat upgrades as security-relevant changes. The main engineering risk is not the library's API but the spec surface — signature wrapping, timestamp skew, certificate rotation, and each partner's policy quirks — so budget test effort accordingly. It is a targeted dependency, not a platform bet: use it only in the integration paths that require WS-*, and keep it out of the core request path everywhere else.
How can I help you explore Laravel packages today?