Hallo Zusammen,
ich habe folgendes Problem, seit ca. 1 Woche, sperrt HBCi4Java meine Online Bank Zugänge.
Aktuell habe ich 2 Volksbank-Zugänge und 1 Comdirect Zugang, welche ich eigentlich erfolgreich seit ca. 1 Jahr via HBCI4Java abrufe und bisher so gut wie nie Probleme damit hatte. Jetzt hat mir das Tool mehrfach den Online Zugang mit falschen PIN "eingaben" gesperrt, dass sehr merkwürdige daran ist, dass das nicht sofort passiert.
Kurze Historie:
23.04.: Zugang ist gesperrt
28.04.: Zugang ist wieder freigeschaltet, alles funktioniert
29.04.: Keine Änderungen
30.04.: Keine Änderungen
31.04.: Keine Änderungen
01.05.: Keine Änderungen
02.05.: Keine Änderungen - Zugang gesperrt ("wrong pin")
Womit kann dies zutun haben? Dies tritt aktuell nur bei meinen Volksbank Konten auf (Kann Zufall sein...).
Ich habe den Mechanismus jetzt aktuell wieder deaktiviert, um weitere Sperrungen zu verhinden. Ich muss jetzt auf Post der Bank warten um den Account wieder freischalten zu können...
Hat jemand eine Idee hierzu? Ich mache, aus meiner Sicht, sehr einfache Dinge mit dem Tool, das einzige was eventuell etwas "extravagant" sein könnte, ist dass ich mehrere Banken anspreche (2 x auch die gleiche Bank, mit unterschiedlichen Zugängen).
Ich habe separate Passport-Dateien und separate Logfiles definiert, es sollte also eigentlich alles völlig getrennt sein. Ich könnte mir aber irgendwie vorstellen, dass das Tool dennoch "durcheinander" kommt?
Mein kleiner Code:
package de.bdombrowsky.jira.plugins.hbci.utils
import org.kapott.hbci.GV.HBCIJob
import org.kapott.hbci.GV_Result.GVRAccInfo
import org.kapott.hbci.GV_Result.GVRKUms
import org.kapott.hbci.callback.HBCICallbackConsole
import org.kapott.hbci.manager.HBCIHandler
import org.kapott.hbci.manager.HBCIUtils
import org.kapott.hbci.manager.HBCIUtilsInternal
import org.kapott.hbci.passport.AbstractHBCIPassport
import org.kapott.hbci.passport.HBCIPassport
import org.kapott.hbci.status.HBCIExecStatus
import org.kapott.hbci.structures.Konto
/**
* Created by bdo on 22.04.15.
*/
class HBCI {
public static class MyHBCICallback
extends HBCICallbackConsole
{
private Properties answers;
public MyHBCICallback(Properties answers)
throws Exception
{
super();
this.answers = answers
}
public synchronized void callback(HBCIPassport passport,int reason,String msg,int datatype,StringBuffer retData)
{
switch (reason) {
case NEED_CHIPCARD:
System.out.println(HBCIUtilsInternal.getLocMsg("CALLB_NEED_CHIPCARD"));
break;
case NEED_HARDPIN:
System.out.println(HBCIUtilsInternal.getLocMsg("CALLB_NEED_HARDPIN"));
break;
case NEED_SOFTPIN:
retData.replace(0,retData.length(),answers.getProperty("softpin"));
break;
case NEED_PASSPHRASE_LOAD:
case NEED_PASSPHRASE_SAVE:
retData.replace(0,retData.length(),answers.getProperty("passphrase"));
break;
case NEED_PT_SECMECH:
retData.replace(0,retData.length(),answers.getProperty("secmech"));
break;
case NEED_PT_PIN:
retData.replace(0,retData.length(),answers.getProperty("pin"));
break;
case NEED_PT_TAN:
retData.replace(0,retData.length(),answers.getProperty("tan"));
break;
case NEED_COUNTRY:
retData.replace(0,retData.length(),answers.getProperty("country"));
break;
case NEED_BLZ:
retData.replace(0,retData.length(),answers.getProperty("blz"));
break;
case NEED_HOST:
retData.replace(0,retData.length(),answers.getProperty("host"));
break;
case NEED_PORT:
retData.replace(0,retData.length(),answers.getProperty("port"));
break;
case NEED_FILTER:
retData.replace(0,retData.length(),answers.getProperty("filter"));
break;
case NEED_USERID:
retData.replace(0,retData.length(),answers.getProperty("userid"));
break;
case NEED_CUSTOMERID:
retData.replace(0,retData.length(),answers.getProperty("customerid"));
break;
case NEED_SIZENTRY_SELECT:
retData.replace(0,retData.length(),answers.getProperty("sizentry"));
break;
case NEED_NEW_INST_KEYS_ACK:
retData.replace(0,retData.length(),"");
break;
case HAVE_NEW_MY_KEYS:
System.out.println("please restart batch process");
break;
case HAVE_INST_MSG:
HBCIUtils.log(msg,HBCIUtils.LOG_INFO);
break;
case NEED_CONNECTION:
case CLOSE_CONNECTION:
break;
}
}
// ausgabe der status-meldungen komplett unterbinden
public synchronized void status(HBCIPassport passport,int statusTag,
Object[] objs)
{
}
}
private static HBCIPassport passport;
private static HBCIHandler hbciHandle;
public static GVRKUms getNewEntries(String logfile, Integer accountID, Properties answersProperties, Properties configProperties)
throws Exception
{
Date now = new Date()
PrintStream outStream=new PrintStream(new FileOutputStream(logfile));
System.setOut(outStream);
System.setErr(outStream);
if (HBCIUtils.getLocale() != null){
HBCIUtils.done();
}
System.out.println("Inilize HBCI Utils...");
HBCIUtils.init(configProperties, new MyHBCICallback(answersProperties));
System.out.println("Create new Passport...");
passport = AbstractHBCIPassport.getInstance();
System.out.println("Passport created:" + passport);
System.out.println("Get Report...");
GVRKUms result=null;
try {
String passportVersion = passport.getHBCIVersion();
System.out.println("passportVersion: "+ passportVersion);
hbciHandle=new HBCIHandler((passportVersion.length()!=0)?passportVersion:"300", passport);
Konto myAccount= passport.getAccounts()[accountID];
HBCIJob report=hbciHandle.newJob("KUmsAll");
report.setParam("my",myAccount);
report.setParam("startdate",now.clearTime())
report.addToQueue();
HBCIExecStatus ret=hbciHandle.execute();
result=(GVRKUms)report.getJobResult();
// Check my result and close function
if (result.isOK()) {
System.out.println("Job-OK");
} else {
// Fehlermeldungen ausgeben
System.out.println("Job-Error");
System.out.println(result.getJobStatus().getErrorString());
System.out.println("Global Error");
System.out.println(ret.getErrorString());
}
} finally {
if (hbciHandle!=null) {
hbciHandle.close();
}
if (passport !=null) {
passport.clearBPD();
passport.clearUPD();
passport.clearInstEncKey();
passport.clearInstSigKey();
passport.close();
}
}
return result;
}
}
Logfile Auszug:
Über Hilfe wäre ich sehr sehr dankbar, da das Tool für mich relativ wichtig ist..
Gibt es irgendwie die Möglichkeit, auf die Rückmeldung "wrong pin" zu reagieren? Um beim ersten "wrong pin" das ganze zu deaktivieren und zu checken, was hier los ist? Ich wüsste jetzt nicht direkt, wie ich an diese Rückmeldung komme? Außer das Logfile zu parsen...
Gruß
Benni
ich habe folgendes Problem, seit ca. 1 Woche, sperrt HBCi4Java meine Online Bank Zugänge.
Aktuell habe ich 2 Volksbank-Zugänge und 1 Comdirect Zugang, welche ich eigentlich erfolgreich seit ca. 1 Jahr via HBCI4Java abrufe und bisher so gut wie nie Probleme damit hatte. Jetzt hat mir das Tool mehrfach den Online Zugang mit falschen PIN "eingaben" gesperrt, dass sehr merkwürdige daran ist, dass das nicht sofort passiert.
Kurze Historie:
23.04.: Zugang ist gesperrt
28.04.: Zugang ist wieder freigeschaltet, alles funktioniert
29.04.: Keine Änderungen
30.04.: Keine Änderungen
31.04.: Keine Änderungen
01.05.: Keine Änderungen
02.05.: Keine Änderungen - Zugang gesperrt ("wrong pin")
Womit kann dies zutun haben? Dies tritt aktuell nur bei meinen Volksbank Konten auf (Kann Zufall sein...).
Ich habe den Mechanismus jetzt aktuell wieder deaktiviert, um weitere Sperrungen zu verhinden. Ich muss jetzt auf Post der Bank warten um den Account wieder freischalten zu können...
Hat jemand eine Idee hierzu? Ich mache, aus meiner Sicht, sehr einfache Dinge mit dem Tool, das einzige was eventuell etwas "extravagant" sein könnte, ist dass ich mehrere Banken anspreche (2 x auch die gleiche Bank, mit unterschiedlichen Zugängen).
Ich habe separate Passport-Dateien und separate Logfiles definiert, es sollte also eigentlich alles völlig getrennt sein. Ich könnte mir aber irgendwie vorstellen, dass das Tool dennoch "durcheinander" kommt?
Mein kleiner Code:
Code
package de.bdombrowsky.jira.plugins.hbci.utils
import org.kapott.hbci.GV.HBCIJob
import org.kapott.hbci.GV_Result.GVRAccInfo
import org.kapott.hbci.GV_Result.GVRKUms
import org.kapott.hbci.callback.HBCICallbackConsole
import org.kapott.hbci.manager.HBCIHandler
import org.kapott.hbci.manager.HBCIUtils
import org.kapott.hbci.manager.HBCIUtilsInternal
import org.kapott.hbci.passport.AbstractHBCIPassport
import org.kapott.hbci.passport.HBCIPassport
import org.kapott.hbci.status.HBCIExecStatus
import org.kapott.hbci.structures.Konto
/**
* Created by bdo on 22.04.15.
*/
class HBCI {
public static class MyHBCICallback
extends HBCICallbackConsole
{
private Properties answers;
public MyHBCICallback(Properties answers)
throws Exception
{
super();
this.answers = answers
}
public synchronized void callback(HBCIPassport passport,int reason,String msg,int datatype,StringBuffer retData)
{
switch (reason) {
case NEED_CHIPCARD:
System.out.println(HBCIUtilsInternal.getLocMsg("CALLB_NEED_CHIPCARD"));
break;
case NEED_HARDPIN:
System.out.println(HBCIUtilsInternal.getLocMsg("CALLB_NEED_HARDPIN"));
break;
case NEED_SOFTPIN:
retData.replace(0,retData.length(),answers.getProperty("softpin"));
break;
case NEED_PASSPHRASE_LOAD:
case NEED_PASSPHRASE_SAVE:
retData.replace(0,retData.length(),answers.getProperty("passphrase"));
break;
case NEED_PT_SECMECH:
retData.replace(0,retData.length(),answers.getProperty("secmech"));
break;
case NEED_PT_PIN:
retData.replace(0,retData.length(),answers.getProperty("pin"));
break;
case NEED_PT_TAN:
retData.replace(0,retData.length(),answers.getProperty("tan"));
break;
case NEED_COUNTRY:
retData.replace(0,retData.length(),answers.getProperty("country"));
break;
case NEED_BLZ:
retData.replace(0,retData.length(),answers.getProperty("blz"));
break;
case NEED_HOST:
retData.replace(0,retData.length(),answers.getProperty("host"));
break;
case NEED_PORT:
retData.replace(0,retData.length(),answers.getProperty("port"));
break;
case NEED_FILTER:
retData.replace(0,retData.length(),answers.getProperty("filter"));
break;
case NEED_USERID:
retData.replace(0,retData.length(),answers.getProperty("userid"));
break;
case NEED_CUSTOMERID:
retData.replace(0,retData.length(),answers.getProperty("customerid"));
break;
case NEED_SIZENTRY_SELECT:
retData.replace(0,retData.length(),answers.getProperty("sizentry"));
break;
case NEED_NEW_INST_KEYS_ACK:
retData.replace(0,retData.length(),"");
break;
case HAVE_NEW_MY_KEYS:
System.out.println("please restart batch process");
break;
case HAVE_INST_MSG:
HBCIUtils.log(msg,HBCIUtils.LOG_INFO);
break;
case NEED_CONNECTION:
case CLOSE_CONNECTION:
break;
}
}
// ausgabe der status-meldungen komplett unterbinden
public synchronized void status(HBCIPassport passport,int statusTag,
Object[] objs)
{
}
}
private static HBCIPassport passport;
private static HBCIHandler hbciHandle;
public static GVRKUms getNewEntries(String logfile, Integer accountID, Properties answersProperties, Properties configProperties)
throws Exception
{
Date now = new Date()
PrintStream outStream=new PrintStream(new FileOutputStream(logfile));
System.setOut(outStream);
System.setErr(outStream);
if (HBCIUtils.getLocale() != null){
HBCIUtils.done();
}
System.out.println("Inilize HBCI Utils...");
HBCIUtils.init(configProperties, new MyHBCICallback(answersProperties));
System.out.println("Create new Passport...");
passport = AbstractHBCIPassport.getInstance();
System.out.println("Passport created:" + passport);
System.out.println("Get Report...");
GVRKUms result=null;
try {
String passportVersion = passport.getHBCIVersion();
System.out.println("passportVersion: "+ passportVersion);
hbciHandle=new HBCIHandler((passportVersion.length()!=0)?passportVersion:"300", passport);
Konto myAccount= passport.getAccounts()[accountID];
HBCIJob report=hbciHandle.newJob("KUmsAll");
report.setParam("my",myAccount);
report.setParam("startdate",now.clearTime())
report.addToQueue();
HBCIExecStatus ret=hbciHandle.execute();
result=(GVRKUms)report.getJobResult();
// Check my result and close function
if (result.isOK()) {
System.out.println("Job-OK");
} else {
// Fehlermeldungen ausgeben
System.out.println("Job-Error");
System.out.println(result.getJobStatus().getErrorString());
System.out.println("Global Error");
System.out.println(ret.getErrorString());
}
} finally {
if (hbciHandle!=null) {
hbciHandle.close();
}
if (passport !=null) {
passport.clearBPD();
passport.clearUPD();
passport.clearInstEncKey();
passport.clearInstSigKey();
passport.close();
}
}
return result;
}
}
Logfile Auszug:
Code
<DBG> [2015.05.02 12:00:00.618] [main/atlassian-scheduler-quartz1.clustered_Worker-3] passport.AbstractPinTanPassport: dialog init ended with errors - searching for return code 'wro
ng PIN'
<INF> [2015.05.02 12:00:00.618] [main/atlassian-scheduler-quartz1.clustered_Worker-3] passport.AbstractPinTanPassport: detected 'invalid PIN' error - clearing passport PIN
<DBG> [2015.05.02 12:00:00.618] [main/atlassian-scheduler-quartz1.clustered_Worker-3] passport.AbstractPinTanPassport: autosecfunc: search for 3920s in response to detect allowed tw
ostep secmechs
<DBG> [2015.05.02 12:00:00.618] [main/atlassian-scheduler-quartz1.clustered_Worker-3] passport.AbstractPinTanPassport: autosecfunc: (re)checking selected pintan secmech
<DBG> [2015.05.02 12:00:00.619] [main/atlassian-scheduler-quartz1.clustered_Worker-3] passport.AbstractPinTanPassport: afterCustomDialogInitHook: patching message queues for twostep
method
<DBG> [2015.05.02 12:00:00.619] [main/atlassian-scheduler-quartz1.clustered_Worker-3] passport.AbstractPinTanPassport: found task that does not require a TAN: HKKAZ - adding it to c
urrent msg
Job-Error
Global Error
9050:Die Nachricht enthält Fehler.
9931:*Ihre PIN ist gesperrt.
9800:Dialog abgebrochen
9340:Auftrag abgelehnt.
ng PIN'
<INF> [2015.05.02 12:00:00.618] [main/atlassian-scheduler-quartz1.clustered_Worker-3] passport.AbstractPinTanPassport: detected 'invalid PIN' error - clearing passport PIN
<DBG> [2015.05.02 12:00:00.618] [main/atlassian-scheduler-quartz1.clustered_Worker-3] passport.AbstractPinTanPassport: autosecfunc: search for 3920s in response to detect allowed tw
ostep secmechs
<DBG> [2015.05.02 12:00:00.618] [main/atlassian-scheduler-quartz1.clustered_Worker-3] passport.AbstractPinTanPassport: autosecfunc: (re)checking selected pintan secmech
<DBG> [2015.05.02 12:00:00.619] [main/atlassian-scheduler-quartz1.clustered_Worker-3] passport.AbstractPinTanPassport: afterCustomDialogInitHook: patching message queues for twostep
method
<DBG> [2015.05.02 12:00:00.619] [main/atlassian-scheduler-quartz1.clustered_Worker-3] passport.AbstractPinTanPassport: found task that does not require a TAN: HKKAZ - adding it to c
urrent msg
Job-Error
Global Error
9050:Die Nachricht enthält Fehler.
9931:*Ihre PIN ist gesperrt.
9800:Dialog abgebrochen
9340:Auftrag abgelehnt.
Über Hilfe wäre ich sehr sehr dankbar, da das Tool für mich relativ wichtig ist..
Gibt es irgendwie die Möglichkeit, auf die Rückmeldung "wrong pin" zu reagieren? Um beim ersten "wrong pin" das ganze zu deaktivieren und zu checken, was hier los ist? Ich wüsste jetzt nicht direkt, wie ich an diese Rückmeldung komme? Außer das Logfile zu parsen...
Gruß
Benni