HighLevelConnectionsManagerInterface
public final class HighLevelConnectionsManager extends java.lang.Object implements HighLevelConnectionsManagerInterface
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 | Description |
---|---|
HighLevelConnectionsManager(LowLevelConnectionsManagerInterface lowLevelConnectionsManager,
de.bsvrz.dav.daf.accessControl.AccessControlMode userRightsChecking) |
Initialisiert den HighLevelConnectionsManager
|
Modifier and Type | Method | Description |
---|---|---|
void |
disableSingleServingPassword(java.lang.String userName,
int passwordIndex) |
Markiert das angegebene Einmalpasswort als benutzt (nachdem der Benutzer es zum erfolgreichen Einloggen verwendet hat)
|
de.bsvrz.dav.daf.communication.srpAuthentication.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
|
de.bsvrz.dav.daf.main.config.ConfigurationObject |
getDavObject() |
Gibt das Konfigurations-Objekt, das den datenverteiler repräsentiert zurück
|
java.util.List<java.lang.Long> |
getPotentialCentralDistributors(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo) |
Gibt potentielle Zentraldatenverteiler für die angegebene Anmeldeinformation zurück
|
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.
|
de.bsvrz.dav.daf.main.authentication.ClientCredentials |
getStoredClientCredentials(java.lang.String userName,
long id) |
Gibt das in der Passwort(passwd)-Datei gespeicherte Passwort für den angegebenen Benutzernamen zurück
|
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
|
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
|
de.bsvrz.dav.daf.main.impl.config.telegrams.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(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo) |
Informiert die Anmeldelisten, dass dieser Datenverteiler Zentraldatenverteiler für die angegebene Anmeldung geworden ist
|
void |
updateListsRemovedLocalSubscription(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo) |
Informiert die Anmeldelisten, dass dieser Datenverteiler nicht mehr Zentraldatenverteiler für die angegebene Anmeldung ist
|
void |
updateTransmitterCommunicationStates(java.util.Map<de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterInfo,CommunicationStateAndMessage> connections) |
Benachrichtigung über den Status der konfigurierten Transmitter-Verbindungen
|
public HighLevelConnectionsManager(LowLevelConnectionsManagerInterface lowLevelConnectionsManager, de.bsvrz.dav.daf.accessControl.AccessControlMode userRightsChecking)
lowLevelConnectionsManager
- LowLevelConnectionsManageruserRightsChecking
- public void setSelfClientDavConnection(SelfClientDavConnection selfClientDavConnection)
selfClientDavConnection
- selfClientDavConnectionpublic HighLevelApplicationManager getApplicationManager()
public HighLevelTransmitterManager getTransmitterManager()
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)
removeConnection
in interface HighLevelConnectionsManagerInterface
communication
- Applikationsverbindungpublic void removeConnection(T_T_HighLevelCommunication communication)
removeConnection
in interface HighLevelConnectionsManagerInterface
communication
- Datenverteiler-Verbindungpublic long getConfigurationId(java.lang.String configurationPid)
getConfigurationId
in interface HighLevelConnectionsManagerInterface
configurationPid
- Die Pid der Konfigurationjava.lang.IllegalStateException
- falls noch keine Verbindung zur Konfiguration bestehtpublic java.lang.String getTransmitterTypePid()
HighLevelConnectionsManagerInterface
getTransmitterTypePid
in interface HighLevelConnectionsManagerInterface
public java.lang.String getTransmitterApplicationName()
HighLevelConnectionsManagerInterface
getTransmitterApplicationName
in interface HighLevelConnectionsManagerInterface
public long getTransmitterId()
HighLevelConnectionsManagerInterface
getTransmitterId
in interface HighLevelConnectionsManagerInterface
public java.lang.String getUserName()
HighLevelConnectionsManagerInterface
getUserName
in interface HighLevelConnectionsManagerInterface
public de.bsvrz.dav.daf.main.authentication.ClientCredentials getStoredClientCredentials(java.lang.String userName, java.lang.String suffix)
getStoredClientCredentials
in interface HighLevelConnectionsManagerInterface
userName
- Benutzernamesuffix
- Verbindungspartner (damit kann je Verbindungspartner ein unterschiedliches Passwort definiert werden)
Wird ignoriert falls null oder leerpublic de.bsvrz.dav.daf.main.authentication.ClientCredentials getStoredClientCredentials(java.lang.String userName, long id)
HighLevelConnectionsManagerInterface
getStoredClientCredentials
in interface HighLevelConnectionsManagerInterface
userName
- Benutzernameid
- ID-Des Verbindungspartners (Systemobjekt, wird automatisch in eine Pid umgewandelt)public short getWeight(long transmitterId)
getWeight
in interface HighLevelConnectionsManagerInterface
transmitterId
- ID des anderen Datenverteilerspublic de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterConnectionInfo getTransmitterConnectionInfo(long connectedTransmitterId)
getTransmitterConnectionInfo
in interface HighLevelConnectionsManagerInterface
connectedTransmitterId
- Verbundener Datenverteilerpublic de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterConnectionInfo getRemoteTransmitterConnectionInfo(long connectedTransmitterId)
getRemoteTransmitterConnectionInfo
in interface HighLevelConnectionsManagerInterface
connectedTransmitterId
- ID des DAVpublic TelegramManager getTelegramManager()
getTelegramManager
in interface HighLevelConnectionsManagerInterface
public T_A_HighLevelCommunication getApplicationConnectionFromId(long applicationId)
getApplicationConnectionFromId
in interface HighLevelConnectionsManagerInterface
applicationId
- IDpublic T_T_HighLevelCommunication getTransmitterConnectionFromId(long transmitterId)
getTransmitterConnectionFromId
in interface HighLevelConnectionsManagerInterface
transmitterId
- IDpublic java.util.Collection<T_A_HighLevelCommunication> getAllApplicationConnections()
getAllApplicationConnections
in interface HighLevelConnectionsManagerInterface
public java.util.Collection<T_T_HighLevelCommunication> getAllTransmitterConnections()
getAllTransmitterConnections
in interface HighLevelConnectionsManagerInterface
public void shutdown(boolean isError, java.lang.String message)
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()
getAccessControlPluginsClassNames
in interface HighLevelConnectionsManagerInterface
public de.bsvrz.dav.daf.main.config.ConfigurationObject getDavObject()
HighLevelConnectionsManagerInterface
getDavObject
in interface HighLevelConnectionsManagerInterface
public java.util.List<java.lang.Long> getPotentialCentralDistributors(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
HighLevelConnectionsManagerInterface
getPotentialCentralDistributors
in interface HighLevelConnectionsManagerInterface
baseSubscriptionInfo
- Anmeldeinformationpublic T_T_HighLevelCommunicationInterface getBestConnectionToRemoteDav(long remoteDav)
HighLevelConnectionsManagerInterface
getBestConnectionToRemoteDav
in interface HighLevelConnectionsManagerInterface
public void updateListsNewLocalSubscription(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
HighLevelConnectionsManagerInterface
updateListsNewLocalSubscription
in interface HighLevelConnectionsManagerInterface
baseSubscriptionInfo
- Anmeldungpublic void updateListsRemovedLocalSubscription(de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo)
HighLevelConnectionsManagerInterface
updateListsRemovedLocalSubscription
in interface HighLevelConnectionsManagerInterface
baseSubscriptionInfo
- Anmeldungpublic boolean isClosing()
HighLevelConnectionsManagerInterface
true
zurück, wenn sich der Datenverteiler gerade beendetisClosing
in interface HighLevelConnectionsManagerInterface
true
, wenn sich der Datenverteiler gerade beendet, sonst false
public HighLevelSubscriptionsManager getSubscriptionsManager()
HighLevelConnectionsManagerInterface
getSubscriptionsManager
in interface HighLevelConnectionsManagerInterface
public de.bsvrz.dav.daf.communication.srpAuthentication.SrpVerifierAndUser fetchSrpVerifierAndUser(java.lang.String userNameForVerifier, int passwordIndex) throws de.bsvrz.dav.daf.communication.srpAuthentication.SrpNotSupportedException
HighLevelConnectionsManagerInterface
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.de.bsvrz.dav.daf.communication.srpAuthentication.SrpNotSupportedException
- Falls SRP nicht untersützt wirdpublic void disableSingleServingPassword(java.lang.String userName, int passwordIndex)
HighLevelConnectionsManagerInterface
disableSingleServingPassword
in interface HighLevelConnectionsManagerInterface
userName
- BenutzernamepasswordIndex
- Index des Einmalpasswortspublic void initializeUser(long userId)
userId
- Benutzer-ID (muss in der lokalen Konfiguration existieren)public void updateTransmitterCommunicationStates(java.util.Map<de.bsvrz.dav.daf.main.impl.config.telegrams.TransmitterInfo,CommunicationStateAndMessage> connections)
Als Key werden die konfigurierten Verbindungsinformationen gespeichert (siehe ConfigurationManager.getTransmitterConnectionInfo(long)
).
Als Values wird der Verbindungsstatus gespeichert plus eine eventuelle Fehlernachricht.
connections
- Konfigurierte Verbindungen