Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Sp Bundle Laravel Package

javer/sp-bundle

javer/sp-bundle is a PHP package that organizes reusable service-provider logic into a compact bundle, helping developers register and configure shared services with less boilerplate. It offers a simple integration point for projects that need lightweight, maintainable service setup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — unchanged, still poor on the stated premise. javer/SpBundle remains a Symfony bundle, not a Laravel package. Release 2.1.0 adds Symfony 7 support; it does not add a Laravel service provider, auto-discovery, facade, config publishing, or any HTTP-kernel integration. There is still no composer.json auto-discovery path Laravel will honor, and Symfony's DependencyInjection/Configuration tree has no meaning in Laravel's container. Treating this as a "Laravel/PHP package" remains a category error that must be corrected before any commitment. The reusable asset is the underlying SAML2 SP logic (almost certainly the LightSAML library family given the package name — verify which version and whether it wraps lightsaml/lightsaml-core or reimplements protocol handling), not the bundle glue. Nothing in 2.1.0 changes that calculus.

Integration feasibility — feasible only as a port, not an install; no change. The 2.1.0 release does not narrow the porting surface. A TPM should still frame this as a small internal fork:

  • Extract/reuse the SAML2 protocol core (AuthnRequest construction, ACS response handling, signature verification, metadata XML generation).
  • Write a Laravel-native wrapper: service provider, config file, signed-request middleware, ACS + metadata routes, and a guard/user-provider bridge for NameID → App\Models\User mapping.
  • Replace Symfony's config tree with Laravel's config/saml.php plus validation at boot.

Still realistically 2–4 engineer-weeks including security review, and it still lands you as sole maintainer of a security-critical codepath.

Technical risk — high, marginally reduced on one axis only.

  1. Adoption signal is still effectively zero. 1 star, 0 dependents, overall score ~0.035. No third party has validated this in production, no issue-tracker corpus to mine for known failure modes, no inherited security review. A version bump does not create adoption.
  2. Bus factor still one. 2.1.0 is a second data point on the release timeline, which is a genuine improvement over a single 2024-01-09 release — but two releases is not a maintenance cadence. IdP certificate-rollover bugs, XML canonicalization edge cases, and future PHP 8.4/8.5 compatibility fixes still land on your team.
  3. SAML is security-critical by nature. XSW, comment-truncation and null-byte canonicalization attacks, and assertion replay remain live threats. The DSig layer (robrichards/xmlseclibs or equivalent) carries its own CVE history — a full transitive composer audit and SCA scan remains a hard kill-gate. Note that "Update GitHub Actions" is CI plumbing, frequently dependency-bot driven, and is not evidence of security triage or CVE response.
  4. Framework drift — downgraded from "unverified" to "partially resolved." Symfony 7 support plus a PHP 8.1 floor is a real modernization signal and materially better than the prior state. Two caveats: (a) Symfony 7 itself requires PHP 8.2, so requiring PHP 8.1 while claiming Symfony 7 support implies a version matrix that must be read from composer.json, not the release note; (b) a Symfony 7 migration commonly drops deprecated config-tree keys and service aliases — verify whether 2.1.0 is a config-breaking change for anyone running the bundle in a Symfony harness.
  5. Version-number risk. This ships as a minor (2.x → 2.1.0) yet raises the minimum PHP to 8.1 and changes framework support. If SemVer hygiene is loose here — which a 1-star repo with no changelog discipline tends to be — assume any future pin can move under you. Treat the constraint in composer.json as authoritative and pin exactly.

Key questions — updated status:

  • Supported PHP and Symfony versions? Answered: PHP 8.1+, Symfony through 7. Confirm exact matrix in composer.json (Symfony 7 implies PHP 8.2+).
  • New: Does 2.1.0 deprecate or remove any config-tree keys relative to 2.0.x? Is there an UPGRADE/CHANGELOG? A silent config-tree break is the most likely failure for anyone who has already built on this.
  • Still open: Which SAML2 library does this wrap, at which pinned version, and is that library still receiving security patches?
  • Still open: Does it implement SLO, encrypted assertions, signed AuthnRequests, and multi-IdP metadata refresh — or only basic SP-initiated SSO?
  • Still open: Are AuthnRequest IDs persisted anywhere (session, file, cache)? This determines horizontal-scaling behavior.
  • Still open: Is the intended audience a maintained product or a demo/experiment repo? 2.1.0 is a positive hint toward "maintained" but is not sufficient evidence.

Integration Approach

Stack fit — unchanged, misaligned. Laravel-only estate: no direct fit. The one viable scenario remains a mixed PHP estate where a Symfony application already hosts the SP as a sidecar, brokering identity to Laravel via short-lived signed JWT or OIDC. 2.1.0 marginally improves that scenario — a Symfony 7 sidecar is a supportable target rather than an EOL one — but it raises the sidecar's runtime floor to PHP 8.2 and adds a framework-major upgrade to your sidecar's own maintenance backlog. It remains an extra deployable, an extra failure domain, an extra cert to rotate.

Recommended path — unchanged, evaluate alternatives first, in this order:

  1. Managed IdP broker (preferred default). Okta / Entra ID / Auth0 / Keycloak terminates SAML; Laravel integrates over OIDC with a maintained library. Removes XML DSig and canonicalization from your threat surface; converts cert rotation into a vendor ceremony. Cost: per-seat licensing, new third-party dependency.
  2. Maintained Laravel-native SAML package. A well-adopted SAML2 SP wrapper for Laravel, or onelogin/php-saml behind a thin provider. Validate current stewardship — the OneLogin toolkit has had its own stewardship changes; apply the same audit rigor as here.
  3. Fork-and-port this bundle only if (a) the SAML core proves current and CVE-clean, and (b) a hard constraint (air-gap, no-vendor policy, existing LightSAML investment) rules out 1 and 2. 2.1.0 does not change the ranking; it only strengthens option 3's framework viability while leaving its security viability unproven.

Compatibility checklist for the spike (amended): exact PHP/Symfony matrix from composer.json; transitive dependency audit; Symfony 7 deprecation scan if a sidecar harness is used; config-tree diff 2.0.x → 2.1.0; IdP metadata parsing against your actual IdP's XML; signature algorithm (SHA-1 rejection is common); NameID format expectations; spec-valid EntityDescriptor from the metadata endpoint.

Sequencing (if pursuing option 3):

  1. Day 1–2: dependency audit, license/dependency-tree inspection, and composer.json constraint read for the 2.1.0 constraint bump. Kill-gate: any unpatched critical CVE in the DSig chain ends the evaluation.
  2. Week 1: stand up a local IdP (Keycloak or SimpleSAMLphp) and drive the bundle in a minimal Symfony harness — now pin the harness to Symfony 7 / PHP 8.2 to match the release. Confirm the happy path before porting anything.
  3. Week 2: port core logic behind a Laravel service provider + middleware; ACS and metadata routes; user mapping via guard.
  4. Week 3: adversarial pass — XSW payloads, expired cert, clock skew ±5 min, replayed assertion, malformed base64.
  5. Week 4: security review sign-off, then canary rollout to one tenant behind a feature flag.

Operational Impact

Maintenance. Still assume you own it, but the signal is slightly better than at initial assessment: 2.1.0 demonstrates the single maintainer tracks ecosystem change (Symfony 7, PHP floor) rather than having abandoned the repo. That is a maintenance signal, not a maintenance commitment — two releases with zero dependents is not a community. Budget a standing ~10–15% of one engineer's capacity for dependency bumps and cert-rotation hygiene, plus an annual security review. This remains a permanent tax.

Support. Unchanged: no documentation beyond the repo, no issue-tracker corpus, no vendor. SAML failures are bidirectional — a generic 400/403 at the ACS while the true cause (audience mismatch, InResponseTo mismatch, skew) sits in IdP-side logs. A TPM must secure an escalation channel with the IdP owner before go-live. Note that upstream's own release note is a bullet list with no upgrade guidance; do not expect upstream to help diagnose your incident.

Scaling. Unchanged: the SP role scales horizontally if AuthnRequest IDs and RelayState live in a shared store (Redis) rather than PHP sessions or local files. The Symfony bundle's session assumptions will not survive a naive port to a multi-pod Laravel deployment behind a load balancer without sticky sessions. Metadata caching should be TTL'd and warmed.

Failure modes to design against explicitly:

  • IdP certificate rollover — most common SAML production outage. Dual-cert trust window, metadata auto-refresh, calendar-driven rotation runbook with alerting at T-30 days.
  • Clock skew — hard rejections at small deltas; enforce NTP and a documented tolerance.
  • Signature validation failure — silent and opaque, indistinguishable from a config error; needs structured logging with the raw assertion dumped to a secure, access-controlled location.
  • XSW / XML entity attacks — mitigated only by a correct library; the dependency audit stays a hard gate.
  • IdP-initiated flow gaps — if the bundle only supports SP-initiated SSO, any IdP-portal launch fails; confirm before promising it to stakeholders.
  • New in 2.1.0 — config-tree break on upgrade. If any harness already exists on 2.0.x, a Symfony 7 migration may have removed deprecated keys; treat 2.1.0 as upgrade-risky despite the minor version number and pin exactly.

Ramp-up. Unchanged and meaningful: SAML2 bindings (HTTP-Redirect vs. HTTP-POST), Web Browser SSO profile, XML DSig semantics, plus Symfony bundle conventions you will discard if porting. 1–2 weeks to productivity for a senior PHP engineer, who should not be the only one who understands it.

Verdict. Still not recommended as a direct adoption. Release 2.1.0 is a genuine positive on framework currency — Symfony 7 support and a defined PHP floor remove the "unverified compatibility" objection and slightly improve the viability of the Symfony-sidecar variant. It does nothing for the two objections that actually drove the recommendation: near-zero adoption (1 star, 0 dependents) and an unquantified, single-maintainer security surface in a security-critical codepath, where the note's "Update GitHub Actions" is CI hygiene rather than evidence of CVE response. Hold the two-day feasibility spike capped by the dependency-audit kill-gate, with managed-IdP-broker integration as the default recommendation absent a compelling constraint otherwise. If the spike proceeds, read composer.json and any CHANGELOG before assuming 2.1.0 is a drop-in.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource