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

Casauth Bundle Laravel Package

yraiso/casauth-bundle

A Symfony bundle for integrating CAS single sign-on authentication into your app. It simplifies CAS login and logout, service ticket validation, and authenticated user handling through configurable server settings. Designed to secure routes and streamline CAS-based access control.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Framing correction (blocking): Despite being routed as a "Laravel/PHP package," yraiso/casauth-bundle is a Symfony bundle ("SF 5.4 min version"), almost certainly a maintained fork of the beSimple/CasAuthBundle lineage (the yraiso namespace and repo name CasAuthBundle strongly suggest this). This distinction drives the entire assessment — it is not installable into a Laravel application.

Architecture fit

  • Native fit is limited to Symfony 5.4+ applications using the Security component. It integrates as a security firewall listener/factory plus a DI extension and compiler pass, and implements the CAS client side (service ticket validation, attribute retrieval, optional proxy-granting-ticket support).
  • For a Laravel codebase the fit is effectively zero: Laravel's auth is a manager/guard/provider stack, not a Symfony firewall. There is no adapter, no service provider, no Laravel-facing API. Adoption would mean either embedding Symfony Security (unreasonable) or re-implementing the guard against this bundle's protocol logic.
  • The reusable asset is the CAS protocol client logic (redirect to /login?service=, validate at /serviceValidate or /proxyValidate, XML/attribute parsing), and it is tightly coupled to Symfony's HttpClient/EventDispatcher — extraction is a port, not a drop-in.

Integration feasibility

  • Symfony 5.4/6.x shop: high — Composer install, firewall config, user provider mapping. Days, not weeks, to a working PoC.
  • Laravel or framework-agnostic PHP: low — treat as a reference implementation only. Cheaper paths exist: a Laravel-native CAS client, a phpCAS-based guard, or terminating CAS at the edge (Apache mod_auth_cas, oauth2-proxy) and keeping the app on standard session auth.
  • Any stack where CAS is being replaced by OIDC/SAML: adoption is negative value — this is a dead-end protocol investment.

Technical risk

  • Supply chain / bus factor: 2 stars, 0 dependents, single maintainer, no commercial backing. For authentication code — a high-blast-radius, security-sensitive surface — near-zero community scrutiny is a material risk. Assume you own the code the day you adopt it.
  • Provenance and data integrity: the last release is dated 2026-01-19, which is in the future relative to a normal evaluation timeline. That is either a metadata artifact or a mis-signed tag; either way it must be verified (tag signature, commit history, CI status, upstream diff vs. beSimple) before any dependency decision.
  • Framework lifecycle collision: "SF 5.4 min version" points at Symfony 5.4, which is EOL. Pinning an auth bundle whose only stated constraint is a minimum on an EOL major is itself a risk — confirm PHP 8.2/8.3 support and symfony/http-client / PSR-18 constraint ranges.
  • Security review burden: custom XML parsing of CAS responses, TLS verification settings, and redirect/service-URL handling are classic vulnerability sites (XXE, open-redirect, ticket replay). With no external reviewers, plan a first-party audit.
  • Low opportunity score (25.5) is consistent with the above: narrow protocol, narrow framework, no ecosystem.

Key questions

  1. What framework are we actually running — Symfony 5.4+, Symfony 6/7, or Laravel? (This decides adopt vs. reject.)
  2. Is CAS the strategic IdP, or is OIDC/SAML the destination within 12–24 months?
  3. Is this fork actively tracking upstream security fixes, and what does the diff vs. beSimple/CasAuthBundle look like?
  4. What is the test coverage and CI posture, and has anyone audited the XML/redirect handling?
  5. Is the 2026-01-19 release date real, and is the tag signed?
  6. Who owns this internally after adoption — is there a named maintainer with Symfony Security experience?

Integration Approach

Stack fit

  • Symfony 5.4/6.x, CAS IdP confirmed: proceed. Add via Composer pinned to a specific commit or tag, register the bundle, configure the cas firewall listener with server login/validation URLs, service URL, and CA bundle, and map returned attributes to a user provider.
  • Laravel (or any non-Symfony PHP): do not install. Choose one of: (a) a Laravel-native CAS client or phpCAS-backed guard; (b) edge/proxy termination of CAS with the app left on stock session auth (lowest app-level risk); (c) cherry-pick the protocol logic into a framework-appropriate client. Option (b) is the usual TPM recommendation for a one-off enterprise SSO requirement.
  • CAS being retired: skip; invest in the OIDC/SAML path instead.

Migration path

  1. Hybrid auth first: CAS as primary, local DB credentials retained as break-glass for admins and for IdP outages. Do not cut over to CAS-only in the first release.
  2. Identity mapping: define the join key up front (netid / email / employee ID), decide auto-provision vs. pre-provision, and specify attribute→user-field mapping in config, not code.
  3. Per-environment rollout: dev → staging against a test CAS server (Apereo CAS in Docker is the cheapest harness) → production behind a feature flag with a per-user or per-group allowlist.
  4. Decommission local auth only after a full academic/enterprise cycle (e.g., one term) of stable CAS logins.

Compatibility

  • Lock the PHP version matrix and verify symfony/http-client, psr/http-client, and XML extension constraints before committing.
  • Confirm CAS protocol version compatibility (CAS 2.0 vs 3.0 attribute release, proxy ticket support) against the actual IdP build — attribute release is server-side config and is the most common source of "it works in staging" surprises.
  • Verify behaviour behind a load balancer / TLS-terminating proxy: the service URL sent to CAS must exactly match what's registered, or validation fails.

Sequencing

  1. Framework and IdP decision (gate — stop here if Laravel).
  2. Supply-chain and source verification (tag, diff, CI, license headers — MIT confirmed).
  3. Security review of redirect/XML/TLS handling.
  4. PoC on a throwaway Symfony app against test CAS; validate login, logout, attribute mapping, and failure behaviour.
  5. Attribute/user-provisioning design sign-off with IAM/IT.
  6. Staging integration + rollback rehearsal.
  7. Production cutover with feature flag, then steady-state ownership handoff.

Operational Impact

Maintenance

  • No vendor, no maintainer SLA, 0 dependents → you are the maintainer. Budget roughly 5–10% of an engineer's time for dependency bumps and security patching, plus a full review each time the IdP or PHP/Symfony minor version moves.
  • Vendor/fork the code into the org (internal fork or Composer repositories entry pinned to a commit) so an upstream deletion or abandonment cannot break builds. Keep a documented patch queue.
  • Track upstream beSimple/CasAuthBundle and the CAS server release notes; regressions here are silent until login breaks.

Support

  • Self-support only. Escalation path is internal engineering plus the institution's IAM/IdP team — establish that relationship before go-live, because most incidents will be IdP-side, not code-side.
  • Document the config surface (service URL, CA bundle path, attribute map) in the runbook; these are the three knobs that cause 90% of tickets.

Scaling

  • Largely stateless at the app tier: ticket validation happens at login, not per request, so steady-state throughput is unaffected. Burst load (start of term, shift changes) hits the CAS server, not this bundle — size the IdP and connection pool accordingly.
  • Outbound HTTPS to the CAS server is on the login critical path: set explicit connect/read timeouts and a bounded retry, and avoid sharing a saturated HTTP client pool with other integrations.
  • Session storage and sticky-session behaviour are app-side concerns; the bundle does not constrain them.

Failure modes (design mitigations for each)

  • IdP outage → total login outage. Mitigate with break-glass local admin accounts and a documented fallback switch.
  • Certificate expiry / trust-store mismatch on either side: silent, total auth failure. Add expiry monitoring and pin the CA bundle in config.
  • Service URL mismatch behind proxy/ALB: ticket validation rejects with an opaque error. Normalize X-Forwarded-* handling and register every environment's URL.
  • Attribute drift (IdP renames or drops a claim): logins succeed but users land in wrong/empty accounts. Fail closed on missing join key and alert on mapping misses.
  • Clock skew on validation windows: alert on CAS error codes rather than user reports.
  • Redirect loops / open-redirect from misconfigured service or return-path params: restrict allowed return hosts.
  • Proxy ticket leakage if proxy mode is enabled — disable unless there is a concrete back-end delegation requirement.

Ramp-up

  • Symfony-shop team: ~1 week to a working PoC, 2–3 weeks to production-hardened (including security review, attribute mapping, and runbook).
  • Laravel-shop team: budget 3–5 weeks plus a Symfony Security learning curve — and expect that effort to be wasted if CAS is retired within two years. This asymmetry is the strongest argument for the edge-proxy option.
  • CAS protocol debugging is opaque (XML error strings, no structured diagnostics); build a local test IdP early or every integration bug becomes a two-team investigation.

Recommendation: Reject for a Laravel stack — the package does not fit and the ecosystem signals (2 stars, 0 dependents, single maintainer, future-dated release) are too weak for authentication code. For an existing Symfony 5.4+ application with a confirmed long-lived CAS IdP, it is viable only with an internal fork, a security review, and a named owner; otherwise prefer IdP-side modernization over adopting this bundle.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource