@@ -66,6 +66,21 @@ public ISession execute() throws Exception {
6666 IUser user = Core .getUser (sysContext , userMfaObj .getUsername ());
6767 return Core .initializeSession (user , this .currentSessionId );
6868 }
69+ else if (userMfaObj .getUsername () != null && userMfaObj .getUsername () != "" ) {
70+ IUser user = Core .getUser (sysContext , userMfaObj .getUsername ());
71+ if (user != null ) {
72+ Object obj = (Integer )user .getMendixObject ().getValue (sysContext ,"FailedLogins" )+1 ;
73+ user .getMendixObject ().setValue (sysContext ,"FailedLogins" ,obj );
74+ if ( (Integer )user .getMendixObject ().getValue (sysContext ,"FailedLogins" ) >= 3 ) {
75+ user .getMendixObject ().setValue (sysContext ,"Blocked" ,true );
76+ Core .commit (sysContext , user .getMendixObject ());
77+ _logNode .debug ( "Custom MFA to much attempts FAILED: user '" + userMfaObj .getUsername () + "' blocked" );
78+ throw new UserBlockedException ("Custom MFA check: User '" + userMfaObj .getUsername () + "' blocked" );
79+ }
80+ Core .commit (sysContext , user .getMendixObject ());
81+ }
82+ return oldSession ;
83+ }
6984 else {
7085 return oldSession ;
7186 }
@@ -127,7 +142,16 @@ else if( !Core.authenticate(sysContext, user, this.password)) {
127142 return super .execute ();
128143 }
129144 else {
130- _logNode .debug ( "Custom Login FAILED: validation for user '" + this .userName + "' with code '" +mfaCode +"'." );
145+ _logNode .debug ( "Custom MFA code validation FAILED: mfa check for user '" + this .userName + "' with code '" +mfaCode +"'." );
146+ Object obj = (Integer )user .getMendixObject ().getValue (sysContext ,"FailedLogins" )+1 ;
147+ user .getMendixObject ().setValue (sysContext ,"FailedLogins" ,obj );
148+ if ( (Integer )user .getMendixObject ().getValue (sysContext ,"FailedLogins" ) >= 3 ) {
149+ user .getMendixObject ().setValue (sysContext ,"Blocked" ,true );
150+ Core .commit (sysContext , user .getMendixObject ());
151+ _logNode .debug ( "Custom MFA to much attempts FAILED: user '" + this .userName + "' blocked" );
152+ throw new UserBlockedException ("Custom MFA check: User '" + this .userName + "' blocked" );
153+ }
154+ Core .commit (sysContext , user .getMendixObject ());
131155 throw new AuthenticationRuntimeException (" Custom Login FAILED for user '" + this .userName + "'." );
132156 }
133157 }
0 commit comments