From c209e3409f8e1787dd766e9075f92680bc0fdc32 Mon Sep 17 00:00:00 2001 From: hongwei Date: Tue, 14 Jul 2020 10:33:12 +0200 Subject: [PATCH] bugfix/added the starConnectorSupportedTypes guard for the getResourceUser external --- .../code/model/dataAccess/AuthUser.scala | 21 ++++++++++++++----- obp-api/src/main/scala/code/util/Helper.scala | 1 - 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala b/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala index 6d9324e89..8a4e03a45 100644 --- a/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala +++ b/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala @@ -317,6 +317,7 @@ import net.liftweb.util.Helpers._ val usernameLockedStateCode = Long.MaxValue val connector = APIUtil.getPropsValue("connector").openOrThrowException("no connector set") + val starConnectorSupportedTypes = APIUtil.getPropsValue("starConnector_supported_types","") override def emailFrom = APIUtil.getPropsValue("mail.users.userinfo.sender.address", "sender-not-set") @@ -617,8 +618,11 @@ import net.liftweb.util.Helpers._ case Full(user) if (user.getProvider() != APIUtil.getPropsValue("hostname","")) => connector match { - case Helper.matchAnyKafka() if ( APIUtil.getPropsAsBoolValue("kafka.user.authentication", false) && - ! LoginAttempt.userIsLocked(username) ) => + case Helper.matchAnyKafka() if ( + (starConnectorSupportedTypes contains("kafka")) + && APIUtil.getPropsAsBoolValue("kafka.user.authentication", false) + && ! LoginAttempt.userIsLocked(username) + ) => val userId = for { kafkaUser <- getUserFromConnector(username, password) kafkaUserId <- tryo{kafkaUser.user} } yield { LoginAttempt.resetBadLoginAttempts(username) @@ -630,8 +634,11 @@ import net.liftweb.util.Helpers._ LoginAttempt.incrementBadLoginAttempts(username) Empty } - case "obpjvm" if ( APIUtil.getPropsAsBoolValue("obpjvm.user.authentication", false) && - ! LoginAttempt.userIsLocked(username) ) => + case "obpjvm" if ( + (starConnectorSupportedTypes contains("obpjvm")) + && APIUtil.getPropsAsBoolValue("obpjvm.user.authentication", false) + && ! LoginAttempt.userIsLocked(username) + ) => val userId = for { obpjvmUser <- getUserFromConnector(username, password) obpjvmUserId <- tryo{obpjvmUser.user} } yield { LoginAttempt.resetBadLoginAttempts(username) @@ -643,7 +650,11 @@ import net.liftweb.util.Helpers._ LoginAttempt.incrementBadLoginAttempts(username) Empty } - case Helper.matchAnyStoredProcedure() if !LoginAttempt.userIsLocked(username) => + case Helper.matchAnyStoredProcedure() if ( + (starConnectorSupportedTypes contains("stored_procedure")) + && APIUtil.getPropsAsBoolValue("connector.user.authentication", false) + && !LoginAttempt.userIsLocked(username) + ) => val userId = for { authUser <- checkExternalUserViaConnector(username, password) diff --git a/obp-api/src/main/scala/code/util/Helper.scala b/obp-api/src/main/scala/code/util/Helper.scala index 4df07ca4e..2dc9bb2a8 100644 --- a/obp-api/src/main/scala/code/util/Helper.scala +++ b/obp-api/src/main/scala/code/util/Helper.scala @@ -239,7 +239,6 @@ object Helper{ /** * Used for version extraction from props string */ - val matchKafkaVersion = "kafka_v([0-9a-zA-Z_]+)|^star$".r val matchAnyKafka = "^(kafka.*|star)$|^star$".r val matchAnyStoredProcedure = "^stored_procedure.*$|^star$".r