mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-16 01:39:40 +02:00
Create packages/shared-go/authutil/ with two JWT validator implementations: - JWKSValidator: EdDSA JWKS validation with key caching (extracted from mana-sync) - RemoteValidator: delegates to mana-core-auth /api/v1/auth/validate (from mana-notify/gateway) Plus shared types (Claims, User), middleware factories (JWTMiddleware, ServiceKeyMiddleware), context helpers (GetUser, GetUserID, GetUserRole), and token extraction. Migrated services: - mana-sync: internal/auth/jwt.go now wraps authutil.JWKSValidator - mana-notify: internal/auth/auth.go now wraps authutil.RemoteValidator + ServiceKeyMiddleware - mana-api-gateway: internal/middleware/jwt.go now wraps authutil.RemoteValidator All 3 services compile and pass tests. Service-level packages re-export types for backward compatibility so no consumer code changes are needed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
25 lines
715 B
Go
25 lines
715 B
Go
// Package auth provides JWT authentication for mana-sync.
|
|
// Delegates to shared-go/authutil for EdDSA JWKS validation.
|
|
package auth
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/manacore/shared-go/authutil"
|
|
)
|
|
|
|
// Re-export types so existing consumers don't need to change imports.
|
|
type Claims = authutil.Claims
|
|
|
|
// Validator wraps the shared JWKSValidator.
|
|
type Validator = authutil.JWKSValidator
|
|
|
|
// NewValidator creates a JWT validator that fetches EdDSA keys from the given JWKS URL.
|
|
func NewValidator(jwksURL string) *Validator {
|
|
return authutil.NewJWKSValidator(jwksURL)
|
|
}
|
|
|
|
// ExtractToken extracts the bearer token from an HTTP request.
|
|
func ExtractToken(r *http.Request) string {
|
|
return authutil.ExtractToken(r)
|
|
}
|