Robustheits-Fix: RFC-5321-konforme E-Mail-Local-Parts (keine Rand-Punkte/Doppelpunkte) + sAMAccountName-Fallback bei Nicht-Latin-Namen + Release v11

This commit is contained in:
Kühn
2026-09-17 13:15:27 +02:00
parent 1c28917bb5
commit 4d5ab818e9
6 changed files with 29 additions and 5 deletions

View File

@@ -78,6 +78,14 @@ router.post('/create-user', adminMiddleware, validate(createADUserSchema), async
}
sAMAccountName = sAMAccountName.substring(0, 20);
// Fallback: Wenn der Name nur aus Sonderzeichen bestand (z.B. rein chinesisch),
// wäre sAMAccountName leer — AD würde den User ablehnen. Dann generischen
// Namen aus Zeitstempel verwenden und den Original-Username als displayName behalten.
if (!sAMAccountName) {
sAMAccountName = 'user' + Date.now().toString(36);
console.warn('[AD] sAMAccountName war nach Normalisierung leer — Fallback:', sAMAccountName);
}
const existing = await checkADUserExists(username, sAMAccountName);
if (existing) {
return res.status(409).json({ error: 'Benutzername "' + username + '" existiert bereits im Active Directory.', dn: existing.distinguishedName });