I am attempting to debug a Yodlee site authentication issue I am having. I'm sending the credentials via the following endpoint: POST https://rest.developer.yodlee.com/services/srest/restserver/v1.0/jsonsdk/Refresh/putMFARequestForSite
And this is the error message I am receiving:
{
"errorOccurred": "true",
"exceptionType": "com.yodlee.core.IllegalArgumentValueException",
"referenceCode": "_4ef2f3e7-a750-4dfe-a16e-fa4254451897",
"message": "Null argument specified for: QuesAndAnswerDetails[]"
}
I need to be able to test authenticating via MFA with dropdowns (selects). I created a DAG catalog, and replaced one of the DAG Security QA sites with the following configuration I found when googling:
<login>
<flowControlInfo>
<delayBeforeChallenge>-1</delayBeforeChallenge>
<delayBeforeLoginComplete>1</delayBeforeLoginComplete>
<delayAfterLoginComplete>1</delayAfterLoginComplete>
<expireToken>false</expireToken>
</flowControlInfo>
<MFAFlows>
<MFAFlow flowOrder="1" isModeOfCommunication="1">
<HelpTitle>MFA Help Title1</HelpTitle>
<HelpContent>MFA Help Content1</HelpContent>
<InfoTitle>MFA Info Title1</InfoTitle>
<InfoContent>MFA Info Content1</InfoContent>
<MFAChallengeList>
<MFAChallenge questionType="text" >
<MFAOption answerType = "dropdown">
<questionLabel>Please select desired OTP
destination...</questionLabel>
<answerOptions>
<!-- The actual email or token will not be sent and is just a
placeholder to show the form -->
<option isDefaultSelected="1" value="MOBILE_XXX-XXX-1234">MOBILE
XXX-XXX-1234</option>
<option isDefaultSelected="0" value="HOME_XXX-XXX-2345">HOME XXXXXX-2345</option>
<option isDefaultSelected="0" value="WORK_XXX-XXX-3456">WORK XXXXXX-3456</option>
</answerOptions>
</MFAOption>
</MFAChallenge>
<MFAChallenge questionType="text" >
<MFAOption answerType = "dropdown">
<questionLabel>Please select desired OTP
destination1...</questionLabel>
<answerOptions>
<!-- The actual email or token will not be sent and is just a placeholder to show the form -->
<option isDefaultSelected="1" value="TEXT">TEXT message</option>
<option isDefaultSelected="0" value="PHONE">Phone Call</option>
</answerOptions>
</MFAOption>
</MFAChallenge>
</MFAChallengeList>
</MFAFlow>
<MFAFlow flowOrder="2">
<HelpTitle>MFA Help Title1</HelpTitle>
<HelpContent>MFA Help Content1</HelpContent>
<InfoTitle>MFA Info Title1</InfoTitle>
<InfoContent>MFA Info Content1</InfoContent>
<TokenDetails>
<DisplayString>Security Key</DisplayString>
<Value>123456</Value>
</TokenDetails>
</MFAFlow>
</MFAFlows>
</login>
In order to get back MFA form info, I am calling: POST https://rest.developer.yodlee.com/services/srest/restserver/v1.0/jsonsdk/Refresh/getMFAResponseForSite
I can see the dropdowns with real sites, but I can't get a DAG site to reproduce the same behavior. I've also read https://developer.yodlee.com/assets/images/OTP_Documents/Implementation%20Manual%20for%20Enhanced%20MFA%20Support.pdf however when using Site/Provider Id 16442 I get a 403 yodlee internal error response.
I am aware of Can you provide an example of calling putMFARequestForSite with com.yodlee.core.mfarefresh.MFAQuesAnsResponse? and am attempting to implement the the suggested fix however I am unable to test using dag accounts.
Thanks!