Class AbstractHBCIPassport
- java.lang.Object
-
- org.kapott.hbci.passport.AbstractHBCIPassport
-
- All Implemented Interfaces:
java.io.Serializable
,HBCIPassport
,HBCIPassportInternal
- Direct Known Subclasses:
AbstractDDVPassport
,AbstractPinTanPassport
,AbstractRDHPassport
,HBCIPassportAnonymous
,HBCIPassportRAH10
public abstract class AbstractHBCIPassport extends java.lang.Object implements HBCIPassportInternal, java.io.Serializable
Diese Klasse stellt die Basisklasse für alle "echten" Passport-Implementationen dar. Hier werden bereits einige Methoden implementiert sowie einige zusätzliche Hilfsmethoden zur Verfügung gestellt.
Aus einer HBCI-Anwendung heraus ist hier nur eine einzige Methode interessant, um eine Instanz eines bestimmtes Passports zu erzeugen
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface org.kapott.hbci.passport.HBCIPassport
ROLE_CON, ROLE_ISS, ROLE_WIT
-
-
Constructor Summary
Constructors Constructor Description AbstractHBCIPassport(java.lang.Object init)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected boolean
askForMissingData(boolean needCountry, boolean needBLZ, boolean needHost, boolean needPort, boolean needFilter, boolean needUserId, boolean needCustomerId)
boolean
canMixSecMethods()
void
changePassphrase()
Ändern des Passwortes für die Schlüsseldatei.static byte[]
checkForCryptDataSize(byte[] buffer, int size)
void
clearBPD()
Löschen der lokal gespeicherten BPD.void
clearInstEncKey()
void
clearInstSigKey()
void
clearMyDigKey()
void
clearMyEncKey()
void
clearMySigKey()
void
clearUPD()
Löschen der lokal gespeicherten UPD.void
close()
Schließen eines Passport-Objektes.void
closeComm()
void
fillAccountInfo(Konto account)
Ausfüllen fehlender Kontoinformationen.HBCIKey[][]
generateNewUserKeys()
Konto
getAccount(java.lang.String number)
Gibt ein Konto-Objekt zu einer bestimmten Kontonummer zurück.Konto[]
getAccounts()
Gibt ein Array mit Kontoinformationen zurück.java.lang.String
getBLZ()
Gibt die Bankleitzahl des Kreditinstitutes zurück.java.util.Properties
getBPD()
Gibt die gespeicherten BPD zurück.java.lang.String
getBPDVersion()
Gibt die Versionsnummer der lokal gespeicherten BPD zurück.java.lang.String
getCID()
java.lang.Object
getClientData(java.lang.String id)
Holen von clientseitig gespeicherten zusätzlichen Daten.Comm
getComm()
Filter
getCommFilter()
abstract Comm
getCommInstance()
java.lang.String
getCountry()
Gibt den Ländercode der Bank zurück.java.lang.String
getCustomerId()
Gibt die Kunden-ID zurück, die von HBCI4Java für die Initialisierung eines Dialoges benutzt wird.java.lang.String
getCustomerId(int idx)
java.lang.String
getDefaultLang()
Gibt die Standardsprache des HBCI-Servers zurück.java.lang.String
getFilterType()
Gibt zurück, welcher Datenfilter für die Kommunikation mit dem HBCI-Server verwendet wird.java.lang.String
getHBCIVersion()
Gibt die HBCI-Version zurück, die zuletzt verwendet wurde.java.lang.String
getHost()
Gibt den Hostnamen des HBCI-Servers für dieses Passport zurück.static HBCIPassport
getInstance()
EntsprichtgetInstance((Object)null)
static HBCIPassport
getInstance(java.lang.Object init)
Erzeugt eine Instanz eines HBCI-Passports.static HBCIPassport
getInstance(java.lang.String name)
EntsprichtgetInstance(name,null)
static HBCIPassport
getInstance(java.lang.String name, java.lang.Object init)
Erzeugt eine Instanz eines HBCIPassports und gibt diese zurück.java.lang.String
getInstName()
Gibt den Namen des Kreditinstitutes zurück.java.util.Properties
getJobRestrictions(java.lang.String specname)
java.util.Properties
getJobRestrictions(java.lang.String gvname, java.lang.String version)
java.lang.String
getLang()
int
getMaxGVperMsg()
int
getMaxGVSegsPerMsg()
int
getMaxMsgSizeKB()
protected java.lang.String
getParamHeader()
java.util.Properties
getParamSegmentNames()
IHandlerData
getParentHandlerData()
java.lang.Object
getPersistentData(java.lang.String id)
java.lang.Integer
getPort()
Gibt die TCP-Portnummer auf dem HBCI-Server zurück, zu der eine HBCI-Verbindung aufgebaut werden soll.java.lang.Long
getSigId()
java.lang.String
getStoredCustomerId()
java.lang.String[][]
getSuppCompMethods()
java.lang.String[]
getSuppLangs()
Gibt eine Liste aller unterstützten Sprachcodes zurück.java.lang.String[][]
getSuppSecMethods()
Gibt eine Liste der vom HBCI-Server unterstützten Sicherheitsmechanismen zurück.java.lang.String[]
getSuppVersions()
Gibt eine Liste aller unterstützten HBCI-Versionen zurück.java.lang.String
getSysId()
java.util.Properties
getUPD()
Gibt die gespeicherten UPD (User-Parameter-Daten) zurück.java.lang.String
getUPDVersion()
Gibt die Versionsnummer der lokal gespeicherten UPD zurück.java.lang.String
getUserId()
Gibt die Benutzerkennung zurück, die zur Authentifikation am HBCI-Server benutzt wird.void
incSigId()
boolean
isAnonymous()
void
onDialogEvent(DialogEvent event, DialogContext ctx)
Wird bei einem Dialog-Event ausgefuehrt.boolean
onlyBPDGVs()
void
setBLZ(java.lang.String blz)
void
setBPD(java.util.Properties bpd)
void
setCID(java.lang.String cid)
void
setClientData(java.lang.String id, java.lang.Object o)
Speichern zusätzlicher Daten im Passport-Objekt.void
setCountry(java.lang.String country)
void
setCustomerId(java.lang.String customerid)
Setzen der zu verwendenden Kunden-ID.void
setFilterType(java.lang.String filter)
void
setHBCIVersion(java.lang.String hbciversion)
void
setHost(java.lang.String host)
Manuelles Setzen der Adresse des HBCI-Servers.protected void
setParamHeader(java.lang.String paramHeader)
void
setParentHandlerData(IHandlerData handler)
void
setPersistentData(java.lang.String id, java.lang.Object o)
void
setPort(java.lang.Integer port)
Setzen des TCP-Ports, der für HBCI-Verbindungen benutzt wird.void
setProfileMethod(java.lang.String method)
void
setProfileVersion(java.lang.String version)
void
setSigId(java.lang.Long sigid)
void
setSysId(java.lang.String sysid)
void
setUPD(java.util.Properties upd)
void
setUserId(java.lang.String userid)
void
syncSigId()
Synchronisation der Signatur-ID erzwingen (nur für RDH-Passports sinnvoll).void
syncSysId()
Synchronisation der System-ID (nur für RDH-Passports sinnvoll).-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.kapott.hbci.passport.HBCIPassport
getInstEncKey, getInstSigKey, getMyPrivateDigKey, getMyPrivateEncKey, getMyPrivateSigKey, getMyPublicDigKey, getMyPublicEncKey, getMyPublicSigKey, hasInstEncKey, hasInstSigKey, hasMyEncKey, hasMySigKey, isSupported, needInstKeys, needUserKeys, saveChanges
-
Methods inherited from interface org.kapott.hbci.passport.HBCIPassportInternal
decrypt, encrypt, getCryptAlg, getCryptFunction, getCryptKeyType, getCryptMode, getHashAlg, getInstEncKeyName, getInstEncKeyNum, getInstEncKeyVersion, getInstSigKeyName, getInstSigKeyNum, getInstSigKeyVersion, getMyEncKeyName, getMyEncKeyNum, getMyEncKeyVersion, getMySigKeyName, getMySigKeyNum, getMySigKeyVersion, getPassportTypeName, getProfileMethod, getProfileVersion, getSigAlg, getSigFunction, getSigMode, getSysStatus, hash, needUserSig, resetPassphrase, setInstEncKey, setInstSigKey, setMyPrivateDigKey, setMyPrivateEncKey, setMyPrivateSigKey, setMyPublicDigKey, setMyPublicEncKey, setMyPublicSigKey, sign, verify
-
-
-
-
Method Detail
-
askForMissingData
protected boolean askForMissingData(boolean needCountry, boolean needBLZ, boolean needHost, boolean needPort, boolean needFilter, boolean needUserId, boolean needCustomerId)
-
getComm
public final Comm getComm()
- Specified by:
getComm
in interfaceHBCIPassportInternal
-
getCommInstance
public abstract Comm getCommInstance()
-
getCommFilter
public final Filter getCommFilter()
- Specified by:
getCommFilter
in interfaceHBCIPassportInternal
-
closeComm
public final void closeComm()
- Specified by:
closeComm
in interfaceHBCIPassportInternal
-
getBPD
public final java.util.Properties getBPD()
Description copied from interface:HBCIPassport
Gibt die gespeicherten BPD zurück. Die Auswertung der BPD seitens einer HBCI-Anwendung auf direktem Weg wird nicht empfohlen, da es keine Dokumentation über die Namensgebung der einzelnen Einträge gibt.- Specified by:
getBPD
in interfaceHBCIPassport
- Returns:
- die Bankparamterdaten oder
null
, falls diese nicht im Passport vorhanden sind
-
setHBCIVersion
public final void setHBCIVersion(java.lang.String hbciversion)
- Specified by:
setHBCIVersion
in interfaceHBCIPassportInternal
-
getHBCIVersion
public final java.lang.String getHBCIVersion()
Description copied from interface:HBCIPassport
Gibt die HBCI-Version zurück, die zuletzt verwendet wurde. Der hier zurückgegebene Wert ist der selbe, der bei der Initialisierung desHBCIHandler
verwendet werden kann. Um also einen HBCIHandler zu erzeugen, der mit der HBCI-Version arbeitet, mit der ein Passport-Objekt zuletzt benutzt wurde, so kann das mitnew HBCIHandler(passport.getHBCIVersion(),passport)
erfolgen (vorausgesetzt,passport.getHBCIVersion()
gibt einen nicht-leeren String zurück.- Specified by:
getHBCIVersion
in interfaceHBCIPassport
- Returns:
- Die zuletzt verwendete HBCI-Version. Ist diese Information nicht verfügbar, so wird ein leerer String zurückgegeben.
-
getUPD
public final java.util.Properties getUPD()
Description copied from interface:HBCIPassport
Gibt die gespeicherten UPD (User-Parameter-Daten) zurück. Eine direkte Auswertung des Inhalts dieses Property-Objektes wird nicht empfohlen, da die Benennung der einzelnen Einträge nicht explizit dokumentiert ist.- Specified by:
getUPD
in interfaceHBCIPassport
- Returns:
- die Userparameterdaten oder
null
, falls diese nicht im Passport vorhanden sind
-
getBLZ
public final java.lang.String getBLZ()
Description copied from interface:HBCIPassport
Gibt die Bankleitzahl des Kreditinstitutes zurück. Bei Verwendung dieser Methode ist Vorsicht geboten, denn hier ist die Bankleitzahl der Bank gemeint, die den HBCI-Server betreibt. I.d.R. deckt sich diese BLZ zwar mit der BLZ der Konten des Bankkunden, es gibt aber auch Fälle, wo die BLZ, die mit dieser Methode ermittelt wird, anders ist als die BLZ bei den Kontoverbindungen des Kunden.
Für die Ermittlung der BLZ für die Kontodaten sollte statt dessen die Methode
HBCIPassport.getAccounts()
benutzt werden.- Specified by:
getBLZ
in interfaceHBCIPassport
- Returns:
- die BLZ der Bank
-
getCountry
public final java.lang.String getCountry()
Description copied from interface:HBCIPassport
Gibt den Ländercode der Bank zurück. Für deutsche Banken ist das der String "DE
".- Specified by:
getCountry
in interfaceHBCIPassport
- Returns:
- Ländercode der Bank
-
getAccounts
public final Konto[] getAccounts()
Description copied from interface:HBCIPassport
Gibt ein Array mit Kontoinformationen zurück. Auf die hier zurückgegebenen Konten kann via HBCI zugegriffen werden. Nicht jede Bank unterstützt diese Abfrage, so dass dieses Array u.U. auch leer sein kann, obwohl natürlich via HBCI auf bestimmte Konten zugegriffen werden kann. In diesem Fall müssen die Kontoinformationen anderweitig ermittelt werden (manuelle Eingabe des Anwenders).- Specified by:
getAccounts
in interfaceHBCIPassport
- Returns:
- Array mit Kontoinformationen über verfügbare HBCI-Konten
-
fillAccountInfo
public final void fillAccountInfo(Konto account)
Description copied from interface:HBCIPassport
Ausfüllen fehlender Kontoinformationen. In der Liste der verfügbaren Konten (sieheHBCIPassport.getAccounts()
) wird nach einem Konto gesucht, welches die gleiche Kontonummer hat wie das übergebene Kontoaccount
. Wird ein solches Konto gefunden, so werden die Daten dieses gefundenen Kontos in dasaccount
-Objekt übertragen. Diese Methode kann benutzt werden, wenn zu einem Konto nicht alle Daten bekannt sind, wenigstens aber die Kontonummer.- Specified by:
fillAccountInfo
in interfaceHBCIPassport
- Parameters:
account
- unvollständige Konto-Informationen, bei denen die fehlenden Daten nachgetragen werden- See Also:
HBCIPassport.fillAccountInfo(org.kapott.hbci.structures.Konto)
-
getAccount
public final Konto getAccount(java.lang.String number)
Description copied from interface:HBCIPassport
Gibt ein Konto-Objekt zu einer bestimmten Kontonummer zurück. Dazu wird die Liste, die viaHBCIPassport.getAccounts()
erzeugt wird, nach der Kontonummer durchsucht. Es wird in jedem Fall ein nicht-leeres Kontoobjekt zurückgegeben. Wird die Kontonummer jedoch nicht in der Liste gefunden, so wird das Konto-Objekt aus den "allgemeinen" Bank-Daten gebildet: Kontonummer=number
; Länderkennung, BLZ und Kunden-ID aus dem Passport-Objekt; Währung des Kontos hart auf "EUR"; Name=Kunden-ID.- Specified by:
getAccount
in interfaceHBCIPassport
- Parameters:
number
- die Kontonummer, für die ein Konto-Objekt erzeugt werden soll- Returns:
- ein Konto-Objekt, welches mindestens die Kontonummer enthält. Wenn verfügbar, so sind auch die restlichen Informationen über dieses Konto (BLZ, Inhaber, Währung usw.) ausgefüllt
-
getHost
public java.lang.String getHost()
Description copied from interface:HBCIPassport
Gibt den Hostnamen des HBCI-Servers für dieses Passport zurück. Handelt es sich bei dem Passport-Objekt um ein PIN/TAN-Passport, so enthält dieser String die URL, die für die HTTPS-Kommunikation mit dem HBCI-Server der Bank benutzt wird.- Specified by:
getHost
in interfaceHBCIPassport
- Returns:
- Hostname oder IP-Adresse des HBCI-Servers
-
getPort
public final java.lang.Integer getPort()
Description copied from interface:HBCIPassport
Gibt die TCP-Portnummer auf dem HBCI-Server zurück, zu der eine HBCI-Verbindung aufgebaut werden soll. In der Regel ist das der Port 3000, für PIN/TAN-Passports wird hier 443 (für HTTPS-Port) zurückgegeben. Der zu benutzende TCP-Port für die Kommunikation kannn mitHBCIPassport.setPort(Integer)
geändert werden.- Specified by:
getPort
in interfaceHBCIPassport
- Returns:
- TCP-Portnummer auf dem HBCI-Server
-
getFilterType
public final java.lang.String getFilterType()
Description copied from interface:HBCIPassport
Gibt zurück, welcher Datenfilter für die Kommunikation mit dem HBCI-Server verwendet wird. Gültige Bezeichner für Filter sind "None
" und "Base64
".- Specified by:
getFilterType
in interfaceHBCIPassport
-
getUserId
public java.lang.String getUserId()
Description copied from interface:HBCIPassport
Gibt die Benutzerkennung zurück, die zur Authentifikation am HBCI-Server benutzt wird.- Specified by:
getUserId
in interfaceHBCIPassport
- Returns:
- Benutzerkennung für Authentifikation
-
getCustomerId
public final java.lang.String getCustomerId(int idx)
- Specified by:
getCustomerId
in interfaceHBCIPassport
-
getCustomerId
public java.lang.String getCustomerId()
Description copied from interface:HBCIPassport
Gibt die Kunden-ID zurück, die von HBCI4Java für die Initialisierung eines Dialoges benutzt wird. Zu einer Benutzerkennung (
HBCIPassport.getUserId()
), welche jeweils an ein bestimmtes Medium gebunden ist, kann es mehrere Kunden-IDs geben. Die verschiedenen Kunden-IDs entsprechen verschiedenen Rollen, in denen der Benutzer auftreten kann.In den meisten Fällen gibt es zu einer Benutzerkennung nur eine einzige Kunden-ID. Wird von der Bank keine Kunden-ID explizit vergeben, so ist die Kunden-ID identisch mit der Benutzerkennung.
Siehe dazu auch
HBCIJob.addToQueue(String)
.- Specified by:
getCustomerId
in interfaceHBCIPassport
- Returns:
- Kunden-ID für die HBCI-Kommunikation
-
getStoredCustomerId
public java.lang.String getStoredCustomerId()
-
getSysId
public java.lang.String getSysId()
- Specified by:
getSysId
in interfaceHBCIPassportInternal
-
getCID
public final java.lang.String getCID()
- Specified by:
getCID
in interfaceHBCIPassportInternal
-
clearInstSigKey
public final void clearInstSigKey()
- Specified by:
clearInstSigKey
in interfaceHBCIPassport
-
clearInstEncKey
public final void clearInstEncKey()
- Specified by:
clearInstEncKey
in interfaceHBCIPassport
-
clearMySigKey
public final void clearMySigKey()
- Specified by:
clearMySigKey
in interfaceHBCIPassportInternal
-
clearMyEncKey
public final void clearMyEncKey()
- Specified by:
clearMyEncKey
in interfaceHBCIPassportInternal
-
clearMyDigKey
public final void clearMyDigKey()
- Specified by:
clearMyDigKey
in interfaceHBCIPassportInternal
-
getBPDVersion
public final java.lang.String getBPDVersion()
Description copied from interface:HBCIPassport
Gibt die Versionsnummer der lokal gespeicherten BPD zurück. Sind keine BPD vorhanden, so wird "0" zurückgegeben. Leider benutzen einige Banken "0" auch als Versionsnummer für die tatsächlich vorhandenen BPD, so dass bei diesen Banken auch dann "0" zurückgegeben wird, wenn in Wirklichkeit BPD vorhanden sind.- Specified by:
getBPDVersion
in interfaceHBCIPassport
- Returns:
- Versionsnummer der lokalen BPD
-
getUPDVersion
public final java.lang.String getUPDVersion()
Description copied from interface:HBCIPassport
Gibt die Versionsnummer der lokal gespeicherten UPD zurück. Sind keine UPD lokal vorhanden, so wird "0" zurückgegeben. Siehe dazu auchHBCIPassport.getBPDVersion()
.- Specified by:
getUPDVersion
in interfaceHBCIPassport
- Returns:
- Versionsnummer der lokalen UPD
-
getInstName
public final java.lang.String getInstName()
Description copied from interface:HBCIPassport
Gibt den Namen des Kreditinstitutes zurück. Diese Information wird aus den BPD ermittelt. Sind keine BPD vorhanden bzw. steht da kein Name drin, so wirdnull
zurückgegeben.- Specified by:
getInstName
in interfaceHBCIPassport
- Returns:
- Name des Kreditinstitutes
-
getMaxGVperMsg
public int getMaxGVperMsg()
- Specified by:
getMaxGVperMsg
in interfaceHBCIPassport
-
getMaxMsgSizeKB
public final int getMaxMsgSizeKB()
- Specified by:
getMaxMsgSizeKB
in interfaceHBCIPassport
-
getSuppLangs
public final java.lang.String[] getSuppLangs()
Description copied from interface:HBCIPassport
Gibt eine Liste aller unterstützten Sprachcodes zurück. Die einzelnen Codes stehen dabei für folgende Sprachen:- 1 - deutsch
- 2 - englisch
- 3 - französisch
- Specified by:
getSuppLangs
in interfaceHBCIPassport
- Returns:
- Liste aller unterstützten Sprachen (1,2,3)
-
getSuppVersions
public final java.lang.String[] getSuppVersions()
Description copied from interface:HBCIPassport
Gibt eine Liste aller unterstützten HBCI-Versionen zurück. Die einzelnen Strings für die Versionen sind die gleichen, wie sie in der Methode
HBCIHandler(String,org.kapott.hbci.passport.HBCIPassport)
verwendet werden können.Zusätzlich zu den hier zurückgegebenen HBCI-Versions-Codes gibt es einige spezielle Codes. Siehe dazu die Dokumentation zu
HBCIHandler(String,org.kapott.hbci.passport.HBCIPassport)
- Specified by:
getSuppVersions
in interfaceHBCIPassport
- Returns:
- eine Liste aller von der Bank unterstützten HBCI-Versionen
-
getDefaultLang
public final java.lang.String getDefaultLang()
Description copied from interface:HBCIPassport
Gibt die Standardsprache des HBCI-Servers zurück. Zu den Bedeutungen der Sprachcodes sieheHBCIPassport.getSuppLangs()
.- Specified by:
getDefaultLang
in interfaceHBCIPassport
- Returns:
- Standardsprache (1,2 oder 3)
-
canMixSecMethods
public final boolean canMixSecMethods()
- Specified by:
canMixSecMethods
in interfaceHBCIPassportInternal
-
getSuppSecMethods
public final java.lang.String[][] getSuppSecMethods()
Description copied from interface:HBCIPassport
Gibt eine Liste der vom HBCI-Server unterstützten Sicherheitsmechanismen zurück. Gültige Werte für jeden einzelnen String sind
RDH
bzw.DDV
.Die Unterstützung des PIN/TAN-Verfahrens kann mit dieser Methode nicht ermittelt werden.
- Specified by:
getSuppSecMethods
in interfaceHBCIPassport
- Returns:
- eine Liste der unterstützten Sicherheitsmechanismen. Jeder Listeneintrag ist wieder ein Stringarray mit zwei Elementen: dem Namen des Mechanismus und der Versionsnummer dieses Mechanismus
-
getSuppCompMethods
public final java.lang.String[][] getSuppCompMethods()
- Specified by:
getSuppCompMethods
in interfaceHBCIPassport
-
getLang
public final java.lang.String getLang()
- Specified by:
getLang
in interfaceHBCIPassportInternal
-
getSigId
public final java.lang.Long getSigId()
- Specified by:
getSigId
in interfaceHBCIPassportInternal
-
clearBPD
public final void clearBPD()
Description copied from interface:HBCIPassport
Löschen der lokal gespeicherten BPD. Damit kann erzwungen werden, dass die BPD beim nächsten HBCI-Dialog erneut abgeholt werden.- Specified by:
clearBPD
in interfaceHBCIPassport
-
setBPD
public void setBPD(java.util.Properties bpd)
- Specified by:
setBPD
in interfaceHBCIPassportInternal
-
clearUPD
public final void clearUPD()
Description copied from interface:HBCIPassport
Löschen der lokal gespeicherten UPD. Damit kann erzwungen werden, dass die UPD beim nächsten HBCI-Dialog erneut abgeholt werden.- Specified by:
clearUPD
in interfaceHBCIPassport
-
setUPD
public final void setUPD(java.util.Properties upd)
- Specified by:
setUPD
in interfaceHBCIPassportInternal
-
setCountry
public final void setCountry(java.lang.String country)
- Specified by:
setCountry
in interfaceHBCIPassport
-
setBLZ
public final void setBLZ(java.lang.String blz)
- Specified by:
setBLZ
in interfaceHBCIPassport
-
setHost
public final void setHost(java.lang.String host)
Description copied from interface:HBCIPassport
Manuelles Setzen der Adresse des HBCI-Servers. Das kann evtl. nötig sein, wenn sich die Zugangsdaten des Server geändert haben. Die Änderungen werden permanent gespeichert, nachdem die neuen Werte wenigstens einmal in einem HBCI-Dialog benutzt wurden oder mit
HBCIPassport.saveChanges()
explizit gespeichert werden. Diese permanente Speicherung wird allerdings nur bei RDH- oder PIN/TAN-Passports durchgeführt. Um die Daten bei DDV-Passports permanent auf der Chipkarte zu speichern, ist der HBCI-PassportEditor nötig(es wäre kein Problem, diese Daten sofort auf der Chipkarte zu speichern, allerdings besteht dann die Gefahr, dass man "aus Versehen" falsche Daten auf der Chipkarte ablegt und die richtigen Daten nicht wieder restaurieren kann, da es bei DDV-Zugängen i.d.R. keine Begleitbriefe von der Bank gibt, in denen die korrekten Zugangsdaten aufgelistet sind).
Für das HBCI-PIN/TAN-Verfahren wird als
host
die URL angegeben, welche für die Behandlung der HBCI-PIN/TAN-Nachrichten zu benutzen ist (z.B.www.meinebank.de/pintan/PinTanServlet
). Soll ein anderer Port als der normale HTTPS-Port 443 benutzt werden, so darf die neue Portnummer nicht in der URL kodiert werden. Statt dessen muss die MethodeHBCIPassport.setPort(Integer)
benutzt werden, um die Portnummer zu setzen.- Specified by:
setHost
in interfaceHBCIPassport
- Parameters:
host
- die neue Adresse, unter der der HBCI-Server zu erreichen ist
-
setPort
public final void setPort(java.lang.Integer port)
Description copied from interface:HBCIPassport
Setzen des TCP-Ports, der für HBCI-Verbindungen benutzt wird. Bei HBCI-PIN/TAN- Passports wird der Port mit443
vorinitialisiert, für alle anderen "normalen" HBCI-Verbindungstypen mit3000
. Diese Methode kann benutzt werden, wenn eine andere Portnummer als die default-Nummer benutzt werden soll. Die Portnummer für ein Passport kann auch mit dem HBCI4Java Passport Editor geändert werden.- Specified by:
setPort
in interfaceHBCIPassport
- Parameters:
port
- neue TCP-Portnummer, die für ausgehende Verbindungen benutzt werden soll
-
setFilterType
public final void setFilterType(java.lang.String filter)
- Specified by:
setFilterType
in interfaceHBCIPassport
-
setUserId
public final void setUserId(java.lang.String userid)
- Specified by:
setUserId
in interfaceHBCIPassport
-
setCustomerId
public final void setCustomerId(java.lang.String customerid)
Description copied from interface:HBCIPassport
Setzen der zu verwendenden Kunden-ID. Durch Aufruf dieser Methode wird die Kunden-ID gesetzt, die beim nächsten Ausführen eines HBCI-Dialoges (HBCIHandler.execute()
) benutzt wird. Diese neue Kunden-ID wird dann außerdem permanent im jeweiligen Sicherheitsmedium gespeichert (sofern das von dem Medium unterstützt wird).- Specified by:
setCustomerId
in interfaceHBCIPassport
- Parameters:
customerid
- die zu verwendende Kunden-ID; wird keine customerid angegeben (null
oder ""), so wird automatisch die User-ID verwendet.- See Also:
HBCIPassport.getCustomerId()
-
setSigId
public final void setSigId(java.lang.Long sigid)
- Specified by:
setSigId
in interfaceHBCIPassportInternal
-
setSysId
public final void setSysId(java.lang.String sysid)
- Specified by:
setSysId
in interfaceHBCIPassportInternal
-
setCID
public final void setCID(java.lang.String cid)
- Specified by:
setCID
in interfaceHBCIPassportInternal
-
incSigId
public void incSigId()
- Specified by:
incSigId
in interfaceHBCIPassportInternal
-
onlyBPDGVs
public final boolean onlyBPDGVs()
- Specified by:
onlyBPDGVs
in interfaceHBCIPassport
-
getInstance
public static HBCIPassport getInstance(java.lang.String name, java.lang.Object init)
Erzeugt eine Instanz eines HBCIPassports und gibt diese zurück. Der Typ der erzeugten Passport-Instanz wird durch den Parameter
name
bestimmt. Gültige Werte sind zur Zeit- DDV
- RDHNew
- RDH (nicht mehr benutzen!)
- PinTan
- SIZRDHFile
- RDHXFile
- Anonymous
Der zusätzliche Parameter
init
gibt ein Objekt an, welches bereits während der Instanziierung des Passport-Objektes in dessen internenclientData
-Datenstrukturen gespeichert wird (sieheHBCIPassport.setClientData(String,Object)
). Auf dieses Objekt kann dann mitgetClientData("init")
zugegriffen werden. Istinit==null
), wo wirdinit=name
gesetzt.Beim Erzeugen eines Passport-Objektes tritt i.d.R. der
Callback
NEED_PASSPHRASE
auf, um nach dem Passwort für das Einlesen der Schlüsseldatei zu fragen. Von der Callback-Methode eventuell zusätzlich benötigte Daten zu diesem Passport konnten bis zu dieser Stelle noch nicht viasetClientData(...)
gesetzt werden, weil das Passport-Objekt noch gar nicht existierte. Für diesen Zweck gibt es dasinit
-Objekt, welches bereits beim Erzeugen des Passport-Objektes (und vor dem Aufrufen eines Callbacks) zu den zusätzlichen Passport-Daten hinzugefügt wird (mit der id "init
").Eine beispielhafte (wenn auch nicht sehr praxisnahe) Anwendung dieses Features wird im Quelltext des Tools
AnalyzeReportOfTransactions
gezeigt. Zumindest das Prinzip sollte damit jedoch klar werden.- Parameters:
name
- Typ der zu erzeugenden Passport-Instanzinit
- Objekt, welches schon während der Passport-Erzeugung viasetClientData("init",init)
zu den Passport-Daten hinzugefügt wird.- Returns:
- Instanz eines HBCIPassports
-
getInstance
public static HBCIPassport getInstance(java.lang.Object init)
Erzeugt eine Instanz eines HBCI-Passports. Der Typ der erzeugten Passport-Instanz wird hierbei dem Wert des HBCI-Parametersclient.passport.default
entnommen. Gültige Werte für diesen HBCI-Parameter sind die gleichen wie beim Aufruf der MethodegetInstance(String)
.- Parameters:
init
- (siehegetInstance(String,Object)
)- Returns:
- Instanz eines HBCI-Passports
-
getInstance
public static HBCIPassport getInstance(java.lang.String name)
EntsprichtgetInstance(name,null)
-
getInstance
public static HBCIPassport getInstance()
EntsprichtgetInstance((Object)null)
-
close
public void close()
Description copied from interface:HBCIPassport
Schließen eines Passport-Objektes. Diese Methode wird normalerweise nicht manuell aufgerufen, da das bereits von
HBCIHandler.close()
erledigt wird. Wurde jedoch ein Passport-Objekt erzeugt, und das anschließende Erzeugen eines HBCIHandler-Objektes schlägt fehlt, dann ist das Passport immer noch geöffnet und sollte mit dieser Methode geschlossen werden, falls es nicht weiterbenutzt werden soll.Am Ende eines Programmes sollte also in jedem Fall entweder ein erfolgreiches
HBCIHandler.close()
oder wenigstens einHBCIPassport.close()
für jedes erzeugte Passport-Objekt stehen. Das ist vor allem für Passport-Varianten wichtig, die auf einer Chipkarte basieren, da mit dieser Methode die entsprechenden Ressourcen wieder freigegeben werden.- Specified by:
close
in interfaceHBCIPassport
-
getParamSegmentNames
public java.util.Properties getParamSegmentNames()
- Specified by:
getParamSegmentNames
in interfaceHBCIPassportInternal
-
getJobRestrictions
public java.util.Properties getJobRestrictions(java.lang.String specname)
- Specified by:
getJobRestrictions
in interfaceHBCIPassportInternal
-
getJobRestrictions
public java.util.Properties getJobRestrictions(java.lang.String gvname, java.lang.String version)
- Specified by:
getJobRestrictions
in interfaceHBCIPassportInternal
-
setPersistentData
public void setPersistentData(java.lang.String id, java.lang.Object o)
- Specified by:
setPersistentData
in interfaceHBCIPassportInternal
-
getPersistentData
public java.lang.Object getPersistentData(java.lang.String id)
- Specified by:
getPersistentData
in interfaceHBCIPassportInternal
-
syncSigId
public void syncSigId()
Description copied from interface:HBCIPassport
Synchronisation der Signatur-ID erzwingen (nur für RDH-Passports sinnvoll). Diese Methode kann aufgerufen werden, nachdem ein Passport erzeugt wurde, aber bevor damit ein neuesHBCIHandler
-Objekt erzeugt wird. Durch den Aufruf dieser Methode wird veranlasst, dass beim Erzeugen einesHBCIHandler
-Objektes mit diesem Passport die Signatur-ID des Passports synchronisiert wird.- Specified by:
syncSigId
in interfaceHBCIPassport
-
syncSysId
public void syncSysId()
Description copied from interface:HBCIPassport
Synchronisation der System-ID (nur für RDH-Passports sinnvoll). Diese Methode kann aufgerufen werden, nachdem ein Passport erzeugt wurde, aber bevor damit ein neuesHBCIHandler
-Objekt erzeugt wird. Durch den Aufruf dieser Methode wird veranlasst, dass beim Erzeugen einesHBCIHandler
-Objektes mit diesem Passport die System-ID des Passports synchronisiert wird.- Specified by:
syncSysId
in interfaceHBCIPassport
-
changePassphrase
public void changePassphrase()
Description copied from interface:HBCIPassport
Ändern des Passwortes für die Schlüsseldatei. Der Aufruf dieser Methode bewirkt, dass HBCI4Java via Callback-Mechanismus (NEED_PASSPHRASE_SAVE
) nach dem neuen Passwort für die Schlüsseldatei fragt. Anschließend wird das Medium unter Verwendung des neuen Passwortes automatisch neu gespeichert.- Specified by:
changePassphrase
in interfaceHBCIPassport
-
setClientData
public final void setClientData(java.lang.String id, java.lang.Object o)
Description copied from interface:HBCIPassport
Speichern zusätzlicher Daten im Passport-Objekt. Diese Methode ermöglicht das Speichern zusätzlicher Informationen (Objekte), die diesem Passport zugeordnet sind. Die Funktionsweise ist analog zur Verwendung einer Hashtable, es wird also ein Objekto
unter dem Identifikations-Stringid
gespeichert. MitHBCIPassport.getClientData(String)
kann das entsprechende Objekt wieder ausgelesen werden. Die mit dieser Methode gesetzten Daten werden nicht mit in der Schlüsseldatei (Passport-Datei) abgelegt, d.h. die Lebensdauer dieser Daten entspricht nur der Lebensdauer des Passport-Objektes.- Specified by:
setClientData
in interfaceHBCIPassport
- Parameters:
id
- Identifikationsstring für das zu speichernde Objekto
- zu speicherndes Objekt
-
getClientData
public final java.lang.Object getClientData(java.lang.String id)
Description copied from interface:HBCIPassport
Holen von clientseitig gespeicherten zusätzlichen Daten. Mit dieser Methode können die zusätzlichen Daten, die viaHBCIPassport.setClientData(String,Object)
im Passport gespeichert wurden, wieder ausgelesen werden. Auch das Objekt, das beim Erzeugen eines Passport-Objektes alsinit
-Parameter übergeben wurde (siehegetInstance(String,Object)
), kann damit ausgelesen werden (mitid="init"
).- Specified by:
getClientData
in interfaceHBCIPassport
- Parameters:
id
- Identifikationsstring des auszulesenden Objektes- Returns:
- Objekt, welches mit
HBCIPassport.setClientData(String,Object)
im Passport gespeichert wurde.
-
isAnonymous
public boolean isAnonymous()
- Specified by:
isAnonymous
in interfaceHBCIPassportInternal
-
setParamHeader
protected void setParamHeader(java.lang.String paramHeader)
-
getParamHeader
protected java.lang.String getParamHeader()
-
setParentHandlerData
public void setParentHandlerData(IHandlerData handler)
- Specified by:
setParentHandlerData
in interfaceHBCIPassportInternal
-
getParentHandlerData
public IHandlerData getParentHandlerData()
- Specified by:
getParentHandlerData
in interfaceHBCIPassportInternal
-
generateNewUserKeys
public HBCIKey[][] generateNewUserKeys()
- Specified by:
generateNewUserKeys
in interfaceHBCIPassportInternal
-
setProfileMethod
public void setProfileMethod(java.lang.String method)
- Specified by:
setProfileMethod
in interfaceHBCIPassportInternal
-
setProfileVersion
public void setProfileVersion(java.lang.String version)
- Specified by:
setProfileVersion
in interfaceHBCIPassportInternal
-
checkForCryptDataSize
public static byte[] checkForCryptDataSize(byte[] buffer, int size)
-
onDialogEvent
public void onDialogEvent(DialogEvent event, DialogContext ctx)
Description copied from interface:HBCIPassportInternal
Wird bei einem Dialog-Event ausgefuehrt.- Specified by:
onDialogEvent
in interfaceHBCIPassportInternal
- Parameters:
event
- das Event.ctx
- der Dialog-Kontext.- See Also:
HBCIPassportInternal.onDialogEvent(org.kapott.hbci.dialog.DialogEvent, org.kapott.hbci.dialog.DialogContext)
-
getMaxGVSegsPerMsg
public int getMaxGVSegsPerMsg()
- Specified by:
getMaxGVSegsPerMsg
in interfaceHBCIPassportInternal
- See Also:
HBCIPassportInternal.getMaxGVSegsPerMsg()
-
-