Class HighLevelApplicationManager


  • public class HighLevelApplicationManager
    extends java.lang.Object
    Klasse, die Telegramme von den Applikations-Verbindungen entgegennimmt und entsprechend weiterleitet und verarbeitet
    • 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 Konfiguration
        configAreaPidForApplicationObjects -
      • 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 - Verbindung
        sendSubscriptionTelegram - 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 - Verbindung
        sendUnsubscriptionTelegram - 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 - Verbindung
        receiveSubscriptionTelegram - 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 - Verbindung
        receiveUnsubscriptionTelegram - 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 - Verbindung
        applicationDataTelegram - 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 Applikationstyps
        applicationName - 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
      • 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 Benutzername
        passwordIndex - Index des Einmalpassworts
        Returns:
        Überprüfungscode und Benutzername analog zur UserAdministration-Implementierung. Insbesondere ist der Benutzer UserLogin.notAuthenticated() falls es den Benutzer nicht gibt, aber es wird immer ein SRP-Überprüfungscode erzeugt um eine SrpServerAuthentication.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