@@ -90,8 +90,6 @@ public class LoginResource extends AbstractSpagoBIResource {
9090 @ PublicService
9191 public Response login (@ Context HttpServletRequest req , Map <String , String > payload ) throws Exception {
9292 // Initialize context
93- MessageBuilder msgBuilder = new MessageBuilder ();
94- Locale locale = msgBuilder .getLocale (req );
9593 IKnowageMonitor monitor = KnowageMonitorFactory .getInstance ().start ("knowage.login.authentication" );
9694
9795 try {
@@ -133,7 +131,7 @@ public Response login(@Context HttpServletRequest req, Map<String, String> paylo
133131 }
134132
135133 // Handle MFA if required
136- if (checkCodeMfa (req , user , msgBuilder )) {
134+ if (checkCodeMfa (req , user )) {
137135 return handleMfaRequired (userId , user );
138136 }
139137
@@ -144,7 +142,7 @@ public Response login(@Context HttpServletRequest req, Map<String, String> paylo
144142
145143 // Validate and update password if not admin
146144 if (!isAdminUser ) {
147- Response passwordCheckResponse = validateAndUpdatePassword (user , userDao , msgBuilder , locale );
145+ Response passwordCheckResponse = validateAndUpdatePassword (user , userDao );
148146 if (passwordCheckResponse != null ) {
149147 return passwordCheckResponse ;
150148 }
@@ -499,7 +497,7 @@ public Response validateOIDCIdToken(Map<String, String> payload) {
499497 }
500498
501499
502- private boolean checkCodeMfa (HttpServletRequest req , SbiUser user , MessageBuilder msgBuilder ) throws Exception {
500+ private boolean checkCodeMfa (HttpServletRequest req , SbiUser user ) throws Exception {
503501
504502 String securityServiceSupplier = SingletonConfig .getInstance ().getConfigValue ("SPAGOBI.SECURITY.USER-PROFILE-FACTORY-CLASS.className" );
505503 // If securityServiceSupplier is Ldap compliant, skip MFA
@@ -644,18 +642,19 @@ private boolean isUserAdmin(SbiUser user, ISbiUserDAO userDao) throws Exception
644642 /**
645643 * Validates and updates user password if needed
646644 */
647- private Response validateAndUpdatePassword (SbiUser user , ISbiUserDAO userDao , MessageBuilder msgBuilder , Locale locale ) throws Exception {
645+ private Response validateAndUpdatePassword (SbiUser user , ISbiUserDAO userDao ) throws Exception {
648646 logger .debug ("Validation password starting..." );
649647 boolean goToChangePwd = checkPwd (user );
650648
651649 if (goToChangePwd ) {
652- String oldEncMethodMessage = null ;
653650 if (user .getPassword ().startsWith (Password .PREFIX_SHA_SECRETPHRASE_ENCRIPTING )) {
654651 logger .info ("Old encrypting method. Change password required." );
655- oldEncMethodMessage = msgBuilder .getMessage ("old_enc_method_message" , "messages" , locale );
652+ return Response .status (Response .Status .FORBIDDEN )
653+ .entity (Map .of ("error" , "Password expired" , "requiresPasswordChange" , true , "reason" , "Old encryption method" ))
654+ .build ();
656655 }
657656 return Response .status (Response .Status .FORBIDDEN )
658- .entity (Map .of ("error" , "Password expired" , "oldEncMethodMessage " , oldEncMethodMessage ))
657+ .entity (Map .of ("error" , "Password expired" , "requiresPasswordChange " , true ))
659658 .build ();
660659 }
661660
0 commit comments