RET-08: ret-06-api auf rbac-06 migrieren

- internal/rbacclient: HTTP-Client fuer Core RBAC-06 (POST /authorize)
- retentionapi.RequireRole (Header-Provisorium) ersetzt durch
  RequireRBAC, echter Aufruf gegen RBAC-06, fail-closed bei Fehlern
- Mount nimmt jetzt rbacclient.Client entgegen
- alle bestehenden RET-06-API-Tests weiterhin gruen
- neue Tests: verweigerte Rolle (403 gegen echte RBAC-06-Antwort),
  erlaubte Rolle (200), RBAC-06 nicht erreichbar -> fail-closed (403)
- real deployed auf 131, end-zu-ende per curl nachgewiesen (403/403/200/403)

Pruefungen siehe archive/docs/RET-08-PRUEFPROTOKOLL.md
This commit is contained in:
sysops
2026-08-30 08:43:00 +02:00
parent 21278f1405
commit b30e16cb4f
7 changed files with 288 additions and 55 deletions
@@ -67,7 +67,7 @@ func authedRequest(t *testing.T, method, url string, body []byte) *http.Response
if err != nil {
t.Fatalf("request erstellen: %v", err)
}
req.Header.Set("X-Admin-Roles", adminRole)
req.Header.Set(requestedRoleHeader, "archive_admin")
resp, err := http.DefaultClient.Do(req)
if err != nil {
t.Fatalf("request senden: %v", err)
@@ -80,7 +80,7 @@ func authedRequest(t *testing.T, method, url string, body []byte) *http.Response
func TestConfigureAndListHandler_RealHTTPRoundTrip(t *testing.T) {
pool := requireTestPool(t)
mux := http.NewServeMux()
Mount(mux, pool)
Mount(mux, pool, fakeRBACServer(t, "archive_admin", retentionConfigurePermission))
server := httptest.NewServer(mux)
defer server.Close()
@@ -110,7 +110,7 @@ func TestDeactivateHandler_RealHTTPRoundTrip(t *testing.T) {
t.Fatal(err)
}
mux := http.NewServeMux()
Mount(mux, pool)
Mount(mux, pool, fakeRBACServer(t, "archive_admin", retentionConfigurePermission))
server := httptest.NewServer(mux)
defer server.Close()
@@ -149,7 +149,7 @@ func TestPreviewHandler_MatchesPeriodicJobResult(t *testing.T) {
}
mux := http.NewServeMux()
Mount(mux, pool)
Mount(mux, pool, fakeRBACServer(t, "archive_admin", retentionConfigurePermission))
server := httptest.NewServer(mux)
defer server.Close()