public final class HighLevelConnectionsManager extends java.lang.Object implements HighLevelConnectionsManagerInterface
Diese Klasse stellt das Bindeglied zwischen dem LowLevelConnectionsManager
und den Funktionen der oberen Ebene wie dem HighLevelApplicationManager
, HighLevelTransmitterManager
und dem TelegramManager
dar. Zusätzlich bietet diese Klasse Funktionen von allgemeinem Interesse zur Verbindungsverwaltung, wie z.B. das Herausfinden einer Datenverteiler- oder Applikations-Verbindung von einer Id, das Terminieren des Datenverteilers, das Terminieren von Verbindungen usw., zudem bindet diese Klasse den TerminationQueryReceiver
ein, der clientseitige Terminierungsanfragen entgegennimmt.
Constructor and Description |
---|
HighLevelConnectionsManager(LowLevelConnectionsManagerInterface lowLevelConnectionsManager,
ServerDavParameters.UserRightsChecking userRightsChecking)
Initialisiert den HighLevelConnectionsManager
|
Modifier and Type | Method and Description |
---|---|
void |
disableSingleServingPassword(java.lang.String userName,
int passwordIndex)
Markiert das angegebene Einmalpasswort als benutzt (nachdem der Benutzer es zum erfolgreichen Einloggen verwendet hat)
|
SrpVerifierAndUser |
fetchSrpVerifierAndUser(java.lang.String userNameForVerifier,
int passwordIndex)
Holt den SRP-Überprüfungscode und die Benutzer-ID von einem Benutzer von der Konfiguration
|
java.util.List<java.lang.String> |
getAccessControlPluginsClassNames()
Gibt eine Liste mit den per Kommandozeile festgelegten Zugriffssteuerungs-Plugin-Klassennamen zurück
|
java.util.Collection<T_A_HighLevelCommunication> |
getAllApplicationConnections()
Gibt alle Applikationsverbindungen zurück
|
java.util.Collection<T_T_HighLevelCommunication> |
getAllTransmitterConnections()
Gibt alle Datenverteilerverbindungen zurück
|
T_A_HighLevelCommunication |
getApplicationConnectionFromId(long applicationId)
Bestimmt anhand einer Id die Verbindung dieser angemeldeten Applikation
|
HighLevelApplicationManager |
getApplicationManager()
Gibt die Applikationsverwaltung zurück
|
T_T_HighLevelCommunicationInterface |
getBestConnectionToRemoteDav(long remoteDav)
Gibt die beste Verbindung zum angegebenen (nicht notwendigerweise direkt verbundenen) Datenverteiler zurück
|
long |
getConfigurationId(java.lang.String configurationPid)
Gibt die ID der Konfiguration mit der gegebenen Pid zurück
|
ConfigurationObject |
getDavObject()
Gibt das Konfigurations-Objekt, das den datenverteiler repräsentiert zurück
|
long[] |
getPotentialCentralDistributors(BaseSubscriptionInfo baseSubscriptionInfo)
Gibt potentielle Zentraldatenverteiler für die angegebene Anmeldeinformation zurück
|
TransmitterConnectionInfo |
getRemoteTransmitterConnectionInfo(long connectedTransmitterId)
Bestimmt die Verbindungsinformationen für eine Verbindung vom angegebenen Datenverteiler zu diesem Datenverteiler.
|
ClientCredentials |
getStoredClientCredentials(java.lang.String userName,
long id)
Gibt das in der Passwort(passwd)-Datei gespeicherte Passwort für den angegebenen Benutzernamen zurück
|
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
|
HighLevelSubscriptionsManager |
getSubscriptionsManager()
Gibt den SubscriptionsManager zurück
|
TelegramManager |
getTelegramManager()
Gibt den TelegramManager zurück
|
java.lang.String |
getTransmitterApplicationName()
Gibt den Namen der lokalen Transmitter-Anwendung zurück
|
T_T_HighLevelCommunication |
getTransmitterConnectionFromId(long transmitterId)
Bestimmt anhand einer Id die Verbindung diesem angemeldeten Datenverteiler
|
TransmitterConnectionInfo |
getTransmitterConnectionInfo(long connectedTransmitterId)
Gibt das TransmitterConnectionInfo-Objekt zu einem Datenverteiler zurück
|
long |
getTransmitterId()
Gibt die ID des eigenen Transmitters zurück
|
HighLevelTransmitterManager |
getTransmitterManager()
Gibt die Verwaltung für andere Datenverteilerverbindungen zurück
|
java.lang.String |
getTransmitterTypePid()
Gibt den Typ der lokalen ClientDav-Verbindung zurück
|
java.lang.String |
getUserName()
Gibt den Benutzernamen zurück unter dem der Datenverteiler läuft
|
short |
getWeight(long transmitterId)
Gibt das gewicht zwischen der Verbindung zwischen diesem Datenverteiler und einem anderen direkt verbundenen Datenverteiler zurück.
|
void |
initializeUser(long userId)
Initialisiert die Zugriffsrechte für den angegebenen Benutzer
|
boolean |
isClosing()
Gibt true zurück, wenn sich der Datenverteiler gerade beendet
|
void |
removeConnection(T_A_HighLevelCommunication communication)
Wird aufgerufen, wenn die Verbindung zu einer Applikation terminiert wurde.
|
void |
removeConnection(T_T_HighLevelCommunication communication)
Wird aufgerufen, wenn die Verbindung zu einem Datenverteiler terminiert wurde.
|
void |
setSelfClientDavConnection(SelfClientDavConnection selfClientDavConnection)
Setzt die eigene Datenverteilerverbindung und initialisiert damit weitere Funktionen
|
void |
shutdown(boolean isError,
java.lang.String message)
Beendet den Datenverteiler
|
void |
updateListsNewLocalSubscription(BaseSubscriptionInfo baseSubscriptionInfo)
Informiert die Anmeldelisten, dass dieser Datenverteiler Zentraldatenverteiler für die angegebene Anmeldung geworden ist
|
void |
updateListsRemovedLocalSubscription(BaseSubscriptionInfo baseSubscriptionInfo)
Informiert die Anmeldelisten, dass dieser Datenverteiler nicht mehr Zentraldatenverteiler für die angegebene Anmeldung ist
|
void |
updateTransmitterCommunicationStates(java.util.Map<TransmitterInfo,CommunicationStateAndMessage> connections)
Benachrichtigung über den Status der konfigurierten Transmitter-Verbindungen Als Key werden die konfigurierten Verbindungsinformationen gespeichert (siehe
ConfigurationManager.getTransmitterConnectionInfo(long) ). |
public HighLevelConnectionsManager(LowLevelConnectionsManagerInterface lowLevelConnectionsManager, ServerDavParameters.UserRightsChecking userRightsChecking)
Initialisiert den HighLevelConnectionsManager
lowLevelConnectionsManager
- LowLevelConnectionsManageruserRightsChecking
- public void setSelfClientDavConnection(SelfClientDavConnection selfClientDavConnection)
Setzt die eigene Datenverteilerverbindung und initialisiert damit weitere Funktionen
selfClientDavConnection
- selfClientDavConnectionpublic HighLevelApplicationManager getApplicationManager()
Gibt die Applikationsverwaltung zurück
public HighLevelTransmitterManager getTransmitterManager()
Gibt die Verwaltung für andere Datenverteilerverbindungen zurück
java.lang.IllegalStateException
- wenn noch keine verbindung Konfiguration besteht und deswegen noch keine Datenverteiler-Datenverteiler-Verbindungen vorgesehen sind.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.
removeConnection
in interface HighLevelConnectionsManagerInterface
communication
- Applikationsverbindungpublic 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.
removeConnection
in interface HighLevelConnectionsManagerInterface
communication
- Datenverteiler-Verbindungpublic long getConfigurationId(java.lang.String configurationPid)
Gibt die ID der Konfiguration mit der gegebenen Pid zurück
getConfigurationId
in interface HighLevelConnectionsManagerInterface
configurationPid
- Die Pid der Konfigurationjava.lang.IllegalStateException
- falls noch keine Verbindung zur Konfiguration bestehtpublic java.lang.String getTransmitterTypePid()
HighLevelConnectionsManagerInterface
Gibt den Typ der lokalen ClientDav-Verbindung zurück
getTransmitterTypePid
in interface HighLevelConnectionsManagerInterface
public java.lang.String getTransmitterApplicationName()
HighLevelConnectionsManagerInterface
Gibt den Namen der lokalen Transmitter-Anwendung zurück
getTransmitterApplicationName
in interface HighLevelConnectionsManagerInterface
public long getTransmitterId()
HighLevelConnectionsManagerInterface
Gibt die ID des eigenen Transmitters zurück
getTransmitterId
in interface HighLevelConnectionsManagerInterface
public java.lang.String getUserName()
HighLevelConnectionsManagerInterface
Gibt den Benutzernamen zurück unter dem der Datenverteiler läuft
getUserName
in interface HighLevelConnectionsManagerInterface
public 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
getStoredClientCredentials
in interface HighLevelConnectionsManagerInterface
userName
- Benutzernamesuffix
- Verbindungspartner (damit kann je Verbindungspartner ein unterschiedliches Passwort definiert werden) Wird ignoriert falls null oder leerpublic ClientCredentials getStoredClientCredentials(java.lang.String userName, long id)
HighLevelConnectionsManagerInterface
Gibt das in der Passwort(passwd)-Datei gespeicherte Passwort für den angegebenen Benutzernamen zurück
getStoredClientCredentials
in interface HighLevelConnectionsManagerInterface
userName
- Benutzernameid
- ID-Des Verbindungspartners (Systemobjekt, wird automatisch in eine Pid umgewandelt)public short getWeight(long transmitterId)
Gibt das gewicht zwischen der Verbindung zwischen diesem Datenverteiler und einem anderen direkt verbundenen Datenverteiler zurück.
getWeight
in interface HighLevelConnectionsManagerInterface
transmitterId
- ID des anderen Datenverteilerspublic TransmitterConnectionInfo getTransmitterConnectionInfo(long connectedTransmitterId)
Gibt das TransmitterConnectionInfo-Objekt zu einem Datenverteiler zurück
getTransmitterConnectionInfo
in interface HighLevelConnectionsManagerInterface
connectedTransmitterId
- Verbundener Datenverteilerpublic TransmitterConnectionInfo getRemoteTransmitterConnectionInfo(long connectedTransmitterId)
Bestimmt die Verbindungsinformationen für eine Verbindung vom angegebenen Datenverteiler zu diesem Datenverteiler.
getRemoteTransmitterConnectionInfo
in interface HighLevelConnectionsManagerInterface
connectedTransmitterId
- ID des DAVpublic TelegramManager getTelegramManager()
Gibt den TelegramManager zurück
getTelegramManager
in interface HighLevelConnectionsManagerInterface
public T_A_HighLevelCommunication getApplicationConnectionFromId(long applicationId)
Bestimmt anhand einer Id die Verbindung dieser angemeldeten Applikation
getApplicationConnectionFromId
in interface HighLevelConnectionsManagerInterface
applicationId
- IDpublic T_T_HighLevelCommunication getTransmitterConnectionFromId(long transmitterId)
Bestimmt anhand einer Id die Verbindung diesem angemeldeten Datenverteiler
getTransmitterConnectionFromId
in interface HighLevelConnectionsManagerInterface
transmitterId
- IDpublic java.util.Collection<T_A_HighLevelCommunication> getAllApplicationConnections()
Gibt alle Applikationsverbindungen zurück
getAllApplicationConnections
in interface HighLevelConnectionsManagerInterface
public java.util.Collection<T_T_HighLevelCommunication> getAllTransmitterConnections()
Gibt alle Datenverteilerverbindungen zurück
getAllTransmitterConnections
in interface HighLevelConnectionsManagerInterface
public void shutdown(boolean isError, java.lang.String message)
Beendet den Datenverteiler
shutdown
in interface HighLevelConnectionsManagerInterface
isError
- Zum signalisieren, dass ein Fehler aufgetreten ist: true, sonst falsemessage
- Nach Bedarf eine Fehlermeldung o.ä. zur Ursache des Terminierungsbefehlspublic java.util.List<java.lang.String> getAccessControlPluginsClassNames()
Gibt eine Liste mit den per Kommandozeile festgelegten Zugriffssteuerungs-Plugin-Klassennamen zurück
getAccessControlPluginsClassNames
in interface HighLevelConnectionsManagerInterface
public ConfigurationObject getDavObject()
HighLevelConnectionsManagerInterface
Gibt das Konfigurations-Objekt, das den datenverteiler repräsentiert zurück
getDavObject
in interface HighLevelConnectionsManagerInterface
public long[] getPotentialCentralDistributors(BaseSubscriptionInfo baseSubscriptionInfo)
HighLevelConnectionsManagerInterface
Gibt potentielle Zentraldatenverteiler für die angegebene Anmeldeinformation zurück
getPotentialCentralDistributors
in interface HighLevelConnectionsManagerInterface
baseSubscriptionInfo
- Anmeldeinformationpublic T_T_HighLevelCommunicationInterface getBestConnectionToRemoteDav(long remoteDav)
HighLevelConnectionsManagerInterface
Gibt die beste Verbindung zum angegebenen (nicht notwendigerweise direkt verbundenen) Datenverteiler zurück
getBestConnectionToRemoteDav
in interface HighLevelConnectionsManagerInterface
public void updateListsNewLocalSubscription(BaseSubscriptionInfo baseSubscriptionInfo)
HighLevelConnectionsManagerInterface
Informiert die Anmeldelisten, dass dieser Datenverteiler Zentraldatenverteiler für die angegebene Anmeldung geworden ist
updateListsNewLocalSubscription
in interface HighLevelConnectionsManagerInterface
baseSubscriptionInfo
- Anmeldungpublic void updateListsRemovedLocalSubscription(BaseSubscriptionInfo baseSubscriptionInfo)
HighLevelConnectionsManagerInterface
Informiert die Anmeldelisten, dass dieser Datenverteiler nicht mehr Zentraldatenverteiler für die angegebene Anmeldung ist
updateListsRemovedLocalSubscription
in interface HighLevelConnectionsManagerInterface
baseSubscriptionInfo
- Anmeldungpublic boolean isClosing()
HighLevelConnectionsManagerInterface
Gibt true zurück, wenn sich der Datenverteiler gerade beendet
isClosing
in interface HighLevelConnectionsManagerInterface
public HighLevelSubscriptionsManager getSubscriptionsManager()
HighLevelConnectionsManagerInterface
Gibt den SubscriptionsManager zurück
getSubscriptionsManager
in interface HighLevelConnectionsManagerInterface
public SrpVerifierAndUser fetchSrpVerifierAndUser(java.lang.String userNameForVerifier, int passwordIndex) throws SrpNotSupportedException
HighLevelConnectionsManagerInterface
Holt den SRP-Überprüfungscode und die Benutzer-ID von einem Benutzer von der Konfiguration
fetchSrpVerifierAndUser
in interface HighLevelConnectionsManagerInterface
userNameForVerifier
- Anzufragender BenutzernamepasswordIndex
- Index des EinmalpasswortsUserAdministration
-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.SrpNotSupportedException
- Falls SRP nicht untersützt wirdpublic void disableSingleServingPassword(java.lang.String userName, int passwordIndex)
HighLevelConnectionsManagerInterface
Markiert das angegebene Einmalpasswort als benutzt (nachdem der Benutzer es zum erfolgreichen Einloggen verwendet hat)
disableSingleServingPassword
in interface HighLevelConnectionsManagerInterface
userName
- BenutzernamepasswordIndex
- Index des Einmalpasswortspublic void initializeUser(long userId)
Initialisiert die Zugriffsrechte für den angegebenen Benutzer
userId
- Benutzer-ID (muss in der lokalen Konfiguration existieren)public void updateTransmitterCommunicationStates(java.util.Map<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.
connections
- Konfigurierte Verbindungen