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

Oauth Server Bundle Laravel Package

novosga/oauth-server-bundle

OAuth 2.0 server bundle for the NovoSGA ecosystem, providing authorization and token endpoints so applications can issue access tokens and secure API access. Integrates into PHP projects to handle client authentication, grants, and protected resources.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What the package actually is. novosga/oauth-server-bundle is a maintained-by-one fork of friendsofsymfony/oauth-server-bundle — a Symfony bundle, not a Laravel package. It ships a Symfony DI extension, services.yaml/XML definitions, Doctrine ORM mappings for Client, AccessToken, RefreshToken and AuthCode, and a firewall/security listener that plugs into Symfony's security.firewall chain. Token issuance and validation are delegated to the legacy bshaffer/oauth2-server-php library. There is no service provider, no Laravel container binding, no Eloquent model, and no Laravel routing integration.

Architecture fit. Poor for a Laravel codebase. The bundle assumes Symfony's HttpKernel, EventDispatcher, Security component, Doctrine bundle and bundle config loading. To make it run under Laravel you would have to either (a) boot a Symfony microkernel alongside Laravel, (b) manually reimplement the bundle's service wiring against the underlying bshaffer library, or (c) rewrite it. All three are equivalent to building a small in-house OAuth server, at which point the package contributes almost nothing but a set of Doctrine entities you would have to port to Eloquent anyway.

Integration feasibility. Low confidence. Two stars and zero dependents means no production usage signal, no third-party issue corpus, no community answers. The fork exists because the NovoSGA queue-management product needed a Symfony 5-compatible OAuth server — it is a downstream artifact, not a general-purpose product. The 2022-03-29 release date means it has not tracked Symfony 5.4 LTS end-of-life (security support ended November 2025), nor PHP 8.2+ deprecations, nor any subsequent OAuth security guidance.

Technical risk — this is the dominant factor.

  • Supply chain: an OAuth authorization server is the component that mints credentials for your entire API surface. A near-zero-adoption fork with a single maintainer is the highest-blast-radius dependency you can take on.
  • Upstream lineage: friendsofsymfony/oauth-server-bundle is flagged abandoned on Packagist and bshaffer/oauth2-server-php is itself end-of-life. You inherit unpatched code beneath a thin fork.
  • Protocol currency: the legacy stack predates PKCE-first flows and OAuth 2.1 guidance; implicit and password grants are still exposed. Verify PKCE support explicitly — the underlying library historically lacks it natively. If third-party clients are in scope, this is a compliance defect, not a nice-to-have.
  • No CVE channel: with no maintainer and no dependents, vulnerability disclosure is effectively "you find out on the news."

Key questions to answer before spending further evaluation time.

  1. Is the actual requirement issuing tokens to third parties, or simply authenticating first-party clients? If the latter, Laravel Sanctum removes this entire evaluation.
  2. If a full OAuth server is genuinely required, does Laravel Passport (or league/oauth2-server used directly) fail any functional requirement this fork satisfies? No plausible gap is visible.
  3. If the context is the legacy Symfony/NovoSGA application rather than Laravel, is this fork already the incumbent? In that case the question changes from "adopt" to "contain and exit."
  4. What is the diff against upstream friendsofsymfony/oauth-server-bundle? If it is only a composer constraint bump, there is no value to justify the fork.

Integration Approach

Stack fit. Effectively zero for Laravel. The stack-fit matrix is: Laravel + Passport = native; Laravel + Sanctum = native; Laravel + this bundle = unsupported bridge. For Symfony 5 applications the fit is acceptable but on an end-of-life framework branch.

Recommended decision. Do not integrate. This is a reject with rationale, not a defer. The score profile (0.07 overall, 18.9 opportunity, 2 stars, 0 dependents) plus the abandoned upstream lineage is sufficient to close the evaluation without a proof-of-concept.

If a full OAuth 2.0/2.1 authorization server is a confirmed requirement, the migration path is:

  1. Adopt Laravel Passport (which wraps league/oauth2-server, the actively maintained successor to bshaffer/oauth2-server-php) for first-party + third-party token issuance, or Sanctum if scopes/third-party clients are not needed.
  2. If you need grant-type flexibility beyond Passport, use league/oauth2-server directly behind a thin Laravel adapter you own — this is the same amount of integration work as bridging the Symfony bundle, but on a maintained foundation with a CVE process.
  3. Reuse the concepts from this bundle as a design reference only: separate client, access_token, refresh_token, auth_code tables with expiry columns and a revoked flag are a sound schema shape regardless of implementation.

If the incumbent Symfony/NovoSGA app is the real target (the only scenario where this bundle is already deployed):

  1. Pin the exact commit and vendor the package into the repo; do not rely on Packagist availability.
  2. Contain it behind an internal TokenIssuer interface so downstream code never touches bundle classes.
  3. Run a Symfony 5.4 → 6.x/7.x upgrade spike against league/oauth2-server on a parallel branch.
  4. Sequence the replacement before the Symfony 5.4 security-support deadline forces it.

Compatibility sequencing. Any path here requires auditing PHP version constraints, Doctrine ORM 2.x vs 3.x, and Symfony 5 firewall behavior against your current dependency set. Budget this as discovery work, not implementation — and only after question 2 above is answered negatively.

Operational Impact

Maintenance. You become the de facto maintainer. There is no release cadence to ride, no one to upstream a patch to, and no expectation that a PHP 8.3/8.4 or Symfony 6 fix will arrive. Every future framework or PHP upgrade is a fork-and-patch exercise. Annualized cost is small in hours but unbounded in timing risk — it lands during your upgrade windows, not the maintainer's.

Support. Zero. No vendor, no community forum, no dependents to consult. Escalation for a token-handling defect is "read the bshaffer source and the OAuth RFCs yourself." For an authorization server, that is an unacceptable support posture; the failure mode of a token bug is credential exposure, not a broken page.

Scaling. Token state is database-backed, so every authenticated request performs a token lookup. That makes the SQL database a hard dependency on the request hot path and a single point of failure for the whole API. Mitigations exist — cache validated tokens with TTL aligned to token expiry, index access_token.token and expires_at, and implement a scheduled purge of expired rows — but none of them are provided by the bundle. Left unmanaged, the token tables grow unbounded and lookup latency degrades over months. There is no JWT/stateless option here, so horizontal scale is bounded by database read capacity rather than by your app tier.

Failure modes to plan for.

  • Database outage or replica lag → total authentication outage, not graceful degradation.
  • No built-in refresh-token rotation or automatic revocation on password change or user deactivation → stale credentials remain valid until natural expiry; you must implement revocation hooks.
  • Clock skew between issuing and validating nodes → intermittent spurious 401s that are painful to diagnose.
  • Fork rot → a silent divergence from upstream means a security fix lands in a repo you are not watching.
  • Grant-type misconfiguration (implicit/password left enabled) → an audit finding at the worst possible moment.

Ramp-up. Laravel developers will find nothing familiar: no Eloquent, no Artisan, no service provider, and the relevant knowledge is Symfony's security firewall plus raw OAuth 2.0 grant-flow mechanics. A competent engineer needs roughly two to three weeks to be productive inside this bundle, versus a few days for Passport. That ramp-up cost is spent acquiring knowledge of a dead-end stack — it does not transfer to the replacement you will eventually build.

Net. The opportunity score of 18.9 against an adoption score of 0.07 reads as "interesting artifact, not an adoption candidate." Recommend closing the evaluation with a written rationale and directing effort to Passport/Sanctum.

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.
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
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle