mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 15:27:01 +00:00
Introduced versioning in Connector for KafkaMappedConnector
This commit is contained in:
parent
d291c22d2e
commit
38a46d6ede
@ -43,8 +43,14 @@ Could consider a Map of ("resourceType" -> "provider") - this could tell us whic
|
||||
initialise MongoDB etc. resourceType might be sub devided to allow for different account types coming from different internal APIs, MQs.
|
||||
*/
|
||||
|
||||
object Connector extends SimpleInjector {
|
||||
object Connector extends SimpleInjector {
|
||||
|
||||
import scala.reflect.runtime.universe._
|
||||
def getObjectInstance(clsName: String):Connector = {
|
||||
val mirror = runtimeMirror(getClass.getClassLoader)
|
||||
val module = mirror.staticModule(clsName)
|
||||
mirror.reflectModule(module).instance.asInstanceOf[Connector]
|
||||
}
|
||||
|
||||
val connector = new Inject(buildOne _) {}
|
||||
|
||||
@ -54,8 +60,9 @@ object Connector extends SimpleInjector {
|
||||
connectorProps match {
|
||||
case "mapped" => LocalMappedConnector
|
||||
case "mongodb" => LocalConnector
|
||||
case "kafka" => KafkaMappedConnector
|
||||
case "obpjvm" => ObpJvmMappedConnector
|
||||
case "kafka" => KafkaMappedConnector
|
||||
case matchKafkaVersion(version) => getObjectInstance(s"""code.bankconnectors.KafkaMappedConnector_v${version}""")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -443,7 +443,7 @@ import net.liftweb.util.Helpers._
|
||||
|
||||
case Full(user) if (user.getProvider() != Props.get("hostname","")) =>
|
||||
connector match {
|
||||
case "kafka" if ( Props.getBool("kafka.user.authentication", false) &&
|
||||
case Helper.matchAnyKafka() if ( Props.getBool("kafka.user.authentication", false) &&
|
||||
! LoginAttempt.userIsLocked(username) ) =>
|
||||
val userId = for { kafkaUser <- getUserFromConnector(username, password)
|
||||
kafkaUserId <- tryo{kafkaUser.user} } yield {
|
||||
@ -625,7 +625,7 @@ import net.liftweb.util.Helpers._
|
||||
S.error(S.?("account.validation.error"))
|
||||
|
||||
// If not found locally, try to authenticate user via Kafka, if enabled in props
|
||||
case Empty if (connector == "kafka" || connector == "obpjvm") &&
|
||||
case Empty if (connector.startsWith("kafka") || connector == "obpjvm") &&
|
||||
(Props.getBool("kafka.user.authentication", false) ||
|
||||
Props.getBool("obpjvm.user.authentication", false)) =>
|
||||
val preLoginState = capturePreLoginState()
|
||||
@ -682,7 +682,7 @@ import net.liftweb.util.Helpers._
|
||||
|
||||
|
||||
def testExternalPassword(usernameFromGui: Box[String], passwordFromGui: Box[String]): Box[Boolean] = {
|
||||
if (connector == "kafka" || connector == "obpjvm") {
|
||||
if (connector.startsWith("kafka") || connector == "obpjvm") {
|
||||
val res = for {
|
||||
username <- usernameFromGui
|
||||
password <- passwordFromGui
|
||||
@ -697,7 +697,7 @@ import net.liftweb.util.Helpers._
|
||||
|
||||
|
||||
def externalUserHelper(name: String, password: String): Box[AuthUser] = {
|
||||
if (connector == "kafka" || connector == "obpjvm") {
|
||||
if (connector.startsWith("kafka") || connector == "obpjvm") {
|
||||
for {
|
||||
user <- getUserFromConnector(name, password)
|
||||
u <- Users.users.vend.getUserByUserName(username)
|
||||
@ -710,7 +710,7 @@ import net.liftweb.util.Helpers._
|
||||
|
||||
|
||||
def registeredUserHelper(username: String) = {
|
||||
if (connector == "kafka" || connector == "obpjvm") {
|
||||
if (connector.startsWith("kafka") || connector == "obpjvm") {
|
||||
for {
|
||||
u <- Users.users.vend.getUserByUserName(username)
|
||||
v <- tryo {Connector.connector.vend.updateUserAccountViews(u)}
|
||||
|
||||
@ -155,4 +155,11 @@ object Helper{
|
||||
|
||||
validUrls.contains(extractCleanURL)
|
||||
}
|
||||
|
||||
/**
|
||||
* Used for version extraction from props string
|
||||
*/
|
||||
val matchKafkaVersion = "kafka_v([0-9a-zA-Z_]+)".r
|
||||
val matchAnyKafka = "^kafka.*$".r
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user