javascript / expert
Snippet
Objektorientierte EventTarget-Unterklassenbildung mit granularen ACL-Schutzmechanismen
Das Erstellen entkoppelter modularer Plugins erfordert strikte Zugriffskontrollen für Event-Kommunikationskanäle. Durch die Unterklassenbildung von EventTarget lassen sich tokenbasierte Autorisierungsregeln direkt im Event-Dispatching umsetzen.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class SecurePluginBus extends EventTarget {#authorizedTokens = new Set();registerAuthorizationToken(token) {this.#authorizedTokens.add(token);}dispatchProtectedEvent(event, token) {if (!this.#authorizedTokens.has(token)) {throw new Error('Access denied: Unauthorized event dispatch attempt');}return super.dispatchEvent(event);}}
vue
Erklärung
1
class SecurePluginBus extends EventTarget {
Definiert eine benutzerdefinierte Event-Bus-Klasse durch Erweitern des nativen EventTarget-Objekts.
2
#authorizedTokens = new Set();
Erstellt ein privates Set zur Speicherung gültiger Sicherheits-Tokens.
3
registerAuthorizationToken(token) {
Registriert ein neues Authentifizierungs-Token im Autorisierungsregister.
4
this.#authorizedTokens.add(token);
Fügt das Sicherheitstoken der privaten Zugriffsliste hinzu.
5
dispatchProtectedEvent(event, token) {
Definiert eine zugriffsgeschützte Methode zur Event-Auslösung.
6
if (!this.#authorizedTokens.has(token)) {
Prüft, ob der Aufrufer über ein registriertes Autorisierungstoken verfügt.
7
throw new Error('Access denied: Unauthorized event dispatch attempt');
Verhindert die unangemessene Weiterleitung durch Auslösen einer Ausnahmemeldung.
8
return super.dispatchEvent(event);
Delegiert die Ausführung an die native EventTarget-Methode nach erfolgreicher Autorisierung.