public class HBCICallbackIOStreams extends AbstractHBCICallback
HBCICallbackConsole
ist eine abgeleitete Klasse, welche STDOUT und STDIN für die beiden
I/O-Streams verwendet.CLOSE_CONNECTION, HAVE_CHIPCARD, HAVE_CRC_ERROR, HAVE_ERROR, HAVE_HARDPIN, HAVE_IBAN_ERROR, HAVE_INST_MSG, HAVE_NEW_MY_KEYS, NEED_BLZ, NEED_CHIPCARD, NEED_CONNECTION, NEED_COUNTRY, NEED_CUSTOMERID, NEED_FILTER, NEED_HARDPIN, NEED_HOST, NEED_INFOPOINT_ACK, NEED_NEW_INST_KEYS_ACK, NEED_PASSPHRASE_LOAD, NEED_PASSPHRASE_SAVE, NEED_PORT, NEED_PROXY_PASS, NEED_PROXY_USER, NEED_PT_PHOTOTAN, NEED_PT_PIN, NEED_PT_QRTAN, NEED_PT_SECMECH, NEED_PT_TAN, NEED_PT_TANMEDIA, NEED_REMOVE_CHIPCARD, NEED_SIZENTRY_SELECT, NEED_SOFTPIN, NEED_USERID, STATUS_DIALOG_END, STATUS_DIALOG_END_DONE, STATUS_DIALOG_INIT, STATUS_DIALOG_INIT_DONE, STATUS_INIT_SIGID, STATUS_INIT_SIGID_DONE, STATUS_INIT_SYSID, STATUS_INIT_SYSID_DONE, STATUS_INIT_UPD, STATUS_INIT_UPD_DONE, STATUS_INST_BPD_INIT, STATUS_INST_BPD_INIT_DONE, STATUS_INST_GET_KEYS, STATUS_INST_GET_KEYS_DONE, STATUS_LOCK_KEYS, STATUS_LOCK_KEYS_DONE, STATUS_MSG_CREATE, STATUS_MSG_CRYPT, STATUS_MSG_DECRYPT, STATUS_MSG_PARSE, STATUS_MSG_RAW_RECV, STATUS_MSG_RAW_RECV_ENCRYPTED, STATUS_MSG_RAW_SEND, STATUS_MSG_RECV, STATUS_MSG_SEND, STATUS_MSG_SIGN, STATUS_MSG_VERIFY, STATUS_SEND_INFOPOINT_DATA, STATUS_SEND_KEYS, STATUS_SEND_KEYS_DONE, STATUS_SEND_TASK, STATUS_SEND_TASK_DONE, TYPE_BOOLEAN, TYPE_NONE, TYPE_SECRET, TYPE_TEXT, USERID_CHANGED, WRONG_PIN
Constructor and Description |
---|
HBCICallbackIOStreams(PrintStream outStream,
BufferedReader inStream)
Instanz mit vorgegebenem OUT- und INPUT-Stream erzeugen.
|
Modifier and Type | Method and Description |
---|---|
void |
callback(HBCIPassport passport,
int reason,
String msg,
int datatype,
StringBuffer retData)
Diese Methode reagiert auf alle möglichen Callback-Ursachen.
|
protected BufferedReader |
getInStream()
Gibt des INPUT-Stream zurück.
|
protected PrintStream |
getOutStream()
Gibt den verwendeten OUTPUT-Stream zurück.
|
void |
log(String msg,
int level,
Date date,
StackTraceElement trace)
Schreiben von Logging-Ausgaben in einen
PrintStream . |
protected String |
readLine()
NPE-sichere Variante zum Lesen einer Zeile aus dem Eingabestream (normalerweise STDIN).
|
protected void |
setInStream(BufferedReader in)
TODO: doc
|
protected void |
setOutStream(PrintStream out)
TODO: doc
|
void |
status(HBCIPassport passport,
int statusTag,
Object[] o)
Wird diese Methode von HBCI4Java aufgerufen, so wird der aktuelle
Bearbeitungsschritt (mit evtl. vorhandenen zusätzlichen Informationen)
auf
outStream ausgegeben. |
createDefaultLogLine, status, useThreadedCallback
public HBCICallbackIOStreams(PrintStream outStream, BufferedReader inStream)
outStream
- Stream, welcher für die Ausgabe verwendet wird.inStream
- Stream, der für das Einlesen von Antworten verwendet wirdprotected void setInStream(BufferedReader in)
protected BufferedReader getInStream()
protected void setOutStream(PrintStream out)
protected PrintStream getOutStream()
protected String readLine() throws IOException
IOException
public void log(String msg, int level, Date date, StackTraceElement trace)
PrintStream
. Diese Methode implementiert die Logging-Schnittstelle
des HBCICallback
-Interfaces. Die Log-Informationen,
die dieser Methode übergeben werden, werden formatiert auf dem jeweiligen outStream
ausgegeben. In dem
ausgegebenen String sind in enthalten das Log-Level der Message, ein Zeitstempel im
Format "yyyy.MM.dd HH:mm:ss.SSS
", die Namen der ThreadGroup und des Threads, aus dem
heraus die Log-Message erzeugt wurde, der Klassenname der Klasse, welche die Log-Ausgabe
erzeugt hat sowie die eigentliche Log-Messagemsg
- die eigentliche Text-Meldung des HBCI-Kernelslevel
- Loglevel, welcher die "Wichtigkeit" dieser Meldung angibt. Die
möglichen Werte dafür sind in HBCIUtils
definiert und lauten
LOG_CHIPCARD
LOG_DEBUG
LOG_INFO
LOG_WARN
LOG_ERR
date
- Zeitpunkt, zu dem die Logausgabe generiert wurdetrace
- ein StackTrace
-Element, welches die Stelle
im Code beschreibt, an der die Logausgabe erzeugt wurde
(kann benutzt werden, um die Klasse, Methode, Zeilennummer etc.
des Aufrufes zu ermitteln)public void callback(HBCIPassport passport, int reason, String msg, int datatype, StringBuffer retData)
outStream
ausgegeben.
Bei Callbacks, die Aktionen vom Anwender erwarten (Einlegen der Chipkarte), wird eine
entsprechende Aufforderung ausgegeben. Bei Callbacks, die eine Eingabe vom
Nutzer erwarten, wird die entsprechende Eingabeaufforderung ausgegeben und die
Eingabe vom inStream
gelesen.passport
- enthält das Passport-Objekt, bei dessen Benutzung der
Callback erzeugt wurde. Falls also in einer Anwendung mehrere
Passport-Objekte gleichzeitig benutzt werden, so kann anhand
dieses Parameters festgestellt werden, welches Passport
(und damit welches HBCIHandle) HBCI4Java gerade benutzt.reason
- gibt den Grund für diesen Aufruf an. Dieser Parameter kann
alle Werte annehmen, die als "Ursache des Callback-Aufrufes" in der Dokumentation
aufgeführt sind. Je nach Wert dieses Parameters werden vom Nutzer
Aktionen oder Eingaben erwartet.msg
- ein Hinweistext, der den Grund des Callbacks näher beschreibt.
Dieser Parameter muss nicht ausgewertet werden, der Parameter
reason
ist bereits eindeutig. Er dient nur dazu,
bei Anwendungen, die nicht für jeden Ursache des Callback-Aufrufes einen eigenen
Hinweistext bereitstellen wollen, eine Art default-Wert für den
anzuzeigenden Text bereitzustellen.datatype
- legt fest, welchen Datentyp die vom HBCI-Kernel erwarteten
Antwortdaten haben müssen. Ist dieser Wert gleich
TYPE_NONE
, so werden keine Antwortdaten (also keine
Nutzereingabe) erwartet, bei TYPE_SECRET
und
TYPE_TEXT
wird ein normaler String erwartet.TYPE_SECRET
sensible Daten (Passwörter usw.) eingegeben
werden sollen, so dass die Eingaberoutine evtl. anders arbeiten
muss (z.B. Sternchen anstatt dem eingegebenen Text darstellen).retData
- In diesem StringBuffer-Objekt müssen die Antwortdaten
abgelegt werden. Beim Aufruf der Callback-Methode von HBCI4Java wird dieser
StringBuffer u.U. mit einem vorgeschlagenen default-Wert für die Nutzereingabe
gefüllt.public void status(HBCIPassport passport, int statusTag, Object[] o)
outStream
ausgegeben.passport
- gibt an, welches Passport (und damit welches HBCIHandle)
benutzt wurde, als der Callback erzeugt wurde (siehe auch
HBCICallback.callback(org.kapott.hbci.passport.HBCIPassport,int,String,int,StringBuffer)
).statusTag
- gibt an, welche Stufe der Abarbeitung gerade erreicht
wurde (alle oben beschriebenen Konstanten, die mit STATUS_
beginnen)o
- ein Array aus Objekten, das zusätzliche Informationen zum jeweiligen
Status enthält. In den meisten Fällen handelt es sich um einen
String, der zusätzliche Informationen im Klartext enthält. Welche Informationen
das jeweils sind, ist der Beschreibung zu den einzelnen STATUS_*
-Tag-Konstanten
zu entnehmen.Copyright © 2022. All rights reserved.