2016-01-18 5 views
0

У меня есть код для addSiteAccount1 для cobUser, user, siteId, userName, password.Yodlee REST api addSiteAccount1 exception IncompleteArgumentException

Этот код добавляет учетную запись сайта правильно для меня в среде dev, т.е. я получаю действительный ответ и могу продолжить (обратите внимание, что это для банка DAG).

Однако в промежуточной среде addSiteAccount возвращает мне исключение (обратите внимание, что это для siteId 15798).

ExceptionType: com.yodlee.core.IncompleteArgumentException referenceCode: _xxxxxxx сообщение: «отказ расшифрования для FieldInfo: FieldInfoSingle:

ответ

0

Yodlee внедрила инфраструктуру PKI для усиления существующих мер безопасности в дальнейшем. Кажется, что ваша промежуточная среда включена с функцией PKI. После этого Yodlee ожидает, что вы будете отправлять учетные данные в зашифрованном виде. Это означает, что перед вызовом API addSiteAccount1 и других API, таких как putMFARequest и updateCredentials, вам необходимо зашифровать значение имени пользователя/пароля и информации MFA, а затем отправить его вместо отправки в виде открытого текста, как вы делаете прямо сейчас. Или вы можете попросить команду поддержки Yodlee отключить функцию PKI в вашей промежуточной среде.

Чтобы получить открытый ключ для вашей среды можно назвать getPublicKeyDetails API Суб URL: jsonsdk/DataEncryptionService/getPublicKeyDetails

Вы должны пройти cobSessionToken в качестве параметра, и это HTTP POST вызов.

EDIT-1 (Добавлен код в Java для шифрования значений) Вот код в Java о том, как зашифровать, просто для справки: -

public static String encrypt(String plainText) throws Exception 
{ 

    Security.addProvider(new BouncyCastleProvider()); 
    String pub = "-----BEGIN PUBLIC KEY-----"+ 
      "\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtUS7ZJpnbcu8B+mfGrr0Gz6A23lS893mEFNnuR+frbtWDsoIHTfN4yhfbslkzsAMp3ENvM6Ic/0nHEvftrZxFXSrN7n3xZ+mdzOV/u8rqZoB7MEu6mZvdg3zfj7dGglq/fqlYxzHLlxDHjeCrY0dSD0ZAX1zCm3IZ0ufbMBqTrsSaHAuDlIXaQlJXmz3/Y+YfynJZXth/ats1gTBQhMIU9lWutMa4iKkeehn+P9ja4pC9NUlB9W4pojF2Qs+pY4kgTb9+SP8WjnhoSAmJMQGbYwY3HOZyfuOqAmdjoh9Y0LEZ3tq5NGD0b+T7L+P/FuIzvjYZYq6g/FaWaPcVrVLpwIDAQAB"+ 
      "\n-----END PUBLIC KEY-----"; 
    System.out.println(pub); 
    String strt= pub; 
    StringReader fileReader= new StringReader(strt); 
    PEMReader pemReader= new PEMReader(fileReader); 
    PublicKey pk= (PublicKey)pemReader.readObject(); 

    Cipher c = Cipher.getInstance(RSA_ECB_PKCS5); 
    PublicKey publicKey = pk; 
    c.init(Cipher.ENCRYPT_MODE, transformKey(publicKey,  
    "RSA", new BouncyCastleProvider())); 
    byte[] encValue= new byte[0]; 
    try { 
     encValue = c.doFinal(plainText.getBytes()); 
    } catch (IllegalBlockSizeException e) { 
     e.printStackTrace(); 
    } catch (BadPaddingException e) { 
     e.printStackTrace(); 
    } 
    String encrypted = DatatypeConverter.printHexBinary(encValue); 
    System.out.println("Encrypted value: "+encrypted); 
    return encrypted; 
} 
+0

Будет ли ИПК в нашей прод среде? –

+0

Если вы хотите, чтобы иметь его, или вы можете попросить их отключить его по умолчанию для вашей среды prod. –

+0

Я искал этот вызов api «getPublicKeyDetails», но на нем нет ссылки на веб-сайт yodlee dev? –

Смежные вопросы