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

Psr7 Hmac Bundle Laravel Package

uma/psr7-hmac-bundle

A PSR-7 HMAC bundle for signing and verifying HTTP requests between services. It adds shared-secret authentication to PSR-7 middleware flows, helping protect APIs from tampering and unauthorized access, and supports validating incoming requests or signing outgoing calls.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • API authentication strategy: informs whether we offer HMAC (shared-secret) request signing for server-to-server and partner integrations, versus OAuth 2.0, mTLS, or JWT. HMAC remains a legitimate, lightweight choice for a small number of trusted partners.
  • Webhook trust model: directly relevant if we send or receive webhooks — verifying a signature, timestamp, and nonce is the difference between "we can prove the payload came from the partner" and "we hope it did."
  • Build vs. buy vs. borrow: this package is the "buy" option, and its state (archived, 8 stars, 0 dependents, last release April 2017) converts the decision into "build ~150 lines of middleware" or "adopt a maintained auth library."
  • Roadmap scoping: confirms that signed-request authentication is a small, well-understood surface — a useful data point when sizing an API-security epic rather than a whole quarter.
  • Legacy and dependency risk: if any team inherits a Symfony app that depends on this, it's a modernization flag: unsupported, pinned to 2017-era Symfony/PSR-7, and receiving no security patches.
  • Framework correction: despite the framing, this is a Symfony bundle, not a Laravel package. In a Laravel codebase the equivalent work is a middleware plus a guard — the concept transfers, the code does not.

When to Consider This Package

Consider it only if:

  • We operate a Symfony application on a version contemporary with 2017 and already pass PSR-7 messages through our stack.
  • We need exactly what it does: an authentication provider and user provider that validate an HMAC signature and surface an authenticated identity to Symfony Security.
  • We want a short, readable reference implementation of canonicalized request signing to study before writing our own.

Look elsewhere — or don't adopt at all — if:

  • We are on Laravel or modern Symfony (5/6/7). No releases since April 2017, no maintainer, archived. Compatibility is unverified at best.
  • Security guarantees matter. This is security-adjacent code with an eight-star user base and zero dependents. Nobody is triaging issues; a flaw would go unfixed indefinitely.
  • We need modern requirements: nonce storage that works across multiple app servers, key rotation, per-client key scoping, explicit constant-time comparison, PSR-15 middleware, and audit logging.
  • Maintained alternatives exist: Symfony's native authenticators, lexik/jwt-authentication-bundle, firebase/php-jwt, league/oauth2-server, or delegating signature verification to an API gateway.

How to Pitch It (Stakeholders)

To executives: This is a small, archived Symfony component for verifying HMAC-signed HTTP requests. The function matters — proving a request genuinely came from a trusted partner — but this specific package has had no vendor support since 2017 and almost no adoption. My recommendation is not to add it as a dependency. We should either implement signing and verification ourselves (roughly a sprint-day of engineering) or use a maintained authentication library. The cost of adopting it is low today and high later: security code we cannot patch is a standing compliance and incident-response liability, and it adds a dependency our auditors will ask about.

To engineering: The bundle is thin glue between a PSR-7 HMAC signer and Symfony Security — a signature validator plus an authentication provider. We can reproduce the useful parts in our own middleware: canonicalized request signing, shared-secret verification, timestamp-and-nonce replay defense, and identity propagation into the framework's auth layer. Doing so gives us control over constant-time comparison, key storage and rotation, and framework-version support, and keeps a dead dependency out of the tree. Use the repository as a design reference if it saves an hour; do not import it. If we are on Laravel, the same design lands as a route middleware and a guard, not a 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.
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus