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 TypeMethodDescriptionlong
createNewApplication
(T_A_HighLevelCommunication communication, String applicationTypePid, String applicationName) Gibt die ID einer Applikation zurück und erstellt gegebenenfalls ein Systemobjektvoid
disableSingleServingPassword
(String userName, int passwordIndex) de.bsvrz.dav.daf.communication.srpAuthentication.SrpVerifierAndUser
fetchSrpVerifierAndAuthentication
(String userName, int passwordIndex) Holt den SRP-Überprüfungscode und die Benutzer-ID von einem Benutzer von der Konfigurationlong
getConfigurationId
(String configurationPid) Gibt die Konfigurations-Id zu einer Pid zurückvoid
handleDataTelegram
(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ApplicationDataTelegram applicationDataTelegram) Behandelt ein ankommendes Daten-Telegrammvoid
handleReceiveSubscription
(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ReceiveSubscriptionTelegram receiveSubscriptionTelegram) Behandelt eine Anmeldung zum Empfangen von Datenvoid
handleReceiveUnsubscription
(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.ReceiveUnsubscriptionTelegram receiveUnsubscriptionTelegram) Behandelt eine Abmeldung zum Empfangen von Datenvoid
handleSendSubscription
(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.SendSubscriptionTelegram sendSubscriptionTelegram) Behandelt eine Anmeldung zum Senden von Datenvoid
handleSendUnsubscription
(T_A_HighLevelCommunication communication, de.bsvrz.dav.daf.communication.lowLevel.telegrams.SendUnsubscriptionTelegram sendUnsubscriptionTelegram) Behandelt eine Abmeldung zum Senden von Datenvoid
removeApplication
(T_A_HighLevelCommunication communication) Wird nach dem Verbindungsabbruch zu einer Applikation aufgerufenvoid
setConfigurationAvailable
(SelfClientDavConnection selfClientDavConnection, String configAreaPidForApplicationObjects) Wird aufgerufen, wenn die Konfiguration verfügbar wird.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.
-
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
-