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 booleanaskForMissingData(boolean needCountry, boolean needBLZ, boolean needHost, boolean needPort, boolean needFilter, boolean needUserId, boolean needCustomerId)booleancanMixSecMethods()voidchangePassphrase()Ändern des Passwortes für die Schlüsseldatei.static byte[]checkForCryptDataSize(byte[] buffer, int size)voidclearBPD()Löschen der lokal gespeicherten BPD.voidclearInstEncKey()voidclearInstSigKey()voidclearMyDigKey()voidclearMyEncKey()voidclearMySigKey()voidclearUPD()Löschen der lokal gespeicherten UPD.voidclose()Schließen eines Passport-Objektes.voidcloseComm()voidfillAccountInfo(Konto account)Ausfüllen fehlender Kontoinformationen.HBCIKey[][]generateNewUserKeys()KontogetAccount(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.StringgetBLZ()Gibt die Bankleitzahl des Kreditinstitutes zurück.java.util.PropertiesgetBPD()Gibt die gespeicherten BPD zurück.java.lang.StringgetBPDVersion()Gibt die Versionsnummer der lokal gespeicherten BPD zurück.java.lang.StringgetCID()java.lang.ObjectgetClientData(java.lang.String id)Holen von clientseitig gespeicherten zusätzlichen Daten.CommgetComm()FiltergetCommFilter()abstract CommgetCommInstance()java.lang.StringgetCountry()Gibt den Ländercode der Bank zurück.java.lang.StringgetCustomerId()Gibt die Kunden-ID zurück, die von HBCI4Java für die Initialisierung eines Dialoges benutzt wird.java.lang.StringgetCustomerId(int idx)java.lang.StringgetDefaultLang()Gibt die Standardsprache des HBCI-Servers zurück.java.lang.StringgetFilterType()Gibt zurück, welcher Datenfilter für die Kommunikation mit dem HBCI-Server verwendet wird.java.lang.StringgetHBCIVersion()Gibt die HBCI-Version zurück, die zuletzt verwendet wurde.java.lang.StringgetHost()Gibt den Hostnamen des HBCI-Servers für dieses Passport zurück.static HBCIPassportgetInstance()EntsprichtgetInstance((Object)null)static HBCIPassportgetInstance(java.lang.Object init)Erzeugt eine Instanz eines HBCI-Passports.static HBCIPassportgetInstance(java.lang.String name)EntsprichtgetInstance(name,null)static HBCIPassportgetInstance(java.lang.String name, java.lang.Object init)Erzeugt eine Instanz eines HBCIPassports und gibt diese zurück.java.lang.StringgetInstName()Gibt den Namen des Kreditinstitutes zurück.java.util.PropertiesgetJobRestrictions(java.lang.String specname)java.util.PropertiesgetJobRestrictions(java.lang.String gvname, java.lang.String version)java.lang.StringgetLang()intgetMaxGVperMsg()intgetMaxGVSegsPerMsg()intgetMaxMsgSizeKB()protected java.lang.StringgetParamHeader()java.util.PropertiesgetParamSegmentNames()IHandlerDatagetParentHandlerData()java.lang.ObjectgetPersistentData(java.lang.String id)java.lang.IntegergetPort()Gibt die TCP-Portnummer auf dem HBCI-Server zurück, zu der eine HBCI-Verbindung aufgebaut werden soll.java.lang.LonggetSigId()java.lang.StringgetStoredCustomerId()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.StringgetSysId()java.util.PropertiesgetUPD()Gibt die gespeicherten UPD (User-Parameter-Daten) zurück.java.lang.StringgetUPDVersion()Gibt die Versionsnummer der lokal gespeicherten UPD zurück.java.lang.StringgetUserId()Gibt die Benutzerkennung zurück, die zur Authentifikation am HBCI-Server benutzt wird.voidincSigId()booleanisAnonymous()voidonDialogEvent(DialogEvent event, DialogContext ctx)Wird bei einem Dialog-Event ausgefuehrt.booleanonlyBPDGVs()voidsetBLZ(java.lang.String blz)voidsetBPD(java.util.Properties bpd)voidsetCID(java.lang.String cid)voidsetClientData(java.lang.String id, java.lang.Object o)Speichern zusätzlicher Daten im Passport-Objekt.voidsetCountry(java.lang.String country)voidsetCustomerId(java.lang.String customerid)Setzen der zu verwendenden Kunden-ID.voidsetFilterType(java.lang.String filter)voidsetHBCIVersion(java.lang.String hbciversion)voidsetHost(java.lang.String host)Manuelles Setzen der Adresse des HBCI-Servers.protected voidsetParamHeader(java.lang.String paramHeader)voidsetParentHandlerData(IHandlerData handler)voidsetPersistentData(java.lang.String id, java.lang.Object o)voidsetPort(java.lang.Integer port)Setzen des TCP-Ports, der für HBCI-Verbindungen benutzt wird.voidsetProfileMethod(java.lang.String method)voidsetProfileVersion(java.lang.String version)voidsetSigId(java.lang.Long sigid)voidsetSysId(java.lang.String sysid)voidsetUPD(java.util.Properties upd)voidsetUserId(java.lang.String userid)voidsyncSigId()Synchronisation der Signatur-ID erzwingen (nur für RDH-Passports sinnvoll).voidsyncSysId()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:
getCommin interfaceHBCIPassportInternal
-
getCommInstance
public abstract Comm getCommInstance()
-
getCommFilter
public final Filter getCommFilter()
- Specified by:
getCommFilterin interfaceHBCIPassportInternal
-
closeComm
public final void closeComm()
- Specified by:
closeCommin interfaceHBCIPassportInternal
-
getBPD
public final java.util.Properties getBPD()
Description copied from interface:HBCIPassportGibt 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:
getBPDin interfaceHBCIPassport- Returns:
- die Bankparamterdaten oder
null, falls diese nicht im Passport vorhanden sind
-
setHBCIVersion
public final void setHBCIVersion(java.lang.String hbciversion)
- Specified by:
setHBCIVersionin interfaceHBCIPassportInternal
-
getHBCIVersion
public final java.lang.String getHBCIVersion()
Description copied from interface:HBCIPassportGibt die HBCI-Version zurück, die zuletzt verwendet wurde. Der hier zurückgegebene Wert ist der selbe, der bei der Initialisierung desHBCIHandlerverwendet 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:
getHBCIVersionin 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:HBCIPassportGibt 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:
getUPDin interfaceHBCIPassport- Returns:
- die Userparameterdaten oder
null, falls diese nicht im Passport vorhanden sind
-
getBLZ
public final java.lang.String getBLZ()
Description copied from interface:HBCIPassportGibt 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:
getBLZin interfaceHBCIPassport- Returns:
- die BLZ der Bank
-
getCountry
public final java.lang.String getCountry()
Description copied from interface:HBCIPassportGibt den Ländercode der Bank zurück. Für deutsche Banken ist das der String "DE".- Specified by:
getCountryin interfaceHBCIPassport- Returns:
- Ländercode der Bank
-
getAccounts
public final Konto[] getAccounts()
Description copied from interface:HBCIPassportGibt 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:
getAccountsin interfaceHBCIPassport- Returns:
- Array mit Kontoinformationen über verfügbare HBCI-Konten
-
fillAccountInfo
public final void fillAccountInfo(Konto account)
Description copied from interface:HBCIPassportAusfü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:
fillAccountInfoin 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:HBCIPassportGibt 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:
getAccountin 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:HBCIPassportGibt 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:
getHostin interfaceHBCIPassport- Returns:
- Hostname oder IP-Adresse des HBCI-Servers
-
getPort
public final java.lang.Integer getPort()
Description copied from interface:HBCIPassportGibt 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:
getPortin interfaceHBCIPassport- Returns:
- TCP-Portnummer auf dem HBCI-Server
-
getFilterType
public final java.lang.String getFilterType()
Description copied from interface:HBCIPassportGibt 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:
getFilterTypein interfaceHBCIPassport
-
getUserId
public java.lang.String getUserId()
Description copied from interface:HBCIPassportGibt die Benutzerkennung zurück, die zur Authentifikation am HBCI-Server benutzt wird.- Specified by:
getUserIdin interfaceHBCIPassport- Returns:
- Benutzerkennung für Authentifikation
-
getCustomerId
public final java.lang.String getCustomerId(int idx)
- Specified by:
getCustomerIdin interfaceHBCIPassport
-
getCustomerId
public java.lang.String getCustomerId()
Description copied from interface:HBCIPassportGibt 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:
getCustomerIdin interfaceHBCIPassport- Returns:
- Kunden-ID für die HBCI-Kommunikation
-
getStoredCustomerId
public java.lang.String getStoredCustomerId()
-
getSysId
public java.lang.String getSysId()
- Specified by:
getSysIdin interfaceHBCIPassportInternal
-
getCID
public final java.lang.String getCID()
- Specified by:
getCIDin interfaceHBCIPassportInternal
-
clearInstSigKey
public final void clearInstSigKey()
- Specified by:
clearInstSigKeyin interfaceHBCIPassport
-
clearInstEncKey
public final void clearInstEncKey()
- Specified by:
clearInstEncKeyin interfaceHBCIPassport
-
clearMySigKey
public final void clearMySigKey()
- Specified by:
clearMySigKeyin interfaceHBCIPassportInternal
-
clearMyEncKey
public final void clearMyEncKey()
- Specified by:
clearMyEncKeyin interfaceHBCIPassportInternal
-
clearMyDigKey
public final void clearMyDigKey()
- Specified by:
clearMyDigKeyin interfaceHBCIPassportInternal
-
getBPDVersion
public final java.lang.String getBPDVersion()
Description copied from interface:HBCIPassportGibt 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:
getBPDVersionin interfaceHBCIPassport- Returns:
- Versionsnummer der lokalen BPD
-
getUPDVersion
public final java.lang.String getUPDVersion()
Description copied from interface:HBCIPassportGibt die Versionsnummer der lokal gespeicherten UPD zurück. Sind keine UPD lokal vorhanden, so wird "0" zurückgegeben. Siehe dazu auchHBCIPassport.getBPDVersion().- Specified by:
getUPDVersionin interfaceHBCIPassport- Returns:
- Versionsnummer der lokalen UPD
-
getInstName
public final java.lang.String getInstName()
Description copied from interface:HBCIPassportGibt den Namen des Kreditinstitutes zurück. Diese Information wird aus den BPD ermittelt. Sind keine BPD vorhanden bzw. steht da kein Name drin, so wirdnullzurückgegeben.- Specified by:
getInstNamein interfaceHBCIPassport- Returns:
- Name des Kreditinstitutes
-
getMaxGVperMsg
public int getMaxGVperMsg()
- Specified by:
getMaxGVperMsgin interfaceHBCIPassport
-
getMaxMsgSizeKB
public final int getMaxMsgSizeKB()
- Specified by:
getMaxMsgSizeKBin interfaceHBCIPassport
-
getSuppLangs
public final java.lang.String[] getSuppLangs()
Description copied from interface:HBCIPassportGibt 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:
getSuppLangsin interfaceHBCIPassport- Returns:
- Liste aller unterstützten Sprachen (1,2,3)
-
getSuppVersions
public final java.lang.String[] getSuppVersions()
Description copied from interface:HBCIPassportGibt 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:
getSuppVersionsin interfaceHBCIPassport- Returns:
- eine Liste aller von der Bank unterstützten HBCI-Versionen
-
getDefaultLang
public final java.lang.String getDefaultLang()
Description copied from interface:HBCIPassportGibt die Standardsprache des HBCI-Servers zurück. Zu den Bedeutungen der Sprachcodes sieheHBCIPassport.getSuppLangs().- Specified by:
getDefaultLangin interfaceHBCIPassport- Returns:
- Standardsprache (1,2 oder 3)
-
canMixSecMethods
public final boolean canMixSecMethods()
- Specified by:
canMixSecMethodsin interfaceHBCIPassportInternal
-
getSuppSecMethods
public final java.lang.String[][] getSuppSecMethods()
Description copied from interface:HBCIPassportGibt eine Liste der vom HBCI-Server unterstützten Sicherheitsmechanismen zurück. Gültige Werte für jeden einzelnen String sind
RDHbzw.DDV.Die Unterstützung des PIN/TAN-Verfahrens kann mit dieser Methode nicht ermittelt werden.
- Specified by:
getSuppSecMethodsin 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:
getSuppCompMethodsin interfaceHBCIPassport
-
getLang
public final java.lang.String getLang()
- Specified by:
getLangin interfaceHBCIPassportInternal
-
getSigId
public final java.lang.Long getSigId()
- Specified by:
getSigIdin interfaceHBCIPassportInternal
-
clearBPD
public final void clearBPD()
Description copied from interface:HBCIPassportLöschen der lokal gespeicherten BPD. Damit kann erzwungen werden, dass die BPD beim nächsten HBCI-Dialog erneut abgeholt werden.- Specified by:
clearBPDin interfaceHBCIPassport
-
setBPD
public void setBPD(java.util.Properties bpd)
- Specified by:
setBPDin interfaceHBCIPassportInternal
-
clearUPD
public final void clearUPD()
Description copied from interface:HBCIPassportLöschen der lokal gespeicherten UPD. Damit kann erzwungen werden, dass die UPD beim nächsten HBCI-Dialog erneut abgeholt werden.- Specified by:
clearUPDin interfaceHBCIPassport
-
setUPD
public final void setUPD(java.util.Properties upd)
- Specified by:
setUPDin interfaceHBCIPassportInternal
-
setCountry
public final void setCountry(java.lang.String country)
- Specified by:
setCountryin interfaceHBCIPassport
-
setBLZ
public final void setBLZ(java.lang.String blz)
- Specified by:
setBLZin interfaceHBCIPassport
-
setHost
public final void setHost(java.lang.String host)
Description copied from interface:HBCIPassportManuelles 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
hostdie 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:
setHostin 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:HBCIPassportSetzen des TCP-Ports, der für HBCI-Verbindungen benutzt wird. Bei HBCI-PIN/TAN- Passports wird der Port mit443vorinitialisiert, 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:
setPortin 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:
setFilterTypein interfaceHBCIPassport
-
setUserId
public final void setUserId(java.lang.String userid)
- Specified by:
setUserIdin interfaceHBCIPassport
-
setCustomerId
public final void setCustomerId(java.lang.String customerid)
Description copied from interface:HBCIPassportSetzen 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:
setCustomerIdin interfaceHBCIPassport- Parameters:
customerid- die zu verwendende Kunden-ID; wird keine customerid angegeben (nulloder ""), so wird automatisch die User-ID verwendet.- See Also:
HBCIPassport.getCustomerId()
-
setSigId
public final void setSigId(java.lang.Long sigid)
- Specified by:
setSigIdin interfaceHBCIPassportInternal
-
setSysId
public final void setSysId(java.lang.String sysid)
- Specified by:
setSysIdin interfaceHBCIPassportInternal
-
setCID
public final void setCID(java.lang.String cid)
- Specified by:
setCIDin interfaceHBCIPassportInternal
-
incSigId
public void incSigId()
- Specified by:
incSigIdin interfaceHBCIPassportInternal
-
onlyBPDGVs
public final boolean onlyBPDGVs()
- Specified by:
onlyBPDGVsin 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
namebestimmt. Gültige Werte sind zur Zeit- DDV
- RDHNew
- RDH (nicht mehr benutzen!)
- PinTan
- SIZRDHFile
- RDHXFile
- Anonymous
Der zusätzliche Parameter
initgibt 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=namegesetzt.Beim Erzeugen eines Passport-Objektes tritt i.d.R. der
CallbackNEED_PASSPHRASEauf, 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
AnalyzeReportOfTransactionsgezeigt. 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.defaultentnommen. 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:HBCIPassportSchließ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:
closein interfaceHBCIPassport
-
getParamSegmentNames
public java.util.Properties getParamSegmentNames()
- Specified by:
getParamSegmentNamesin interfaceHBCIPassportInternal
-
getJobRestrictions
public java.util.Properties getJobRestrictions(java.lang.String specname)
- Specified by:
getJobRestrictionsin interfaceHBCIPassportInternal
-
getJobRestrictions
public java.util.Properties getJobRestrictions(java.lang.String gvname, java.lang.String version)- Specified by:
getJobRestrictionsin interfaceHBCIPassportInternal
-
setPersistentData
public void setPersistentData(java.lang.String id, java.lang.Object o)- Specified by:
setPersistentDatain interfaceHBCIPassportInternal
-
getPersistentData
public java.lang.Object getPersistentData(java.lang.String id)
- Specified by:
getPersistentDatain interfaceHBCIPassportInternal
-
syncSigId
public void syncSigId()
Description copied from interface:HBCIPassportSynchronisation 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:
syncSigIdin interfaceHBCIPassport
-
syncSysId
public void syncSysId()
Description copied from interface:HBCIPassportSynchronisation 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:
syncSysIdin 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:
changePassphrasein interfaceHBCIPassport
-
setClientData
public final void setClientData(java.lang.String id, java.lang.Object o)Description copied from interface:HBCIPassportSpeichern 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 Objektounter dem Identifikations-Stringidgespeichert. 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:
setClientDatain 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:HBCIPassportHolen 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:
getClientDatain 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:
isAnonymousin interfaceHBCIPassportInternal
-
setParamHeader
protected void setParamHeader(java.lang.String paramHeader)
-
getParamHeader
protected java.lang.String getParamHeader()
-
setParentHandlerData
public void setParentHandlerData(IHandlerData handler)
- Specified by:
setParentHandlerDatain interfaceHBCIPassportInternal
-
getParentHandlerData
public IHandlerData getParentHandlerData()
- Specified by:
getParentHandlerDatain interfaceHBCIPassportInternal
-
generateNewUserKeys
public HBCIKey[][] generateNewUserKeys()
- Specified by:
generateNewUserKeysin interfaceHBCIPassportInternal
-
setProfileMethod
public void setProfileMethod(java.lang.String method)
- Specified by:
setProfileMethodin interfaceHBCIPassportInternal
-
setProfileVersion
public void setProfileVersion(java.lang.String version)
- Specified by:
setProfileVersionin interfaceHBCIPassportInternal
-
checkForCryptDataSize
public static byte[] checkForCryptDataSize(byte[] buffer, int size)
-
onDialogEvent
public void onDialogEvent(DialogEvent event, DialogContext ctx)
Description copied from interface:HBCIPassportInternalWird bei einem Dialog-Event ausgefuehrt.- Specified by:
onDialogEventin 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:
getMaxGVSegsPerMsgin interfaceHBCIPassportInternal- See Also:
HBCIPassportInternal.getMaxGVSegsPerMsg()
-
-