Class HighLevelConnectionsManager

    • Constructor Detail

      • HighLevelConnectionsManager

        public HighLevelConnectionsManager​(LowLevelConnectionsManagerInterface lowLevelConnectionsManager,
                                           de.bsvrz.dav.daf.accessControl.AccessControlMode userRightsChecking)
        Initialisiert den HighLevelConnectionsManager
        Parameters:
        lowLevelConnectionsManager - LowLevelConnectionsManager
        userRightsChecking -
    • Method Detail

      • setSelfClientDavConnection

        public void setSelfClientDavConnection​(SelfClientDavConnection selfClientDavConnection)
        Setzt die eigene Datenverteilerverbindung und initialisiert damit weitere Funktionen
        Parameters:
        selfClientDavConnection - selfClientDavConnection
      • getApplicationManager

        public HighLevelApplicationManager getApplicationManager()
        Gibt die Applikationsverwaltung zurück
        Returns:
        Applikationsverwaltung
      • getTransmitterManager

        public HighLevelTransmitterManager getTransmitterManager()
        Gibt die Verwaltung für andere Datenverteilerverbindungen zurück
        Returns:
        Datenverteiler-Verwaltung
        Throws:
        java.lang.IllegalStateException - wenn noch keine verbindung Konfiguration besteht und deswegen noch keine Datenverteiler-Datenverteiler-Verbindungen vorgesehen sind.
      • removeConnection

        public void removeConnection​(T_A_HighLevelCommunication communication)
        Wird aufgerufen, wenn die Verbindung zu einer Applikation terminiert wurde. Hierbei werden verbliebene Anmeldungen entfernt und verschiedene Aufräumarbeiten erledigt.
        Specified by:
        removeConnection in interface HighLevelConnectionsManagerInterface
        Parameters:
        communication - Applikationsverbindung
      • removeConnection

        public void removeConnection​(T_T_HighLevelCommunication communication)
        Wird aufgerufen, wenn die Verbindung zu einem Datenverteiler terminiert wurde. Hierbei werden verbliebene Anmeldungen entfernt und verschiedene Aufräumarbeiten erledigt.
        Specified by:
        removeConnection in interface HighLevelConnectionsManagerInterface
        Parameters:
        communication - Datenverteiler-Verbindung
      • getConfigurationId

        public long getConfigurationId​(java.lang.String configurationPid)
        Gibt die ID der Konfiguration mit der gegebenen Pid zurück
        Specified by:
        getConfigurationId in interface HighLevelConnectionsManagerInterface
        Parameters:
        configurationPid - Die Pid der Konfiguration
        Returns:
        die Id der Konfiguration oder -1 falls kein Objekt gefunden werden konnte
        Throws:
        java.lang.IllegalStateException - falls noch keine Verbindung zur Konfiguration besteht
      • getStoredClientCredentials

        @Nullable
        public de.bsvrz.dav.daf.main.authentication.ClientCredentials getStoredClientCredentials​(java.lang.String userName,
                                                                                                 java.lang.String suffix)
        Gibt das gespeicherte Passwort für einen bestimmten Benutzer aus der Passwort-Datei zurück
        Specified by:
        getStoredClientCredentials in interface HighLevelConnectionsManagerInterface
        Parameters:
        userName - Benutzername
        suffix - Verbindungspartner (damit kann je Verbindungspartner ein unterschiedliches Passwort definiert werden) Wird ignoriert falls null oder leer
        Returns:
        Passwort oder null falls kein Passwort für diesen Benutzer ermittelt werden konnte
      • getStoredClientCredentials

        @Nullable
        public de.bsvrz.dav.daf.main.authentication.ClientCredentials getStoredClientCredentials​(java.lang.String userName,
                                                                                                 long id)
        Description copied from interface: HighLevelConnectionsManagerInterface
        Gibt das in der Passwort(passwd)-Datei gespeicherte Passwort für den angegebenen Benutzernamen zurück
        Specified by:
        getStoredClientCredentials in interface HighLevelConnectionsManagerInterface
        Parameters:
        userName - Benutzername
        id - ID-Des Verbindungspartners (Systemobjekt, wird automatisch in eine Pid umgewandelt)
        Returns:
        Passwort oder null falls der Benutzername nicht gefunden werden konnte
      • getWeight

        public short getWeight​(long transmitterId)
        Gibt das gewicht zwischen der Verbindung zwischen diesem Datenverteiler und einem anderen direkt verbundenen Datenverteiler zurück.
        Specified by:
        getWeight in interface HighLevelConnectionsManagerInterface
        Parameters:
        transmitterId - ID des anderen Datenverteilers
        Returns:
        Gewicht
      • getTransmitterConnectionInfo

        public de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterConnectionInfo getTransmitterConnectionInfo​(long connectedTransmitterId)
        Gibt das TransmitterConnectionInfo-Objekt zu einem Datenverteiler zurück
        Specified by:
        getTransmitterConnectionInfo in interface HighLevelConnectionsManagerInterface
        Parameters:
        connectedTransmitterId - Verbundener Datenverteiler
        Returns:
        Verbindungsinformationen
      • getRemoteTransmitterConnectionInfo

        public de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterConnectionInfo getRemoteTransmitterConnectionInfo​(long connectedTransmitterId)
        Bestimmt die Verbindungsinformationen für eine Verbindung vom angegebenen Datenverteiler zu diesem Datenverteiler.
        Specified by:
        getRemoteTransmitterConnectionInfo in interface HighLevelConnectionsManagerInterface
        Parameters:
        connectedTransmitterId - ID des DAV
        Returns:
        Verbindungsinformationen
      • shutdown

        public void shutdown​(boolean isError,
                             java.lang.String message)
        Beendet den Datenverteiler
        Specified by:
        shutdown in interface HighLevelConnectionsManagerInterface
        Parameters:
        isError - Zum signalisieren, dass ein Fehler aufgetreten ist: true, sonst false
        message - Nach Bedarf eine Fehlermeldung o.ä. zur Ursache des Terminierungsbefehls
      • getAccessControlPluginsClassNames

        public java.util.List<java.lang.String> getAccessControlPluginsClassNames()
        Gibt eine Liste mit den per Kommandozeile festgelegten Zugriffssteuerungs-Plugin-Klassennamen zurück
        Specified by:
        getAccessControlPluginsClassNames in interface HighLevelConnectionsManagerInterface
        Returns:
        Liste mit den Zugriffssteuerungs-Plugin-Klassennamen
      • getPotentialCentralDistributors

        public java.util.List<java.lang.Long> getPotentialCentralDistributors​(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
        Description copied from interface: HighLevelConnectionsManagerInterface
        Gibt potentielle Zentraldatenverteiler für die angegebene Anmeldeinformation zurück
        Specified by:
        getPotentialCentralDistributors in interface HighLevelConnectionsManagerInterface
        Parameters:
        baseSubscriptionInfo - Anmeldeinformation
        Returns:
        Potentielle Zentraldatenverteiler
      • fetchSrpVerifierAndUser

        public de.bsvrz.dav.daf.communication.srpAuthentication.SrpVerifierAndUser fetchSrpVerifierAndUser​(java.lang.String userNameForVerifier,
                                                                                                           int passwordIndex)
                                                                                                    throws de.bsvrz.dav.daf.communication.srpAuthentication.SrpNotSupportedException
        Description copied from interface: HighLevelConnectionsManagerInterface
        Holt den SRP-Überprüfungscode und die Benutzer-ID von einem Benutzer von der Konfiguration
        Specified by:
        fetchSrpVerifierAndUser in interface HighLevelConnectionsManagerInterface
        Parameters:
        userNameForVerifier - 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
      • initializeUser

        public void initializeUser​(long userId)
        Initialisiert die Zugriffsrechte für den angegebenen Benutzer
        Parameters:
        userId - Benutzer-ID (muss in der lokalen Konfiguration existieren)
      • updateTransmitterCommunicationStates

        public void updateTransmitterCommunicationStates​(java.util.Map<de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterInfo,​CommunicationStateAndMessage> connections)
        Benachrichtigung über den Status der konfigurierten Transmitter-Verbindungen

        Als Key werden die konfigurierten Verbindungsinformationen gespeichert (siehe ConfigurationManager.getTransmitterConnectionInfo(long)).

        Als Values wird der Verbindungsstatus gespeichert plus eine eventuelle Fehlernachricht.

        Parameters:
        connections - Konfigurierte Verbindungen