From e32f4eb8fff9daec46f20284e28e94a59231d033 Mon Sep 17 00:00:00 2001 From: Janis Date: Tue, 20 Jan 2026 16:00:52 +0100 Subject: [PATCH] feat: Integrate UserManager and HibernateUserManager in session management --- .../app/di/ProductionModule.scala | 25 ------------------- .../logic/user/impl/BaseSessionManager.scala | 4 +-- .../app/modules/GatewayModule.scala | 14 +++++++++++ .../conf/META-INF/persistence.xml | 4 ++- 4 files changed, 19 insertions(+), 28 deletions(-) delete mode 100644 knockoutwhistweb/app/di/ProductionModule.scala diff --git a/knockoutwhistweb/app/di/ProductionModule.scala b/knockoutwhistweb/app/di/ProductionModule.scala deleted file mode 100644 index 5939616..0000000 --- a/knockoutwhistweb/app/di/ProductionModule.scala +++ /dev/null @@ -1,25 +0,0 @@ -package di - -import com.google.inject.AbstractModule -import com.google.inject.name.Names -import logic.user.impl.HibernateUserManager -import play.api.db.DBApi -import play.api.{Configuration, Environment} - -class ProductionModule( - environment: Environment, - configuration: Configuration -) extends AbstractModule { - - override def configure(): Unit = { - // Bind HibernateUserManager for production - bind(classOf[logic.user.UserManager]) - .to(classOf[logic.user.impl.HibernateUserManager]) - .asEagerSingleton() - - // Bind EntityManager for JPA - bind(classOf[jakarta.persistence.EntityManager]) - .toProvider(classOf[EntityManagerProvider]) - .asEagerSingleton() - } -} diff --git a/knockoutwhistweb/app/logic/user/impl/BaseSessionManager.scala b/knockoutwhistweb/app/logic/user/impl/BaseSessionManager.scala index 61e670d..706c9c9 100644 --- a/knockoutwhistweb/app/logic/user/impl/BaseSessionManager.scala +++ b/knockoutwhistweb/app/logic/user/impl/BaseSessionManager.scala @@ -4,7 +4,7 @@ import com.auth0.jwt.algorithms.Algorithm import com.auth0.jwt.{JWT, JWTVerifier} import com.github.benmanes.caffeine.cache.{Cache, Caffeine} import com.typesafe.config.Config -import logic.user.SessionManager +import logic.user.{SessionManager, UserManager} import model.users.User import scalafx.util.Duration import services.JwtKeyProvider @@ -16,7 +16,7 @@ import javax.inject.{Inject, Singleton} import scala.util.Try @Singleton -class BaseSessionManager @Inject()(val keyProvider: JwtKeyProvider, val userManager: StubUserManager, val config: Config) extends SessionManager { +class BaseSessionManager @Inject()(val keyProvider: JwtKeyProvider, val userManager: UserManager, val config: Config) extends SessionManager { private val algorithm = Algorithm.RSA512(keyProvider.publicKey, keyProvider.privateKey) private val verifier: JWTVerifier = JWT.require(algorithm) diff --git a/knockoutwhistweb/app/modules/GatewayModule.scala b/knockoutwhistweb/app/modules/GatewayModule.scala index ab7894f..a0a6bc1 100644 --- a/knockoutwhistweb/app/modules/GatewayModule.scala +++ b/knockoutwhistweb/app/modules/GatewayModule.scala @@ -1,10 +1,24 @@ package modules import com.google.inject.AbstractModule +import di.EntityManagerProvider +import jakarta.persistence.EntityManager import logic.Gateway +import logic.user.UserManager +import logic.user.impl.HibernateUserManager class GatewayModule extends AbstractModule { override def configure(): Unit = { bind(classOf[Gateway]).asEagerSingleton() + + // Bind HibernateUserManager for production (when GatewayModule is used) + bind(classOf[UserManager]) + .to(classOf[HibernateUserManager]) + .asEagerSingleton() + + // Bind EntityManager for JPA + bind(classOf[EntityManager]) + .toProvider(classOf[EntityManagerProvider]) + .asEagerSingleton() } } diff --git a/knockoutwhistweb/conf/META-INF/persistence.xml b/knockoutwhistweb/conf/META-INF/persistence.xml index 5b25011..6cea33f 100644 --- a/knockoutwhistweb/conf/META-INF/persistence.xml +++ b/knockoutwhistweb/conf/META-INF/persistence.xml @@ -7,7 +7,9 @@ org.hibernate.jpa.HibernatePersistenceProvider - + + model.users.UserEntity +