I am using the below script to re-attempt on failures from step1;

var rolesToStepUp = ['admin', 'Manager'];

var errorPageParameters = {

   'status': 'Unauthorized',

   'statusMsg': 'You are not authorized to access this application'

};

var errorPage = '';

function onLoginRequest(context) {

  executeBasicAuth(context);

}

function executeBasicAuth(context) {

  executeStep(1,{

          onSuccess: function (context) {

             // Extracting authenticated subject from the first step

           var user = context.currentKnownSubject;

           // Checking if the user is assigned to one of the given roles

           var hasRole = hasAnyOfTheRoles(user, rolesToStepUp);

           if (hasRole) {

               Log.info(user.username + ' Has one of Roles: ' +
rolesToStepUp.toString());

               executeStep(2);

           } else {

 sendError(errorPage, errorPageParameters);

}

          },

          onFail: function (context) {

executeBasicAuth(context);

          }



  });

}


On Thu, Oct 11, 2018 at 2:10 PM Hasitha De Silva <[email protected]>
wrote:

> [+ maduranga]
>
> On Wed, Oct 10, 2018 at 3:46 PM Hasitha De Silva <[email protected]>
> wrote:
>
>> Hi,
>>
>> I'm having some trouble trying to simulate the login failure scenarios
>> with conditional auth scripts. What is the ideal way to enforce the script
>> to retry login attempts ?
>>
>> Right now my script is as below;
>>
>> function onLoginRequest(context) {
>>     executeStep(1, {
>>         onSuccess: function(context) {
>>             if (!checkIP(context)) {
>>                 if (!checkIPInSubnet(context)) {
>>                     if (step2CheckEmail(context)) {
>>                         executeStep(2, {
>>                             onFail: function(context) {
>>                                 executeStep(2);
>>                             }
>>                         });
>>                     }
>>                 }
>>             }
>>         },
>>         onFail: function(context) {
>>             executeStep(1);
>>         }
>>     });
>> }
>>
>> The expected flow is that the user is taken to the email otp page after
>> basic login, and then, if he/she enters the wrong OTP code, the user should
>> be allowed to retry another OTP code. However, what actually happens is
>> that the user is taken to a default IS error page with following error
>> trace :
>>
>> [2018-10-10 15:26:01,298] ERROR
>> {org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler}
>> -  Code mismatch
>> org.wso2.carbon.identity.application.authentication.framework.exception.AuthenticationFailedException:
>> Code mismatch
>> at
>> org.wso2.carbon.identity.authenticator.emailotp.EmailOTPAuthenticator.processAuthenticationResponse(EmailOTPAuthenticator.java:242)
>> at
>> org.wso2.carbon.identity.application.authentication.framework.AbstractApplicationAuthenticator.process(AbstractApplicationAuthenticator.java:77)
>> at
>> org.wso2.carbon.identity.authenticator.emailotp.EmailOTPAuthenticator.process(EmailOTPAuthenticator.java:125)
>> at
>> org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler.doAuthentication(DefaultStepHandler.java:490)
>>
>> [2018-10-10 15:26:01,362] ERROR
>> {org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator}
>> -  Exception in Authentication Framework
>> java.lang.NullPointerException
>> at
>> org.wso2.carbon.extension.identity.helper.FederatedAuthenticatorUtil.setUsernameFromFirstStep(FederatedAuthenticatorUtil.java:399)
>> at
>> org.wso2.carbon.identity.authenticator.emailotp.EmailOTPAuthenticator.initiateAuthenticationRequest(EmailOTPAuthenticator.java:160)
>> at
>> org.wso2.carbon.identity.application.authentication.framework.AbstractApplicationAuthenticator.process(AbstractApplicationAuthenticator.java:71)
>> at
>> org.wso2.carbon.identity.authenticator.emailotp.EmailOTPAuthenticator.process(EmailOTPAuthenticator.java:125)
>>
>>
>> Appreciate any help :)
>>
>>
>> Best Regards,
>>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>


-- 
Hasintha Indrajee
WSO2, Inc.
Mobile:+94 771892453
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to