Files
nexarch/internal/auditadmin/authorize.go
T

24 lines
1002 B
Go

// Package auditadmin implementiert Core AUD-04: die Berechtigungspruefung
// fuer die Audit-Log-Ansicht. Enthaelt bewusst KEINE eigene Filter-/
// Export-Logik — die Ansicht ist "reiner Konsument der Export-API" (AUD-03,
// internal/audit.ExportHandler); dieses Paket liefert nur die
// audit.Authorize-Implementierung, die der Entwicklungs-/Testserver
// (cmd/auditlog-devserver) einhaengt.
package auditadmin
import "crypto/subtle"
// NewTokenAuthorizer liefert eine audit.Authorize-Funktion, die den
// aufrufenden "caller"-Wert timing-safe gegen ein geteiltes Admin-Token
// vergleicht — dasselbe Muster wie internal/audit.timingsafe (AUD-02),
// NICHT ueber eine neue Rollen-/Rechteschicht, da AUD-04 ausdruecklich nur
// von AUD-03 abhaengt.
func NewTokenAuthorizer(adminToken string) func(caller string) bool {
return func(caller string) bool {
if caller == "" || adminToken == "" {
return false
}
return subtle.ConstantTimeCompare([]byte(caller), []byte(adminToken)) == 1
}
}