Ereignisgesteuerte Programmierung

Status
Nicht offen für weitere Antworten.

maximilius

Mitglied
Ich beziehe mich auf einen Online-Artikel:
Ereignisgesteuerte Programmierung in PHP || IT-Republik - PHP - Artikel

Es geht im Artikel um PHP, meine Frage ist aber Programmiersprachenunabhängig.

Im Artikel wird vorgeschlagen, einen Login erweiterbar zu programmieren in Form eines Vermittler-Entwurfsmusters.
Dabei löst die Login-Komponente ein Ereignis aus, wleches über den Vermittler an andere Komponenten weiter geleitet wird:
Nix_Wenz_E45a4fc31484f9.gif

In der Abbildung sind mehrere Komponenten zu sehen.

Die eine Komponente schreibt Logfiles. Sie soll mitloggen, wenn ein erfolgreicher oder auch wenn ein abgewiesener Login durchgeführt wurde.
Eine andere Komponente kontrolliert die IP-Adresse des Benutzers und sperrt ggf. den Zugriff. (Verbietet den Login)

Jetzt zu meiner Frage:
Wie kann ich mit der Lösung sicherstellen, dass die Loginkomponente auch den tatsächlichen Status mitloggt?
Es kann ja sein, dass der Vermittler zuerst die logfileschreibende Komponente aufruft und danach die IP-Überprüfende, die den Login zurücksetzt.
Dann würde im Logfile ein Erfolg geloggt werden, obwohl dies nicht der Fall ist.

lg Stephan
 

HoaX

Top Contributor
Der Dispatcher könnte bei allen drei Aktionen erst nacheinander before(...), dann perform(..) und zum Ende dann after(...) aufrufen.
 

maximilius

Mitglied
Das ist eine sehr gute Idee.
Vielen Dank!

Reichen da nicht sogar schon before() und after() aus?

Mir fällt gerade ein, dass man das Ereignis ja auch in zwei Ereignisse aufspalten könnte:
1) LoginAttempt
2) LoginSuccess

Dann könnte man die IP-Kontrolle auf LoginAttempt anmelden und die Logkomponente auf LoginSuccess.

lg Stephan
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben