From 53453c26883a9788666814c54f2ae774b3fdf51f Mon Sep 17 00:00:00 2001 From: Eugene Date: Mon, 14 Sep 2026 18:35:17 +0300 Subject: [PATCH] rename user verifier --- .../gigawear/backend/data/BackendAuthRepositoryImpl.kt | 6 +++--- .../data/{LoginVerifierImpl.kt => UserVerifierImpl.kt} | 6 +++--- .../backend/data/auth/BackendAuthTokenRepository.kt | 10 +++++----- ...{BackendLoginVerifier.kt => BackendUserVerifier.kt} | 6 +++--- .../ru/shadowsparky/vbox/backend/di/EntryPoint.kt | 4 ++-- .../ru/shadowsparky/vbox/backend/presentation/Jwt.kt | 2 +- .../ru/shadowsparky/backend/data/TokenVerifier.kt | 6 +++--- .../domain/{LoginVerifier.kt => UserVerifier.kt} | 2 +- .../backend/presentation/KtorExtensions.kt | 6 +++--- 9 files changed, 24 insertions(+), 24 deletions(-) rename apps/giga-wear/backend/src/main/kotlin/ru/shadowsparky/gigawear/backend/data/{LoginVerifierImpl.kt => UserVerifierImpl.kt} (89%) rename apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/data/auth/{BackendLoginVerifier.kt => BackendUserVerifier.kt} (88%) rename libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/domain/{LoginVerifier.kt => UserVerifier.kt} (90%) diff --git a/apps/giga-wear/backend/src/main/kotlin/ru/shadowsparky/gigawear/backend/data/BackendAuthRepositoryImpl.kt b/apps/giga-wear/backend/src/main/kotlin/ru/shadowsparky/gigawear/backend/data/BackendAuthRepositoryImpl.kt index d0b9983..5416771 100644 --- a/apps/giga-wear/backend/src/main/kotlin/ru/shadowsparky/gigawear/backend/data/BackendAuthRepositoryImpl.kt +++ b/apps/giga-wear/backend/src/main/kotlin/ru/shadowsparky/gigawear/backend/data/BackendAuthRepositoryImpl.kt @@ -7,7 +7,7 @@ import ru.shadowsparky.backend.data.StringFetcher import ru.shadowsparky.backend.data.StringResource import ru.shadowsparky.backend.data.generateRefreshToken import ru.shadowsparky.backend.data.toTokenHash -import ru.shadowsparky.backend.domain.LoginVerifier +import ru.shadowsparky.backend.domain.UserVerifier import ru.shadowsparky.domain.DispatcherProvider import ru.shadowsparky.gigawear.backend.AppDatabase import ru.shadowsparky.gigawear.common.AuthRepository @@ -23,7 +23,7 @@ import kotlin.time.toJavaInstant class BackendAuthRepositoryImpl( appDatabase: AppDatabase, private val stringFetcher: StringFetcher, - private val loginVerifier: LoginVerifier, + private val userVerifier: UserVerifier, private val jwtPreparer: JwtPreparer, private val dispatcherProvider: DispatcherProvider ) : AuthRepository { @@ -34,7 +34,7 @@ class BackendAuthRepositoryImpl( val userCode = request.code val user = usersQueries.selectByCode(userCode).executeAsOneOrNull() ?: throw BadRequestException(stringFetcher.get(StringResource.UNKNOWN_USER)) - loginVerifier.verify(user.user_id) + userVerifier.verify(user.user_id) create(user.user_id) } diff --git a/apps/giga-wear/backend/src/main/kotlin/ru/shadowsparky/gigawear/backend/data/LoginVerifierImpl.kt b/apps/giga-wear/backend/src/main/kotlin/ru/shadowsparky/gigawear/backend/data/UserVerifierImpl.kt similarity index 89% rename from apps/giga-wear/backend/src/main/kotlin/ru/shadowsparky/gigawear/backend/data/LoginVerifierImpl.kt rename to apps/giga-wear/backend/src/main/kotlin/ru/shadowsparky/gigawear/backend/data/UserVerifierImpl.kt index bff2416..6a837db 100644 --- a/apps/giga-wear/backend/src/main/kotlin/ru/shadowsparky/gigawear/backend/data/LoginVerifierImpl.kt +++ b/apps/giga-wear/backend/src/main/kotlin/ru/shadowsparky/gigawear/backend/data/UserVerifierImpl.kt @@ -4,17 +4,17 @@ import kotlinx.coroutines.withContext import org.koin.core.annotation.Factory import ru.shadowsparky.backend.data.StringFetcher import ru.shadowsparky.backend.data.StringResource -import ru.shadowsparky.backend.domain.LoginVerifier +import ru.shadowsparky.backend.domain.UserVerifier import ru.shadowsparky.domain.DispatcherProvider import ru.shadowsparky.gigawear.backend.AppDatabase import ru.shadowsparky.http.domain.BadRequestException @Factory -class LoginVerifierImpl( +class UserVerifierImpl( private val appDatabase: AppDatabase, private val dispatcherProvider: DispatcherProvider, private val stringFetcher: StringFetcher -) : LoginVerifier { +) : UserVerifier { override suspend fun verify(userId: Long) { withContext(dispatcherProvider.io) { diff --git a/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/data/auth/BackendAuthTokenRepository.kt b/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/data/auth/BackendAuthTokenRepository.kt index 7e09ce0..18c8c70 100644 --- a/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/data/auth/BackendAuthTokenRepository.kt +++ b/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/data/auth/BackendAuthTokenRepository.kt @@ -7,7 +7,7 @@ import ru.shadowsparky.backend.data.JwtPreparer import ru.shadowsparky.backend.data.StringFetcher import ru.shadowsparky.backend.data.StringResource import ru.shadowsparky.backend.data.toTokenHash -import ru.shadowsparky.backend.domain.LoginVerifier +import ru.shadowsparky.backend.domain.UserVerifier import ru.shadowsparky.domain.Log import ru.shadowsparky.http.domain.BadRequestException import ru.shadowsparky.http.domain.TokenInfo @@ -26,7 +26,7 @@ class AuthTokenRepositoryFactory( private val db: AppDatabase, private val dispatcherProvider: DispatcherProvider, private val jwtPreparer: JwtPreparer, - private val loginVerifier: LoginVerifier, + private val userVerifier: UserVerifier, private val log: Log, private val stringFetcher: StringFetcher, private val envFetcher: EnvFetcher, @@ -38,7 +38,7 @@ class AuthTokenRepositoryFactory( db, dispatcherProvider, jwtPreparer, - loginVerifier, + userVerifier, userId, log, stringFetcher, @@ -52,7 +52,7 @@ class BackendAuthTokenRepository( private val db: AppDatabase, private val dispatcherProvider: DispatcherProvider, private val jwtPreparer: JwtPreparer, - private val loginVerifier: LoginVerifier, + private val userVerifier: UserVerifier, private val userId: Long, private val log: Log, private val stringFetcher: StringFetcher, @@ -132,7 +132,7 @@ class BackendAuthTokenRepository( private suspend fun create(login: String): TokenInfo = withContext(dispatcherProvider.io) { val userInfo = userInfoCache.query(login) ?: throw BadRequestException(stringFetcher.get(StringResource.UNKNOWN_USER)) - loginVerifier.verify(userInfo.userId) + userVerifier.verify(userInfo.userId) val rsp = jwtPreparer.prepare(userInfo.userId) val refresh = ByteArray(32) random.nextBytes(refresh) diff --git a/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/data/auth/BackendLoginVerifier.kt b/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/data/auth/BackendUserVerifier.kt similarity index 88% rename from apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/data/auth/BackendLoginVerifier.kt rename to apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/data/auth/BackendUserVerifier.kt index 0a7ba0f..e0b320e 100644 --- a/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/data/auth/BackendLoginVerifier.kt +++ b/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/data/auth/BackendUserVerifier.kt @@ -3,15 +3,15 @@ package ru.shadowsparky.vbox.backend.data.auth import org.koin.core.annotation.Factory import ru.shadowsparky.backend.data.StringFetcher import ru.shadowsparky.backend.data.StringResource -import ru.shadowsparky.backend.domain.LoginVerifier +import ru.shadowsparky.backend.domain.UserVerifier import ru.shadowsparky.backend.domain.VerifyTokenException import ru.shadowsparky.vbox.shared.domain.FLAG_USER_BLOCKED @Factory -class BackendLoginVerifier( +class BackendUserVerifier( private val stringFetcher: StringFetcher, private val userInfoCache: UserInfoCache -) : LoginVerifier { +) : UserVerifier { override suspend fun verify(userId: Long) { val user = userInfoCache.query(userId) ?: throw VerifyTokenException(stringFetcher.get(StringResource.UNKNOWN_USER)) diff --git a/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/di/EntryPoint.kt b/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/di/EntryPoint.kt index c699446..2b1aa0e 100644 --- a/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/di/EntryPoint.kt +++ b/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/di/EntryPoint.kt @@ -5,7 +5,7 @@ import org.koin.core.annotation.Single import ru.shadowsparky.backend.data.TokenVerifier import ru.shadowsparky.backend.data.event.SessionRegistry import ru.shadowsparky.backend.domain.JwtInfo -import ru.shadowsparky.backend.domain.LoginVerifier +import ru.shadowsparky.backend.domain.UserVerifier import ru.shadowsparky.backend.domain.RemoteEventHandler import ru.shadowsparky.chat.backend.domain.ProcessUserMessageUseCase import ru.shadowsparky.updater.backend.data.BackendUpdateFetcherFactory @@ -41,7 +41,7 @@ class WebSocketEntryPoint( @Single class AuthEntryPoint( - val loginVerifier: LoginVerifier, + val userVerifier: UserVerifier, val authTokenRepositoryFactory: AuthTokenRepositoryFactory, val jwtInfo: JwtInfo, val tokenVerifier: TokenVerifier diff --git a/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/presentation/Jwt.kt b/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/presentation/Jwt.kt index 4628e99..7ff000d 100644 --- a/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/presentation/Jwt.kt +++ b/apps/vbox/backend/src/main/kotlin/ru/shadowsparky/vbox/backend/presentation/Jwt.kt @@ -7,7 +7,7 @@ import ru.shadowsparky.backend.presentation.obtainUserId import ru.shadowsparky.vbox.backend.di.AuthEntryPoint fun Application.configureJwt(authEntryPoint: AuthEntryPoint) = with(authEntryPoint) { - configureJwt(jwtInfo, tokenVerifier, loginVerifier) + configureJwt(jwtInfo, tokenVerifier, userVerifier) } fun ApplicationCall.obtainUserId(): Long { diff --git a/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/data/TokenVerifier.kt b/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/data/TokenVerifier.kt index 813434e..a2fe638 100644 --- a/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/data/TokenVerifier.kt +++ b/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/data/TokenVerifier.kt @@ -6,13 +6,13 @@ import com.auth0.jwt.algorithms.Algorithm import com.auth0.jwt.interfaces.DecodedJWT import org.koin.core.annotation.Factory import ru.shadowsparky.backend.domain.JwtInfo -import ru.shadowsparky.backend.domain.LoginVerifier +import ru.shadowsparky.backend.domain.UserVerifier import ru.shadowsparky.backend.domain.USER_ID_ARG @Factory class TokenVerifier( private val jwtInfo: JwtInfo, - private val loginVerifier: LoginVerifier + private val userVerifier: UserVerifier ) { val verifier: JWTVerifier = JWT.require(Algorithm.HMAC512(jwtInfo.secret)) @@ -22,7 +22,7 @@ class TokenVerifier( suspend fun verify(token: String): DecodedJWT { val jwt = verifier.verify(token) - loginVerifier.verify(jwt.getClaim(USER_ID_ARG).asLong()) + userVerifier.verify(jwt.getClaim(USER_ID_ARG).asLong()) return jwt } } diff --git a/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/domain/LoginVerifier.kt b/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/domain/UserVerifier.kt similarity index 90% rename from libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/domain/LoginVerifier.kt rename to libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/domain/UserVerifier.kt index 1141878..f4347b6 100644 --- a/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/domain/LoginVerifier.kt +++ b/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/domain/UserVerifier.kt @@ -1,6 +1,6 @@ package ru.shadowsparky.backend.domain -interface LoginVerifier { +interface UserVerifier { suspend fun verify(userId: Long) } diff --git a/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/presentation/KtorExtensions.kt b/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/presentation/KtorExtensions.kt index d7918f1..cd4377a 100644 --- a/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/presentation/KtorExtensions.kt +++ b/libs/backend-base/src/main/kotlin/ru/shadowsparky/backend/presentation/KtorExtensions.kt @@ -16,7 +16,7 @@ import ru.shadowsparky.backend.data.TokenVerifier import ru.shadowsparky.backend.domain.ExceptionInfo import ru.shadowsparky.backend.domain.INVALID_TOKEN_MSG import ru.shadowsparky.backend.domain.JwtInfo -import ru.shadowsparky.backend.domain.LoginVerifier +import ru.shadowsparky.backend.domain.UserVerifier import ru.shadowsparky.backend.domain.USER_ID_ARG import ru.shadowsparky.backend.domain.VerifyTokenException import ru.shadowsparky.http.domain.HttpException @@ -36,7 +36,7 @@ fun ApplicationCall.obtainUserId(): Long { fun Application.configureJwt( jwtInfo: JwtInfo, tokenVerifier: TokenVerifier, - loginVerifier: LoginVerifier + userVerifier: UserVerifier ) { install(Authentication) { jwt(AUTH_JWT_NAME) { @@ -46,7 +46,7 @@ fun Application.configureJwt( val userId = credential.payload.getClaim(USER_ID_ARG).asLong() try { if (userId != null) { - loginVerifier.verify(userId) + userVerifier.verify(userId) if (credential.payload.expiresAt == null) { throw VerifyTokenException("Static tokens not supported!") }