|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Public Interface für HBCI-Passports. Ein HBCI-Passport ist eine Art "Ausweis", der individuell für jeden Nutzer eines HBCI-Zugangs und für jeden Zugangsmechanismus ist. Ein Passport repräsentiert ein HBCI-Sicherheitsmedium und stellt Funktionen bereit, um mit dem jeweiligen Medium zu arbeiten.
Für jede Zugangsart gibt es eine konkrete Passport-Implementation, die dieses Interface implementiert. Dabei handelt es sich um
HBCIPassportDDV
für Zugang über DDV mit ChipkarteHBCIPassportRDHNew
für Zugang über RDH mit DateiHBCIPassportRDH
für Zugang über RDH mit Datei (bitte nicht mehr benutzen;
siehe Datei README.RDHNew
)HBCIPassportPinTan
für Zugang über das PIN/TAN-VerfahrenHBCIPassportAnonymous
für den anonymen ZugangHBCIPassportSIZRDHFile
für den Zugang über RDH mit Datei,
wobei als Datei eine SIZ-Schlüsseldatei, wie sie z.B. von StarMoney oder GENOlite
erzeugt wird, verwendet werden kannHBCIPassportRDH2File
für den Zugang über RDH mit Datei,
wobei als Datei eine RDH-2-Schlüsseldatei verwendet wird, wie sie z.B.
von VR-NetWorld erzeugt wird.In einem Passport werden alle nutzer- und institutsspezifischen Daten verwaltet. Dazu gehören
Außerdem sind in einem Passport alle Methoden implementiert, die zur Durchführung der kryptografischen Operationen benötigt werden (verschlüsseln, signieren, usw.)
Field Summary | |
static java.lang.String |
ROLE_CON
Rolle eines Passport-Objektes: Eigentümer ist Mitunterzeichner für Nachricht. |
static java.lang.String |
ROLE_ISS
Rolle eines Passport-Objektes: Eigentümer ist Herausgeber der Nachricht. |
static java.lang.String |
ROLE_WIT
Rolle eines Passport-Objektes: Eigentümer ist Zeuge oder Überbringer der Nachricht. |
Method Summary | |
void |
changePassphrase()
Ändern des Passwortes für die Schlüsseldatei. |
void |
clearBPD()
Löschen der lokal gespeicherten BPD. |
void |
clearInstDigKey()
|
void |
clearInstEncKey()
|
void |
clearInstSigKey()
|
void |
clearUPD()
Löschen der lokal gespeicherten UPD. |
void |
close()
Schließen eines Passport-Objektes. |
void |
fillAccountInfo(Konto account)
Ausfüllen fehlender Kontoinformationen. |
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.Object |
getClientData(java.lang.String id)
Holen von clientseitig gespeicherten zusätzlichen Daten. |
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. |
HBCIKey |
getInstEncKey()
|
java.lang.String |
getInstName()
Gibt den Namen des Kreditinstitutes zurück. |
HBCIKey |
getInstSigKey()
|
int |
getMaxGVperMsg()
|
int |
getMaxMsgSizeKB()
|
HBCIKey |
getMyPrivateDigKey()
|
HBCIKey |
getMyPrivateEncKey()
|
HBCIKey |
getMyPrivateSigKey()
|
HBCIKey |
getMyPublicDigKey()
|
HBCIKey |
getMyPublicEncKey()
|
HBCIKey |
getMyPublicSigKey()
|
java.lang.Integer |
getPort()
Gibt die TCP-Portnummer auf dem HBCI-Server zurück, zu der eine HBCI-Verbindung aufgebaut werden soll. |
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.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. |
boolean |
hasInstDigKey()
|
boolean |
hasInstEncKey()
|
boolean |
hasInstSigKey()
|
boolean |
hasMyEncKey()
|
boolean |
hasMySigKey()
|
boolean |
isSupported()
|
boolean |
needDigKey()
|
boolean |
needInstKeys()
|
boolean |
needUserKeys()
|
boolean |
onlyBPDGVs()
|
void |
saveChanges()
Speichern der Änderungen an den Passport-Daten. |
void |
setBLZ(java.lang.String blz)
|
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 |
setHost(java.lang.String host)
Manuelles Setzen der Adresse des HBCI-Servers. |
void |
setPort(java.lang.Integer port)
Setzen des TCP-Ports, der für HBCI-Verbindungen benutzt wird. |
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). |
Field Detail |
public static final java.lang.String ROLE_ISS
HBCIJob.addSignaturePassport(HBCIPassport, String)
benötigt.
public static final java.lang.String ROLE_CON
HBCIJob.addSignaturePassport(HBCIPassport, String)
benötigt.
public static final java.lang.String ROLE_WIT
HBCIJob.addSignaturePassport(HBCIPassport, String)
benötigt.
Method Detail |
public java.util.Properties getBPD()
null
, falls diese nicht im
Passport vorhanden sindpublic java.lang.String getHBCIVersion()
HBCIHandler
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 mit
new HBCIHandler(passport.getHBCIVersion(),passport)
erfolgen (vorausgesetzt,
passport.getHBCIVersion()
gibt einen nicht-leeren String zurück.
public java.util.Properties getUPD()
null
, falls diese nicht im
Passport vorhanden sindpublic java.lang.String getBLZ()
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
getAccounts()
benutzt werden.
public java.lang.String getCountry()
DE
".
public Konto[] getAccounts()
public void fillAccountInfo(Konto account)
getAccounts()
) wird nach einem Konto gesucht, welches die
gleiche Kontonummer hat wie das übergebene Konto account
. Wird ein solches
Konto gefunden, so werden die Daten dieses gefundenen Kontos in das account
-Objekt
übertragen.
Diese Methode kann benutzt werden, wenn zu einem Konto nicht alle Daten bekannt sind, wenigstens
aber die Kontonummer.
account
- unvollständige Konto-Informationen, bei denen die fehlenden Daten nachgetragen
werdenpublic Konto getAccount(java.lang.String number)
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.
number
- die Kontonummer, für die ein Konto-Objekt erzeugt werden soll
public java.lang.String getHost()
public java.lang.Integer getPort()
setPort(Integer)
geändert werden.
public java.lang.String getFilterType()
None
" und
"Base64
".
public java.lang.String getUserId()
public java.lang.String getCustomerId(int idx)
public java.lang.String getCustomerId()
Gibt die Kunden-ID zurück, die von HBCI4Java für die
Initialisierung eines Dialoges benutzt wird. Zu einer Benutzerkennung
(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)
.
public boolean isSupported()
public boolean needInstKeys()
public boolean needUserKeys()
public boolean needDigKey()
public boolean hasInstSigKey()
public boolean hasInstEncKey()
public boolean hasInstDigKey()
public boolean hasMySigKey()
public boolean hasMyEncKey()
public void clearInstSigKey()
public void clearInstEncKey()
public void clearInstDigKey()
public HBCIKey getMyPublicSigKey()
public HBCIKey getMyPublicEncKey()
public HBCIKey getMyPublicDigKey()
public HBCIKey getMyPrivateSigKey()
public HBCIKey getMyPrivateEncKey()
public HBCIKey getMyPrivateDigKey()
public HBCIKey getInstSigKey()
public HBCIKey getInstEncKey()
public java.lang.String getBPDVersion()
public java.lang.String getUPDVersion()
getBPDVersion()
.
public java.lang.String getInstName()
null
zurückgegeben.
public int getMaxGVperMsg()
public int getMaxMsgSizeKB()
public java.lang.String[] getSuppLangs()
public java.lang.String[] getSuppVersions()
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.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.HBCIHandler(String,org.kapott.hbci.passport.HBCIPassport)
public java.lang.String getDefaultLang()
getSuppLangs()
.
public java.lang.String[][] getSuppSecMethods()
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.
public java.lang.String[][] getSuppCompMethods()
public void clearBPD()
public void clearUPD()
public void setCountry(java.lang.String country)
public void setBLZ(java.lang.String blz)
public void setHost(java.lang.String host)
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
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
Methode setPort(Integer)
benutzt werden, um die Portnummer zu
setzen.
host
- die neue Adresse, unter der der HBCI-Server zu erreichen istpublic void setPort(java.lang.Integer port)
443
vorinitialisiert, für alle anderen
"normalen" HBCI-Verbindungstypen mit 3000
. 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.
port
- neue TCP-Portnummer, die für ausgehende Verbindungen benutzt
werden sollpublic void setFilterType(java.lang.String filter)
public void setUserId(java.lang.String userid)
public void setCustomerId(java.lang.String customerid)
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).
customerid
- die zu verwendende Kunden-ID; wird keine customerid
angegeben (null
oder ""), so wird automatisch die
User-ID verwendet.getCustomerId()
public boolean onlyBPDGVs()
public void saveChanges()
saveChanges
ist nur dann sinnvoll, wenn irgendwelche Passport-Daten manuell verändert
werden (setHost(String)
,
clearBPD()
usw.) und diese Änderungen
explizit gespeichert werden sollen.
public void close()
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 ein 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.
public void syncSigId()
HBCIHandler
-Objekt
erzeugt wird. Durch den Aufruf dieser Methode wird veranlasst, dass
beim Erzeugen eines HBCIHandler
-Objektes mit diesem
Passport die Signatur-ID des Passports synchronisiert wird.
public void syncSysId()
HBCIHandler
-Objekt
erzeugt wird. Durch den Aufruf dieser Methode wird veranlasst, dass
beim Erzeugen eines HBCIHandler
-Objektes mit diesem
Passport die System-ID des Passports synchronisiert wird.
public void changePassphrase()
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.
public void setClientData(java.lang.String id, java.lang.Object o)
o
unter dem Identifikations-String
id
gespeichert. Mit 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.
id
- Identifikationsstring für das zu speichernde Objekto
- zu speicherndes Objektpublic java.lang.Object getClientData(java.lang.String id)
setClientData(String,Object)
im Passport gespeichert wurden, wieder ausgelesen werden. Auch das Objekt,
das beim Erzeugen eines Passport-Objektes als init
-Parameter übergeben wurde
(siehe AbstractHBCIPassport.getInstance(String,Object)
),
kann damit ausgelesen werden (mit id="init"
).
id
- Identifikationsstring des auszulesenden Objektes
setClientData(String,Object)
im Passport gespeichert wurde.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |