middleware

package
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 9, 2026 License: MIT Imports: 15 Imported by: 0

Documentation

Overview

Package middleware contient les middlewares HTTP de JellyGate.

Ce fichier implémente le middleware d'authentification admin qui protège les routes /admin/* en vérifiant le cookie de session signé.

Package middleware — i18n.go

Middleware de détection de langue pour JellyGate.

Ordre de priorité :

  1. Cookie "lang" (défini par le sélecteur UI)
  2. En-tête HTTP Accept-Language
  3. Valeur default_lang lue depuis la table settings (via DefaultLangProvider)

La langue détectée est injectée dans le contexte de la requête et accessible via middleware.LangFromContext(ctx).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CSRFCookieName

func CSRFCookieName() string

func CSRFTokenFromContext

func CSRFTokenFromContext(ctx context.Context) string

func DetectLanguage

func DetectLanguage(provider DefaultLangProvider) func(http.Handler) http.Handler

DetectLanguage détermine la langue de l'utilisateur et l'injecte dans le contexte de la requête.

Priorité : cookie "lang" → Accept-Language → provider.GetDefaultLang().

func EnsureCSRFCookie

func EnsureCSRFCookie(baseURL string) func(http.Handler) http.Handler

EnsureCSRFCookie cree un cookie CSRF si absent.

func LangFromContext

func LangFromContext(ctx context.Context) string

LangFromContext extracts the language from the request context. Returns "en" if no language is defined.

func LogPanics

func LogPanics() func(http.Handler) http.Handler

LogPanics is a development middleware that recovers panics and logs a full stack trace to the server logger. Useful to capture the cause of intermittent 500 errors during local debugging. Intended for local/dev use only.

func RateLimitByIP

func RateLimitByIP(limit int, window time.Duration) func(http.Handler) http.Handler

RateLimitByIP applique une limitation simple par IP pour les routes sensibles.

func RequestIsHTTPS

func RequestIsHTTPS(r *http.Request, baseURL string) bool

RequestIsHTTPS determines whether the incoming request should be considered HTTPS from trusted server-side state.

func RequireAdminAuth

func RequireAdminAuth() func(http.Handler) http.Handler

RequireAdminAuth est une surcouche qui exige spécifiquement que la session contienne IsAdmin == true. Doit être appelé APRÈS RequireAuth (ou englober la route).

func RequireAuth

func RequireAuth(secretKey, baseURL string, validators ...SessionValidator) func(http.Handler) http.Handler

RequireAuth est un middleware Chi qui verifie que l'utilisateur est connecte en tant qu'utilisateur legitime (Admin ou Standard).

func RequireCSRF

func RequireCSRF() func(http.Handler) http.Handler

RequireCSRF verifie le token sur les methodes mutables.

func ScriptNonceFromContext

func ScriptNonceFromContext(ctx context.Context) string

func SecurityHeaders

func SecurityHeaders(baseURL string) func(http.Handler) http.Handler

SecurityHeaders ajoute un socle de headers de securite pour toutes les reponses.

func SessionAllowed

func SessionAllowed(sess *session.Payload, validators ...SessionValidator) bool

SessionAllowed applique les validateurs optionnels a une session.

Types

type DefaultLangProvider

type DefaultLangProvider interface {
	GetDefaultLang() string
}

DefaultLangProvider fournit la langue par défaut du serveur. Implémenté par database.DB via GetDefaultLang().

type SessionValidator

type SessionValidator func(*session.Payload) bool

SessionValidator peut refuser une session pourtant correctement signee (par exemple apres une revocation globale).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL