From 871174ed7e73871eace8efc28143d8b0219193b5 Mon Sep 17 00:00:00 2001 From: ElaadF Date: Thu, 16 Apr 2020 11:45:55 +0200 Subject: [PATCH] Fixes #17108: cannot login in Rudder 6.1 --- .../scala/bootstrap/liftweb/RudderUserDetails.scala | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/RudderUserDetails.scala b/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/RudderUserDetails.scala index 63b4118f54..5c7d88dfe6 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/RudderUserDetails.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/bootstrap/liftweb/RudderUserDetails.scala @@ -44,11 +44,13 @@ import java.nio.charset.StandardCharsets import java.security.MessageDigest import java.security.SecureRandom import java.util.Collection + import com.normation.rudder._ import com.normation.rudder.api._ import com.normation.rudder.domain.logger.ApplicationLogger import com.normation.rudder.domain.logger.PluginLogger import com.normation.rudder.rest.RoleApiMapping +import org.bouncycastle.crypto.DataLengthException import org.bouncycastle.util.encoders.Hex import org.springframework.security.core.GrantedAuthority import org.springframework.security.core.userdetails.UserDetails @@ -115,7 +117,13 @@ object PasswordEncoder { OpenBSDBCrypt.generate("2b", rawPassword.toString.toCharArray, salt, RudderConfig.RUDDER_BCRYPT_COST) } override def matches(rawPassword: CharSequence, encodedPassword: String): Boolean = { - OpenBSDBCrypt.checkPassword(encodedPassword, rawPassword.toString.toCharArray) + try { + OpenBSDBCrypt.checkPassword(encodedPassword, rawPassword.toString.toCharArray) + } catch { + case e => + ApplicationLogger.error(s"Invalid password format: ${e.getMessage}") + false + } } } }