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

Oauth2 Server Public Client Bundle Laravel Package

spomky-labs/oauth2-server-public-client-bundle

Symfony bundle that adds public client support to the Spomky-Labs OAuth2 server, enabling clients that cannot keep secrets—such as mobile and browser-based apps—to obtain tokens securely with authorization code and PKCE flows and integrate easily into Symfony applications.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is a Symfony 2.x bundle — it predates Symfony 3's bundle conventions, Flex, autowiring, and the modern recipe system. It exists to wire a specific OAuth2 server library (the Spomky-Labs oauth2-server lineage) into the Symfony DI container and expose configuration for public clients: OAuth2 clients that cannot hold a secret (native mobile apps, SPAs, CLI tools). Architecturally it is a thin configuration/integration layer, not an auth engine — all protocol logic lives in the abandoned upstream library. That matters for evaluation: the bundle's surface area is small, but its blast radius is the entire authorization server, which is the single most security-sensitive component in the estate.

Integration feasibility. Effectively zero for any current stack. Expected Composer constraints will pin Symfony 2.x and PHP 5.x, so it will not resolve against Symfony 5/6/7 or PHP 8.x without --ignore-platform-reqs and a fork — at which point you are maintaining a security library yourself. There is no maintained successor under the same vendor name; the ecosystem moved to league/oauth2-server (and its Symfony bundle) for new work. Treat this as not installable, not "installable with effort."

Technical risk. High and non-mitigable:

  • Specification gap. The public-client model here almost certainly predates RFC 7636 (PKCE). Supporting public clients without PKCE is the precise configuration that produces authorization-code interception vulnerabilities. Even where PKCE is present, the library predates the current BCP for native apps (RFC 8252) and the OAuth 2.1 security guidance.
  • Unpatched dependency chain. The upstream server library is unmaintained. Any CVE in the token issuance, redirect-URI validation, or grant handling paths will never be fixed. Redirect-URI matching bugs are the classic OAuth2 exploit primitive.
  • No provenance signal. Zero dependents, no stars, no release activity. For a component whose failure mode is "full account takeover," absence of adoption is itself evidence — nobody has stress-tested this in production or filed the bugs that would have surfaced.
  • Symfony 2 EOL. The runtime is out of security support. Layering an unmaintained auth library onto an unpatched framework compounds rather than diversifies risk.

Key questions for the owning team. (1) Is this proposed for a new service or discovered inside a frozen legacy app? The answer changes the recommendation completely. (2) What is the actual requirement — public-client support specifically, or OAuth2 generally? If the latter, this package is the wrong tool regardless. (3) Which grants are in scope: authorization code, implicit, password, client credentials? The implicit grant is deprecated and should not be reintroduced. (4)

Integration Approach

Stack fit. There is no fit with a modern stack. The only coherent context is an existing Symfony 2.8 application that already depends on the Spomky-Labs OAuth2 library and is adding one more public client — and even then, only under a dated migration commitment.

Migration path. Do not integrate; replace. Target league/oauth2-server behind its Symfony bundle (or an equivalent maintained implementation), which provides authorization-code + PKCE out of the box and is actively patched. Because this package is a configuration layer, the migration is bounded: inventory the configured clients (client ID, redirect URIs, grant types, scopes, token TTLs), export them as data, and re-declare them in the target implementation. Client records — not code — are the real migration asset. Plan for a token invalidation event: refresh tokens issued by the old server will not validate on the new one, so every public client must re-authenticate. Sequence that deliberately.

Compatibility. Confirm the PHP and Symfony version matrix from composer.json before estimating anything; then confirm whether the upstream library's token storage schema is reusable by the replacement. If tokens are persisted in a custom table, a schema translation step is likely required and is the main unbounded cost.

Sequencing. (1) Freeze — no new clients onboarded to this bundle. (2) Discovery — enumerate clients, grants, scopes, token lifetimes, and any bespoke upstream patches. (3) Stand up the replacement server in parallel with a shared client registry. (4) Migrate clients in cohorts ordered by risk exposure, starting with internal/low-scope public clients. (5) Force re-authentication and revoke old refresh tokens. (6) Decommission. Budget the client-coordination work, not the server work — for public clients, the long pole is shipping updated app builds through app-store review.

Operational Impact

Maintenance. No upstream maintenance. Every future PHP or Symfony upgrade becomes a fork-and-patch project, and each patch is unaudited security code. The realistic steady-state cost is "someone owns a private fork indefinitely," which is a staffing commitment most teams cannot sustain — and the person who understands it will be the person who leaves.

Support. No vendor, no maintainer responsiveness, no security advisory feed. Incident response for an auth vulnerability becomes guesswork: you will not get a CVE notice, and you cannot escalate. This is the dominant cost driver and it does not appear in any sprint estimate.

Scaling. Negligible in the compute sense — the bundle compiles into the container and adds no meaningful runtime overhead; token issuance load is a property of the underlying library and storage. The scaling concern is organizational: the number of dependent clients grows while the number of people who can safely modify the server stays at zero or one.

Failure modes. Ranked by likelihood and severity: (a) Composer resolution failure on any PHP/Symfony upgrade — certain, blocking; (b) silent OAuth2 spec non-compliance, particularly missing PKCE and loose redirect-URI matching — high severity, hard to detect without adversarial testing; (c) unpatched upstream vulnerability — low frequency, catastrophic; (d) framework EOL cascading into the host application; (e) bus-factor collapse when the last maintainer departs. Note that (b) does not announce itself in logs — it presents as a penetration-test finding or an incident.

Ramp-up. Steep and unrewarding. Sparse documentation plus an abandoned upstream library means engineers must read source to understand behavior, and there is no community to consult. Time-to-productivity is measured in weeks for a system you are trying to leave, not adopt.

Recommendation. Reject for new development. If this is discovered in a running system, classify it as technical debt with a security dimension, open a migration epic with a named owner and a dated exit, and freeze new client onboarding immediately. Do not accept "it works today" as the risk position — for an OAuth2 authorization server, working today is not the same as safe tomorrow, and the absence of any maintainer means tomorrow has no fix.

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.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle