|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Schnittstelle, die vom Server-Code für den Zugriff auf Laufzeitdaten
benutzt wird. Beim Erzeugen eines HBCI-Server-Objektes (siehe
HBCIServer()
) muss ein Objekt angegeben werden, welches dieses Interface
implementiert. Der HBCI4Java-Server-Code benutzt die Methoden dieser
Schnittstelle, um Daten, die zur Konfiguration, Benutzerverwaltung usw.
benötigt werden, in Erfahrung zu bringen.
Somit sind die Laufzeitdaten eines HBCI-Servers von der
eigentlichen Server-Implementation losgelöst. Durch die Verwendung eines
Interfaces kann ein konkreter Server diese Daten auf beliebige Art und
Weise bereitstellen. Für einen allerersten Server-Test könnten die jeweiligen
Methoden beispielsweise feste Rückgabewerte (also statische Daten)
zurückliefern. In einer "echteren" Implementation könnten die Daten aus
einer Datenbank kommen, die evtl. auch zur Laufzeit des Servers geändert
wird (siehe dazu auch
HBCIServer.reInitializeServerData()
!!).
In der Beschreibung des API wird davon ausgegangen, dass der zu implementierende HBCI-Server tatsächlich innerhalb einer Bank läuft, deshalb auch Beschreibungen wie "Bankleitzahl für Kreditinstitut zurückgeben". Soll der HBCI-Server nur innerhalb einer Testumgebung aufgesetzt werden, so ist hier natürlich prinzipiell jede BLZ möglich, diese muss dann aber auch clientseitig verwendet werden. Das gilt analog auch für alle anderen Daten, die mit diesem Interface verwaltet werden.
Method Summary | |
void |
addSigId(String userid,
long sigid)
Hinzufügen einer Signatur-ID zur Liste der schon eingereichten Signatur-IDs. |
void |
clearSigIds(String userid)
Löschen der Liste schon eingereichter Signatur-IDs. |
int |
getAccountInfoVersion(String userid)
Ermitteln der Versionsnummer der Kontoinformationen. |
org.kapott.hbci.structures.Konto[] |
getAccounts(String userid)
Ermitteln aller für eine bestimmte Nutzerkennung gültigen Kontoverbindungen. |
String |
getBLZ()
Bankleitzahl für Kreditinstitut zurückgeben |
int |
getBPDVersion(String hbciVersion)
Gibt die Versionsnummer der aktuell gültigen BankParameterDaten zurück. |
String[][] |
getCommData(String hbciVersion)
Zurückgeben der Kommunikationsparameter. |
String |
getCountry()
Ländercode für Kreditinstitut zurückgeben. |
org.kapott.hbci.manager.HBCIKey[] |
getCryptKeys()
Wird vom HBCI4Java-Server-Code bei dessen Initialisierung aufgerufen, um die Chiffrierschlüssel des Institutes für den RDH-Zugang zu erhalten. |
String[] |
getCustomerIds(String userid)
Gibt zu einer Benutzerkennung die gültigen Kunden-IDs zurück. |
String |
getDefaultLang(String hbciVersion)
Gibt die Standard-Sprache des HBCI-Servers zurück. |
int |
getGVMaxNum(String gvname,
int gvversion)
Gibt zurück, wie viele Auftragssegmente einer Geschäftsvorfallart pro Auftragsnachricht erlaubt werden sollen. |
int |
getGVMinSigs(String gvname,
int gvversion)
Wieviele Signaturen sind für einen bestimmten Geschäftsvorfall nötig? |
java.util.Properties |
getGVParams(String gvname,
int gvversion)
Ermitteln der Parameter für einen Geschäftsvorfall. |
int[] |
getGVVersions(String gvname,
String hbciversion)
Welche Versionen eines Geschäftsvorfalles sollen für eine bestimmte HBCI-Version unterstützt werden? |
String |
getKIName()
Namen des Kreditinstitutes zurückgeben |
int |
getLogLevel()
Ermitteln des Log-Levels, mit welchem der HBCI4Java-Server-Code Logausgaben erzeugen soll. |
int |
getMaxMsgSize(String hbciVersion)
Maximale Größe einer HBCI-Nachricht in KiloByte (1024 Byte). |
int |
getNumOfGVsPerMsg(String hbciVersion)
Wieviele Auftragssegmente sollen pro HBCI-Nachricht möglich sein? |
Long |
getSigId()
Wird aufgerufen, wenn der HBCI4Java-Server-Code die aktuelle Signatur-ID für servergenerierte Signaturen benötigt. |
long[] |
getSigIds(String userid)
Ermitteln der schon eingereichten Signatur-IDs für eine bestimmte Nutzerkennung. |
org.kapott.hbci.manager.HBCIKey[] |
getSigKeys()
Wird vom HBCI4Java-Server-Code bei dessen Initialisierung aufgerufen, um die Signierschlüssel des Institutes für den RDH-Zugang zu erhalten. |
String[][] |
getSuppCompMethods(String hbciVersion)
Welche Kompressionsverfahren soll der HBCI-Server unterstützen? |
String[] |
getSuppHBCIVersions()
Welche HBCI-Versionen soll der HBCI-Server unterstützen? |
String[] |
getSuppLangs(String hbciVersion)
Menge der unterstützen Sprachen zurückgeben. |
String[] |
getSupportedGVs(String hbciversion)
Liste aller unterstützten HBCI-Geschäftsvorfälle zurückgeben. |
String[][] |
getSuppSecMethods(String hbciVersion)
Welche Sicherheitsmechanismen soll der HBCI-Server unterstützen? |
String |
getSysId(String userid)
Ermitteln der System-ID für einen Nutzer. |
String[] |
getUserIds()
Liste der gültigen Benutzerkennungen ermitteln. |
org.kapott.hbci.manager.HBCIKey[] |
getUserKeys(String userid)
Ermitteln der öffentlichen Schlüssel eines Nutzers. |
boolean |
isAnonAllowed()
Gibt an, ob der HBCI-Server anonyme Zugänge erlauben soll. |
void |
setCryptKeys(org.kapott.hbci.manager.HBCIKey[] keys)
Speichern eines neuen Chiffrierschlüsselpaares. |
void |
setSigId(Long sigid)
Speichern des aktuellen Wertes der Signatur-ID. |
void |
setSigKeys(org.kapott.hbci.manager.HBCIKey[] keys)
Speichern eines neuen Signierschlüsselpaares. |
void |
setSysId(String userid,
String sysid)
Speichern der neuen System-ID für einen Nutzer. |
void |
storeUserEncKey(String userid,
org.kapott.hbci.manager.HBCIKey key)
Speichern des geänderten Chiffrierschlüssels eines Nutzers. |
void |
storeUserSigKey(String userid,
org.kapott.hbci.manager.HBCIKey key)
Speichern des geänderten Signierschlüssels eines Nutzers. |
Method Detail |
public String getCountry()
DE
")public String getBLZ()
public String getKIName()
public String[][] getCommData(String hbciVersion)
Zurückgeben der Kommunikationsparameter. Damit ist gemeint, welche
Kommunikationspfade genutzt werden können, um diesen Server zu erreichen.
Für jeden zu realisierenden Pfad ist genau ein String[]
zurückzugeben.
Ein solches String[]
für einen Kommunikationspfad enthält
folgende Daten in dieser Reihenfolge: Typ des Dienstes, Adresse, Adresszusatz,
Filter, Filterversion. (diese Daten entsprechen den Daten aus dem HBCI-Segment
"Kommunikationszugang zurückmelden". Zur Zeit wird für "Typ des
Dienstes" nur der Wert "2
" unterstützt. Als Adresse muss
dann die IP-Adresse angegeben werden, auf der der Server auf eingehende Verbindungen
warten soll. Alle anderen Arrayelemente müssen auf null
gesetzt
werden.
Zur Zeit wird auch nur ein einziger Kommunikationspfad unterstützt (prinzipiell
könnten mehrere dieser String[]
s angegeben werden, um auf mehreren
IP-Adressen auf Verbindungen zu warten, das wird aber noch nicht unterstützt).
Eine Server-Implementation wird diese Methode also in etwa wiefolgt realisieren:
public String[][] getCommData(String hbciVersion) { return new String[][] {{"2","192.168.1.1",null,null,null}}; }
Der HBCI4Java-Server-Code fragt für jede zu unterstützende HBCI-Version separat
die Kommunikationsdaten ab. Im Parameter hbciVersion
wird angegeben,
für welche HBCI-Version er die Daten gerade benötigt. Da diese Informationen i.d.R.
für jede HBCI-Version identisch sind, wird dieser Parameter bei der Erstellung der
Rückgabedaten meist ignoriert.
hbciVersion
- HBCI-Version, für die diese Daten gelten sollen
public String[] getSuppLangs(String hbciVersion)
String[]
zurückgegeben werden, wobei jedes Arrayelement eine Sprache kennzeichnet.
Gültige Sprachcodes sind "DE
", "EN
" und "FR
".
hbciVersion
- HBCI-Version, für die diese Informationen gelten sollen
public String getDefaultLang(String hbciVersion)
getSuppLangs(String)
sein.
hbciVersion
- HBCI-Version, für die diese Standardsprache gelten soll
public String[] getSuppHBCIVersions()
201
", "210
" und
"220
".
public String[][] getSuppSecMethods(String hbciVersion)
String[]
, bei welchem das erste Element den Typ und das
zweite die Version des jeweiligen Mechanismus' angibt. Als Typen sind
prinzipiell "RDH
" und "DDV
" möglich, als Versions
bis jetzt immer "1
". Zur Zeit wird aber nur der Mechanismus
RDH
auch tatsächlich vom HBCI4Java-Server-Code implementiert.
hbciVersion
- HBCI-Version, für die diese Informationen gelten sollen
public String[][] getSuppCompMethods(String hbciVersion)
null
oder ein leeres Array (new String[0][]
) zurückzugeben.
hbciVersion
- HBCI-Version, für die diese Informationen gelten sollen
public int getNumOfGVsPerMsg(String hbciVersion)
hbciVersion
- HBCI-Version, für die diese Informationen gelten soll
public int getMaxMsgSize(String hbciVersion)
hbciVersion
- HBCI-Version, für die diese Informationen gelten soll
public boolean isAnonAllowed()
public int getBPDVersion(String hbciVersion)
DataStore
) zurückgegeben werden.
Später wird u.U. eine automatische Versionsnummernverwaltung im
HBCI4Java-Server-Code implementiert werden, die bei Datenveränderungen
automatisch die Versionsnummer aktualisiert.
hbciVersion
- HBCI-Version, deren BPD-Version hier gemeint ist
public String[] getSupportedGVs(String hbciversion)
org.kapott.hbci.tools.ShowLowlevelGVs
, die Zeilen, die mit
"jobname:" beginnen, enthalten die jeweils möglichen GV-Bezeichner
für die einzelnen Geschäftsvorfälle.
hbciversion
- HBCI-Version, für die die Liste der unterstützten GVs
zurückgegeben werden soll
public int[] getGVVersions(String gvname, String hbciversion)
org.kapott.hbci.tools.ShowLowlevelGVs
(siehe auch getSupportedGVs(String)
) ermittelt werden.
gvname
- Name des Geschäftsvorfalles, für den die unterstützten Versionen
zurückgemeldet werden sollenhbciversion
- HBCI-Version, für die diese Daten gelten sollen
public int getGVMaxNum(String gvname, int gvversion)
gvname
- Name des Geschäftsvorfalles, für den die Maximalanzahl an Segmenten
pro Nachricht zurückgegeben werden sollgvversion
- Versionsnummer des entsprechenden Geschäftsvorfalles
public int getGVMinSigs(String gvname, int gvversion)
1
" zurückgegeben. Sollen Mehrfachsignaturen für einen
GV nötig sein, so kann hier natürlich auch ein höherer Wert zurückgegeben werden.
Dieser Parameter wird vom HBCI4Java-Server-Code bei eingehenden Nachrichten noch
nicht überprüft, Mehrfachsignaturen werden von HBCI4Java auch noch
gar nicht unterstützt.
gvname
- Name des Geschäftsvorfalles, für die Mindestanzahl Signaturen
ermittelt werden sollgvversion
- Versionsnummer des entsprechenden Geschäftsvorfalles
public java.util.Properties getGVParams(String gvname, int gvversion)
Property
-Objekt zurückgegeben werden, welches als key
den Namen eines GV-Parameters und als Wert den entsprechenden Wert
enthält. Es gibt leider noch kein externes Tool, mit welchem sich die
benötigten Parameter je Geschäftsvorfall anzeigen lassen (***). In einem
HBCI4Java-Client-Programm kann das aber mit der Methode
org.kapott.hbci.GV.HBCIJob#getJobRestrictions()
ermittelt werden.
Außerdem hilft ein Blick in die HBCI4Java-interne Spezifikation
der HBCI-Nachrichten, die Segmente "gvnamePar*
" bzw.
die DEG "Pargvname*
" helfen hier weiter.
gvname
- Name des Geschäftsvorfalles, für den die Parameter ermittelt werden
sollengvversion
- Versionsnummer des GV, für den die Parameter benötigt werden
Property
-Objekt mit Parameterdatenpublic org.kapott.hbci.manager.HBCIKey[] getSigKeys()
null
zurückgegeben werden. In diesem Fall erzeugt der HBCI4Java-Server-Code
selbstständig neue Signierschlüssel und übergibt sie der Methode
setSigKeys(HBCIKey[])
, damit die Server-Anwendung diese Schlüssel
speichern und bei der nächsten Schlüssel-Initialisierung zurückgeben kann.
public org.kapott.hbci.manager.HBCIKey[] getCryptKeys()
null
zurückgegeben werden. In diesem Fall erzeugt der HBCI4Java-Server-Code
selbstständig neue Chiffrierschlüssel und übergibt sie der Methode
setCryptKeys(HBCIKey[])
, damit die Server-Anwendung diese Schlüssel
speichern und bei der nächsten Schlüssel-Initialisierung zurückgeben kann.
public void setSigKeys(org.kapott.hbci.manager.HBCIKey[] keys)
keys
- Array mit neuem öffentlichem und privatem Signierschlüssel der Bankpublic void setCryptKeys(org.kapott.hbci.manager.HBCIKey[] keys)
keys
- Array mit neuem öffentlichem und privatem Chiffrierschlüssel der Bankpublic Long getSigId()
HBCIServer.reInitializeServerData()
), danach
wird die Signatur-ID intern verwaltet.
public void setSigId(Long sigid)
sigid
- die geänderte Signatur-IDpublic String[] getUserIds()
public String[] getCustomerIds(String userid)
userid
- Nutzerkennung, für die die Kunden-IDs benötigt werden
public org.kapott.hbci.manager.HBCIKey[] getUserKeys(String userid)
null
zurückgegeben
werden. Das erste Element dieses Arrays muss den öffentlichen Signier-,
das zweite den öffentlichen Chiffrierschlüssel für diese Nutzerkennung
enthalten.
userid
- Benutzerkennung, für die die öffentlichen Schlüssel benötigt werden
null
, wenn noch keine Schlüssel eingereicht wurdenpublic void storeUserSigKey(String userid, org.kapott.hbci.manager.HBCIKey key)
userid
- Nutzerkennung, zu der der neue Signierschlüssel gehörtkey
- neuer öffentlicher Signierschlüssel des Nutzerspublic void storeUserEncKey(String userid, org.kapott.hbci.manager.HBCIKey key)
userid
- Nutzerkennung, zu der der neue Chiffrierschlüssel gehörtkey
- neuer öffentlicher Chiffrierschlüssel des Nutzerspublic String getSysId(String userid)
null
oder "0
" zurückgegeben werden.
userid
- Nutzerkennung, für die die System-ID benötigt wird
public void setSysId(String userid, String sysid)
userid
- Nutzerkennung, für die die neue System-ID gespeichert werden sollsysid
- neue System-ID für diesen Nutzerpublic long[] getSigIds(String userid)
userid
- Nutzerkennung, für die die Liste der Sig-IDs ermittelt werden soll
long
-Werten, wobei jedes Element eine schon
eingereichte Signatur-ID darstelltpublic void clearSigIds(String userid)
userid
- Nutzerkennung, für die die Liste der Sig-IDs gelöscht werden sollpublic void addSigId(String userid, long sigid)
userid
- Nutzerkennung, deren Sig-ID-Liste aktualisiert werden sollsigid
- Signatur-ID, die zur Liste hinzugefügt werden sollpublic org.kapott.hbci.structures.Konto[] getAccounts(String userid)
Konto
-Objekte
müssen mindestens die Felder country
, blz
, number
,
curr
, name
, type
und customerid
belegt sein. customerid
gibt dabei eine der Kunden-IDs aus
getCustomerIds(String)
an, für die Berechtigung zum Zugriff auf dieses
Konto besteht
userid
- Benutzerkennung, für die die verfügbaren Kontoverbindungen zurückgemeldet
werden sollen
public int getAccountInfoVersion(String userid)
getAccounts(String)
) ändern,
muss hier eine höhere Versionsnummer zurückgemeldet werden als zu dem Zeitpunkt,
zu dem noch die alten Kontodaten galten.
userid
- Benutzerkennung, für die Version der Kontoinformationen benötigt wird
getAccounts(String)
zurückgegeben werdenpublic int getLogLevel()
ServerCallback.log(String,int,Date,StackTraceElement)
zur
HBCI-Anwendung gesandt. Gültige Werte für das Log-Level sind in der Dokumentation
zu HBCIUtils
aufgeführt.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |