24 lines
1002 B
Go
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
|
|
}
|
|
}
|