public void applyParams ( AbstractHBCIJob task , AbstractHBCIJob hktan , HBCITwoStepMechanism hbciTwoStepMechanism ) { String code = task . getHBCICode ( ) ; // Code des Geschaeftsvorfalls // Job-Parameter holen Job job = this . getData ( code ) ; // Den Geschaeftsvorfall kennen wir nicht. Dann brauchen wir // auch keine Challenge-Parameter setzen if ( job == null ) { log . info ( "have no challenge data for " + code + ", will not apply challenge params" ) ; return ; } HHDVersion version = HHDVersion . find ( hbciTwoStepMechanism ) ; log . debug ( "using hhd version " + version ) ; // Parameter fuer die passende HHD-Version holen HhdVersion hhd = job . getVersion ( version . getChallengeVersion ( ) ) ; // Wir haben keine Parameter fuer diese HHD-Version if ( hhd == null ) { log . info ( "have no challenge data for " + code + " in " + version + ", will not apply challenge params" ) ; return ; } // Schritt 1: Challenge-Klasse uebernehmen String klass = hhd . getKlass ( ) ; log . debug ( "using challenge klass " + klass ) ; hktan . setParam ( "challengeklass" , klass ) ; // Schritt 2: Challenge-Parameter uebernehmen List < Param > params = hhd . getParams ( ) ; for ( int i = 0 ; i < params . size ( ) ; ++ i ) { int num = i + 1 ; // Die Job-Parameter beginnen bei 1 Param param = params . get ( i ) ; // Checken, ob der Parameter angewendet werden soll. if ( ! param . isComplied ( hbciTwoStepMechanism ) ) { log . debug ( "skipping challenge parameter " + num + " (" + param . path + "), condition " + param . conditionName + "=" + param . conditionValue + " not complied" ) ; continue ; } // Parameter uebernehmen. Aber nur wenn er auch einen Wert hat. // Seit HHD 1.4 duerfen Parameter mittendrin optional sein, sie // werden dann freigelassen String value = param . getValue ( task ) ; if ( value == null || value . length ( ) == 0 ) { log . debug ( "challenge parameter " + num + " (" + param . path + ") is empty" ) ; continue ; } log . debug ( "adding challenge parameter " + num + " " + param . path + "=" + value ) ; hktan . setParam ( "ChallengeKlassParam" + num , value ) ; } }
Uebernimmt die Challenge - Parameter in den HKTAN - Geschaeftsvorfall .