Package de.bsvrz.dav.dav.main
Class HighLevelApplicationManager
java.lang.Object
de.bsvrz.dav.dav.main.HighLevelApplicationManager
public class HighLevelApplicationManager
extends java.lang.Object
Klasse, die Telegramme von den Applikations-Verbindungen entgegennimmt und entsprechend weiterleitet und verarbeitet
-
Constructor Summary
Constructors Constructor Description HighLevelApplicationManager(HighLevelConnectionsManagerInterface connectionsManager)Initialisiert einen neuen HighLevelApplicationManager -
Method Summary
Modifier and Type Method Description longcreateNewApplication(T_A_HighLevelCommunication communication, java.lang.String applicationTypePid, java.lang.String applicationName)Gibt die ID einer Applikation zurück und erstellt gegebenenfalls ein SystemobjektvoiddisableSingleServingPassword(java.lang.String userName, int passwordIndex)de.bsvrz.dav.daf.communication.srpAuthentication.SrpVerifierAndUserfetchSrpVerifierAndAuthentication(java.lang.String userName, int passwordIndex)Holt den SRP-Überprüfungscode und die Benutzer-ID von einem Benutzer von der KonfigurationApplicationStatusUpdatergetApplicationStatusUpdater()longgetConfigurationId(java.lang.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, java.lang.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.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
HighLevelApplicationManager
Initialisiert einen neuen HighLevelApplicationManager- Parameters:
connectionsManager- Connections-Manager
-
-
Method Details
-
setConfigurationAvailable
public void setConfigurationAvailable(SelfClientDavConnection selfClientDavConnection, java.lang.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
public long getConfigurationId(java.lang.String configurationPid)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, java.lang.String applicationTypePid, java.lang.String applicationName) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeExceptionGibt 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(java.lang.String userName, int passwordIndex) throws de.bsvrz.dav.daf.communication.srpAuthentication.SrpNotSupportedExceptionHolt 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
public void disableSingleServingPassword(java.lang.String userName, int passwordIndex) -
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
-