univlorraine/symfony-cas-bundle
Symfony bundle that adds CAS single sign-on support, integrating Central Authentication Service login with Symfony Security, configurable CAS server settings, authentication and logout handling, and user provisioning for university or enterprise applications.
Package reality check. Despite the brief framing this as a "Laravel/PHP package," univlorraine/symfony-cas-bundle is a Symfony bundle (5.4+) that wraps Apereo's phpCAS. It is not a Laravel package and will not mount into a Laravel application without a compatibility layer. That mismatch is the single most important fact for this evaluation.
Architecture fit. The package is a thin, opinionated Symfony integration layer over phpCAS. Its value is that it wires phpCAS into Symfony's security firewall, DI container, and configuration tree — saving maybe 1–3 developer-weeks of bespoke glue. It does not implement the CAS protocol itself; phpCAS does, and phpCAS is mature, widely deployed, and Apereo-backed. So the underlying protocol risk is low; the risk is concentrated in the wrapper.
Integration feasibility. For a Symfony 5.4/6.x/7.x app, integration is straightforward: install via Composer, register the bundle, configure the CAS host/port/path/service-id, and attach the CAS authenticator to a firewall. For a Laravel app — the more likely reading of the brief — feasibility is low. Laravel's Auth/Guard abstractions are not compatible with Symfony's security factory system, and phpCAS's global-state, session-cookie behavior does not map cleanly onto Laravel's session handling. You would effectively be adopting phpCAS directly and discarding the bundle, which leaves you owning the glue anyway.
Technical risk. Several concrete flags:
Key questions to put to the maintainer before committing:
TPM verdict on this section: technically sound idea, thin wrapper, low adoption, and an unresolved license. Opportunity score of 22.61 accurately reflects a niche, single-sponsor package.
Stack fit. This is the gating question. Two paths:
security.yaml firewall model and the service container, and the migration cost is small relative to hand-rolling phpCAS.Migration path (Symfony).
composer.json; confirm the bundle's constraints allow them.Compatibility. Verify: PHP version support (phpCAS has historically lagged new PHP majors), Symfony deprecation posture (5.4 is EOL-track; confirm 6.4/7.x support), and whether the bundle's session handling coexists with your app's session driver. Also confirm TLS/certificate validation settings for the CAS server — do not accept a default that disables peer verification.
Sequencing.
Effort estimate. Symfony path: ~1–2 weeks including IdP coordination. Laravel path: ~2–4 weeks building and owning your own guard, with the bundle as a design reference only.
Maintenance. The bundle is thin, so the code surface you inherit is small — that's the good news. The bad news is that you inherit a dependency chain you don't control: bundle → phpCAS → Apereo. When phpCAS ships a security fix, you depend on the Université de Lorraine to bump and release. With 0 dependents and a single institutional sponsor, there is no commercial pressure guaranteeing that turnaround. Recommendation: vendor/fork it. The cost of maintaining a fork of a ~small bundle is lower than the cost of an unpatched auth library.
Support. There is no support contract, no SLA, and effectively no community. Assume self-support. Budget internal ownership: a named engineer who understands CAS, phpCAS internals, and the IdP relationship. That person is also your IdP liaison — CAS problems are usually half-IdP problems.
Scaling. CAS itself scales fine (it's a redirect-and-validate protocol, stateless per-request aside from the SSO session cookie). phpCAS validates tickets server-side against the CAS server per request; at very high request rates with per-request validation, watch the CAS server's capacity rather than the client's. The bundle adds negligible overhead. The real scaling concern is operational: a CAS outage means a total login outage for every integrated app. Plan for IdP-side HA and a documented break-glass local-admin path.
Failure modes to design for:
Ramp-up. For a Symfony team already familiar with the security component: roughly half a day to a day to be productive, most of it spent on phpCAS's global-state quirks and IdP coordination rather than the bundle API. For a Laravel team: assume no transferable ramp-up benefit — your engineers will be learning phpCAS and building the guard, and the bundle only serves as a worked example. Add time for the license conversation with legal, which on current evidence should be treated as a real, non-trivial schedule item rather than a formality.
Overall TPM position. Low-adoption, single-sponsor, unclear-license bundle with a mature dependency underneath and a genuinely useful but narrow convenience layer on top. It is a defensible choice for a Symfony shop that accepts fork-and-own responsibility. It is the wrong choice for a Laravel shop, and it is blocked for enterprise use until the license is resolved. Score of 5.51 and opportunity of 22.61 are consistent with that read: viable in a niche, not a strategic dependency.
How can I help you explore Laravel packages today?