[FIX] Simulazione: warning residui + provision JWT standard

- ServicesController::provision(): JWT usa user_id (standard requireAuth)
- simulate-nis2.php: classifyOrg null-safe per entity_type
- simulate-nis2.php: completeOnboarding usa PUT /organizations/{id}
  invece di /onboarding/complete (evita 409 quando org già esiste)
- simulate-nis2.php: supplier.critical rimosso da $supDef (was extra field)
- EmailService: rimosso sent_at (non in email_log schema)
- WebhookService: status ?? 'detected' (null-safe)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-03-09 10:00:59 +01:00
co-authored by Claude Sonnet 4.6
parent 13df162ec4
commit 1602438aac
2 changed files with 17 additions and 13 deletions
@@ -654,14 +654,9 @@ class ServicesController extends BaseController
// ── 7. JWT accesso immediato (2h) ────────────────────────────────
$issuedAt = time();
$jwtPayload = [
'iss' => 'nis2.agile.software',
'sub' => $userId,
'org_id' => $orgId,
'role' => 'super_admin',
'provisioned' => true,
'iat' => $issuedAt,
'exp' => $issuedAt + 7200,
'type' => 'access',
'user_id' => $userId, // campo standard atteso da requireAuth()
'iat' => $issuedAt,
'exp' => $issuedAt + JWT_EXPIRES_IN,
];
$h = $this->base64UrlEncode(json_encode(['alg' => 'HS256', 'typ' => 'JWT']));
$p = $this->base64UrlEncode(json_encode($jwtPayload));