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 long
createNewApplication(T_A_HighLevelCommunication communication, java.lang.String applicationTypePid, java.lang.String applicationName)
Gibt die ID einer Applikation zurück und erstellt gegebenenfalls ein Systemobjektvoid
disableSingleServingPassword(java.lang.String userName, int passwordIndex)
de.bsvrz.dav.daf.communication.srpAuthentication.SrpVerifierAndUser
fetchSrpVerifierAndAuthentication(java.lang.String userName, int passwordIndex)
Holt den SRP-Überprüfungscode und die Benutzer-ID von einem Benutzer von der KonfigurationApplicationStatusUpdater
getApplicationStatusUpdater()
long
getConfigurationId(java.lang.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, java.lang.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 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.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
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
-
-