Package de.bsvrz.dav.dav.main
Class HighLevelApplicationManager
java.lang.Object
de.bsvrz.dav.dav.main.HighLevelApplicationManager
Klasse, die Telegramme von den Applikations-Verbindungen entgegennimmt und entsprechend weiterleitet und verarbeitet
-
Constructor Summary
ConstructorsConstructorDescriptionHighLevelApplicationManager(HighLevelConnectionsManagerInterface connectionsManager) Initialisiert einen neuen HighLevelApplicationManager -
Method Summary
Modifier and TypeMethodDescriptionlongcreateNewApplication(T_A_HighLevelCommunication communication, String applicationTypePid, String applicationName) Gibt die ID einer Applikation zurück und erstellt gegebenenfalls ein SystemobjektvoiddisableSingleServingPassword(String userName, int passwordIndex) de.bsvrz.dav.daf.communication.srpAuthentication.SrpVerifierAndUserfetchSrpVerifierAndAuthentication(String userName, int passwordIndex) Holt den SRP-Überprüfungscode und die Benutzer-ID von einem Benutzer von der KonfigurationlonggetConfigurationId(String configurationPid) Gibt die Konfigurations-Id zu einer Pid zurückvoidhandleDataTelegram(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram applicationDataTelegram) Behandelt ein ankommendes Daten-TelegrammvoidhandleReceiveSubscription(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ReceiveSubscriptionTelegram receiveSubscriptionTelegram) Behandelt eine Anmeldung zum Empfangen von DatenvoidhandleReceiveUnsubscription(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ReceiveUnsubscriptionTelegram receiveUnsubscriptionTelegram) Behandelt eine Abmeldung zum Empfangen von DatenvoidhandleSendSubscription(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.SendSubscriptionTelegram sendSubscriptionTelegram) Behandelt eine Anmeldung zum Senden von DatenvoidhandleSendUnsubscription(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.SendUnsubscriptionTelegram sendUnsubscriptionTelegram) Behandelt eine Abmeldung zum Senden von DatenvoidremoveApplication(T_A_HighLevelCommunication communication) Wird nach dem Verbindungsabbruch zu einer Applikation aufgerufenvoidsetConfigurationAvailable(SelfClientDavConnection selfClientDavConnection, String configAreaPidForApplicationObjects) Wird aufgerufen, wenn die Konfiguration verfügbar wird.voidthrottleLoginAttempt(boolean passwordWasCorrect) Wird bei jedem Login-Versuch aufgerufen und sorgt dafür, dass bei wiederholten Brute-Force-Angriffen der Login verzögert wird.
-
Constructor Details
-
HighLevelApplicationManager
Initialisiert einen neuen HighLevelApplicationManager- Parameters:
connectionsManager- Connections-Manager
-
-
Method Details
-
setConfigurationAvailable
public void setConfigurationAvailable(SelfClientDavConnection selfClientDavConnection, String configAreaPidForApplicationObjects) Wird aufgerufen, wenn die Konfiguration verfügbar wird.- Parameters:
selfClientDavConnection- Verbindung zur KonfigurationconfigAreaPidForApplicationObjects-
-
handleSendSubscription
public void handleSendSubscription(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.SendSubscriptionTelegram sendSubscriptionTelegram) Behandelt eine Anmeldung zum Senden von Daten- Parameters:
communication- VerbindungsendSubscriptionTelegram- Anmeldetelegramm
-
handleSendUnsubscription
public void handleSendUnsubscription(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.SendUnsubscriptionTelegram sendUnsubscriptionTelegram) Behandelt eine Abmeldung zum Senden von Daten- Parameters:
communication- VerbindungsendUnsubscriptionTelegram- Abmeldetelegramm
-
handleReceiveSubscription
public void handleReceiveSubscription(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ReceiveSubscriptionTelegram receiveSubscriptionTelegram) Behandelt eine Anmeldung zum Empfangen von Daten- Parameters:
communication- VerbindungreceiveSubscriptionTelegram- Anmeldetelegramm
-
handleReceiveUnsubscription
public void handleReceiveUnsubscription(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ReceiveUnsubscriptionTelegram receiveUnsubscriptionTelegram) Behandelt eine Abmeldung zum Empfangen von Daten- Parameters:
communication- VerbindungreceiveUnsubscriptionTelegram- Abmeldetelegramm
-
handleDataTelegram
public void handleDataTelegram(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram applicationDataTelegram) Behandelt ein ankommendes Daten-Telegramm- Parameters:
communication- VerbindungapplicationDataTelegram- Daten-Telegramm
-
getConfigurationId
Gibt die Konfigurations-Id zu einer Pid zurück- Parameters:
configurationPid- Pid eines Konfigurationsverantwortlichen- Returns:
- die Id der Konfiguration oder -1 falls kein Objekt gefunden werden konnte
-
createNewApplication
public long createNewApplication(T_A_HighLevelCommunication communication, String applicationTypePid, String applicationName) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException Gibt die ID einer Applikation zurück und erstellt gegebenenfalls ein Systemobjekt- Parameters:
communication-applicationTypePid- die Pid des ApplikationstypsapplicationName- der Applikationsname- Returns:
- die Applikation ID oder -1 bei einem Problem
- Throws:
de.bsvrz.dav.daf.main.config.ConfigurationChangeException- signalisiert Fehler bei Konfigurationsänderungen
-
removeApplication
Wird nach dem Verbindungsabbruch zu einer Applikation aufgerufen- Parameters:
communication- Verbindung, die terminiert wurde
-
getApplicationStatusUpdater
-
fetchSrpVerifierAndAuthentication
public de.bsvrz.dav.daf.communication.srpAuthentication.SrpVerifierAndUser fetchSrpVerifierAndAuthentication(String userName, int passwordIndex) throws de.bsvrz.dav.daf.communication.srpAuthentication.SrpNotSupportedException Holt den SRP-Überprüfungscode und die Benutzer-ID von einem Benutzer von der Konfiguration- Parameters:
userName- Anzufragender BenutzernamepasswordIndex- Index des Einmalpassworts- Returns:
- Überprüfungscode und Benutzername analog zur
UserAdministration-Implementierung. Insbesondere ist der BenutzerUserLogin.notAuthenticated()falls es den Benutzer nicht gibt, aber es wird immer ein SRP-Überprüfungscode erzeugt um eineSrpServerAuthentication.step1(String, BigInteger, BigInteger, boolean)Fake-Authentifizierung} zu ermöglichen. - Throws:
de.bsvrz.dav.daf.communication.srpAuthentication.SrpNotSupportedException- Falls SRP nicht untersützt wird
-
disableSingleServingPassword
-
throttleLoginAttempt
public void throttleLoginAttempt(boolean passwordWasCorrect) Wird bei jedem Login-Versuch aufgerufen und sorgt dafür, dass bei wiederholten Brute-Force-Angriffen der Login verzögert wird.- Parameters:
passwordWasCorrect- War das Passwort korrekt? Ausgebremst wird zwar immer, aber nur wenn das passwort falsch war, hat das eine Auswirkung auf folgende Login-Vesuche
-