Package de.bsvrz.dav.dav.main
Class HighLevelApplicationManager
- java.lang.Object
-
- de.bsvrz.dav.dav.main.HighLevelApplicationManager
-
public class HighLevelApplicationManager extends java.lang.ObjectKlasse, 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.
-
-
-
Constructor Detail
-
HighLevelApplicationManager
public HighLevelApplicationManager(HighLevelConnectionsManagerInterface connectionsManager)
Initialisiert einen neuen HighLevelApplicationManager- Parameters:
connectionsManager- Connections-Manager
-
-
Method Detail
-
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.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
public void removeApplication(T_A_HighLevelCommunication communication)
Wird nach dem Verbindungsabbruch zu einer Applikation aufgerufen- Parameters:
communication- Verbindung, die terminiert wurde
-
getApplicationStatusUpdater
public ApplicationStatusUpdater 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
-
-