From d812b1cc5f6bf2992c09abd564dea3c3e3368a5d Mon Sep 17 00:00:00 2001 From: fatemeh imanipour Date: Sat, 9 May 2026 16:17:00 +0330 Subject: [PATCH 1/4] Add interceptors dependency to all related modules --- accountant/accountant-app/pom.xml | 4 ++++ accountant/pom.xml | 5 +++++ auth-gateway/auth-gateway-app/pom.xml | 4 ++++ bc-gateway/bc-gateway-app/pom.xml | 8 ++++++++ device-management/device-management-app/pom.xml | 4 ++++ device-management/pom.xml | 5 +++++ docker-compose.yml | 4 ++-- matching-gateway/matching-gateway-app/pom.xml | 4 ++++ otp/otp-app/pom.xml | 4 ++++ profile/pom.xml | 5 +++++ profile/profile-app/pom.xml | 4 ++++ user-management/pom.xml | 5 +++++ 12 files changed, 54 insertions(+), 2 deletions(-) diff --git a/accountant/accountant-app/pom.xml b/accountant/accountant-app/pom.xml index 67649ff75..f56aee06a 100644 --- a/accountant/accountant-app/pom.xml +++ b/accountant/accountant-app/pom.xml @@ -51,6 +51,10 @@ co.nilin.opex.utility error-handler + + co.nilin.opex.utility + interceptors + org.springframework.cloud spring-cloud-starter-vault-config diff --git a/accountant/pom.xml b/accountant/pom.xml index 6eded39f6..edce57a88 100644 --- a/accountant/pom.xml +++ b/accountant/pom.xml @@ -82,6 +82,11 @@ error-handler ${error-hanlder.version} + + co.nilin.opex.utility + interceptors + ${interceptor.version} + org.springframework.cloud spring-cloud-dependencies diff --git a/auth-gateway/auth-gateway-app/pom.xml b/auth-gateway/auth-gateway-app/pom.xml index 0d31ffddd..0ff3a5ade 100644 --- a/auth-gateway/auth-gateway-app/pom.xml +++ b/auth-gateway/auth-gateway-app/pom.xml @@ -80,6 +80,10 @@ co.nilin.opex.utility error-handler + + co.nilin.opex.utility + interceptors + com.auth0 java-jwt diff --git a/bc-gateway/bc-gateway-app/pom.xml b/bc-gateway/bc-gateway-app/pom.xml index 2bdccb667..0046a178b 100644 --- a/bc-gateway/bc-gateway-app/pom.xml +++ b/bc-gateway/bc-gateway-app/pom.xml @@ -138,6 +138,14 @@ micrometer-registry-prometheus runtime + + co.nilin.opex.utility + interceptors + + + co.nilin.opex.utility + error-handler + diff --git a/device-management/device-management-app/pom.xml b/device-management/device-management-app/pom.xml index 82e41ff4e..ff9b70048 100644 --- a/device-management/device-management-app/pom.xml +++ b/device-management/device-management-app/pom.xml @@ -78,6 +78,10 @@ co.nilin.opex.utility error-handler + + co.nilin.opex.utility + interceptors + com.zaxxer HikariCP diff --git a/device-management/pom.xml b/device-management/pom.xml index d24596637..4800bfa7c 100644 --- a/device-management/pom.xml +++ b/device-management/pom.xml @@ -56,6 +56,11 @@ error-handler ${error-hanlder.version} + + co.nilin.opex.utility + interceptors + ${interceptor.version} + co.nilin.opex.device-management device-management-core diff --git a/docker-compose.yml b/docker-compose.yml index 63535e6e2..b9078536e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -546,8 +546,8 @@ services: - SMTP_USER=${SMTP_USER} - SMTP_PASS=${SMTP_PASS} - SMTP_FROM=${SMTP_FROM} - - SMTP_SOCKS_HOST=${SMTP_SOCKS_HOST} - - SMTP_SOCKS_PORT=${SMTP_SOCKS_PORT} + - SMTP_PROXY_HOST=${SMTP_PROXY_HOST} + - SMTP_PROXY_PORT=${SMTP_PROXY_PORT} - SMTP_PROXY_ENABLED=${SMTP_PROXY_ENABLED} - TOKEN_ISSUER_URL=${KC_ISSUER_URL} - OTP_CODE_RESPONSE_ENABLED=${OTP_CODE_RESPONSE_ENABLED} diff --git a/matching-gateway/matching-gateway-app/pom.xml b/matching-gateway/matching-gateway-app/pom.xml index 24e94ab58..86d029320 100644 --- a/matching-gateway/matching-gateway-app/pom.xml +++ b/matching-gateway/matching-gateway-app/pom.xml @@ -77,6 +77,10 @@ co.nilin.opex.utility error-handler + + co.nilin.opex.utility + interceptors + io.mockk mockk diff --git a/otp/otp-app/pom.xml b/otp/otp-app/pom.xml index 1d3d72124..49cb4f0c0 100644 --- a/otp/otp-app/pom.xml +++ b/otp/otp-app/pom.xml @@ -87,6 +87,10 @@ co.nilin.opex.utility error-handler + + co.nilin.opex.utility + interceptors + io.mockk mockk diff --git a/profile/pom.xml b/profile/pom.xml index 7ac615097..ffd3ab564 100644 --- a/profile/pom.xml +++ b/profile/pom.xml @@ -66,6 +66,11 @@ logging-handler ${logging-handler.version} + + co.nilin.opex.utility + error-handler + ${error-hanlder.version} + co.nilin.opex.utility interceptors diff --git a/profile/profile-app/pom.xml b/profile/profile-app/pom.xml index 685459a22..2b2412044 100644 --- a/profile/profile-app/pom.xml +++ b/profile/profile-app/pom.xml @@ -98,6 +98,10 @@ org.springframework.cloud spring-cloud-starter-vault-config + + co.nilin.opex.utility + error-handler + co.nilin.opex.utility interceptors diff --git a/user-management/pom.xml b/user-management/pom.xml index 0c0b0c5a4..fbb1146c0 100644 --- a/user-management/pom.xml +++ b/user-management/pom.xml @@ -49,6 +49,11 @@ error-handler ${error-hanlder.version} + + co.nilin.opex.utility + interceptors + ${interceptor.version} + co.nilin.opex.auth user-management-core From b0f7d72e7cfae22e93181f1522d05700965bdf14 Mon Sep 17 00:00:00 2001 From: Amir Rajabi Date: Mon, 1 Jun 2026 18:47:14 +0330 Subject: [PATCH 2/4] improve external deposit service --- common/src/main/kotlin/co/nilin/opex/common/OpexError.kt | 1 + .../kotlin/co/nilin/opex/wallet/app/config/SecurityConfig.kt | 1 + .../kotlin/co/nilin/opex/wallet/app/service/DepositService.kt | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/common/src/main/kotlin/co/nilin/opex/common/OpexError.kt b/common/src/main/kotlin/co/nilin/opex/common/OpexError.kt index 4142b1c5e..6edb3ba9d 100644 --- a/common/src/main/kotlin/co/nilin/opex/common/OpexError.kt +++ b/common/src/main/kotlin/co/nilin/opex/common/OpexError.kt @@ -117,6 +117,7 @@ enum class OpexError(val code: Int, val message: String?, val status: HttpStatus ForbiddenSwapPair(6052, null, HttpStatus.BAD_REQUEST), TerminalLocalizationNotFound(6053, "Terminal localization not found", HttpStatus.NOT_FOUND), CurrencyLocalizationNotFound(6051, "Currency localization not found", HttpStatus.NOT_FOUND), + IdentifierNotFound(6052, "Identifier not found", HttpStatus.NOT_FOUND), // code 7000: api diff --git a/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/config/SecurityConfig.kt b/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/config/SecurityConfig.kt index e10790d8d..f8248c9d9 100644 --- a/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/config/SecurityConfig.kt +++ b/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/config/SecurityConfig.kt @@ -95,6 +95,7 @@ class SecurityConfig(private val webClient: WebClient) { http.csrf().disable() .authorizeExchange() // .pathMatchers("/transaction/**").hasAuthority("SCOPE_trust") + .pathMatchers("/v1/deposit/webhook").permitAll() .pathMatchers("/admin/**").hasRoleAndLevel("Admin") .pathMatchers(HttpMethod.PUT, "/otc/**").hasRoleAndLevel("Admin") .pathMatchers(HttpMethod.POST, "/otc/**").hasRoleAndLevel("Admin") diff --git a/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/service/DepositService.kt b/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/service/DepositService.kt index d6b7ccc45..bd88bc539 100644 --- a/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/service/DepositService.kt +++ b/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/service/DepositService.kt @@ -33,7 +33,7 @@ class DepositService( ) { private val logger = LoggerFactory.getLogger(DepositService::class.java) - + // ------------------------------------------------------------------------- // Helpers (NO LOGIC CHANGE) // ------------------------------------------------------------------------- @@ -121,7 +121,7 @@ class DepositService( ) val receiverUuid = walletOwnerManager.findWalletOwnerByExternalIdentifier(request.externalIdentifier)?.uuid - ?: throw OpexError.BadRequest.exception("Identifier ${request.externalIdentifier} not fount") + ?: throw OpexError.IdentifierNotFound.exception("Identifier ${request.externalIdentifier} not found") with(request) { deposit( From 5e1b970b23f2cf6c98cb6d0f33b5dd60bcc941de Mon Sep 17 00:00:00 2001 From: fatemeh imanipour Date: Tue, 2 Jun 2026 15:38:34 +0330 Subject: [PATCH 3/4] Add BANK_DEPOSIT to cover account and sheba deposits --- .../kotlin/co/nilin/opex/api/core/inout/TransferMethod.kt | 2 +- .../kotlin/co/nilin/opex/wallet/app/service/DepositService.kt | 4 ++-- .../kotlin/co/nilin/opex/wallet/core/inout/TransferMethod.kt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/api-core/src/main/kotlin/co/nilin/opex/api/core/inout/TransferMethod.kt b/api/api-core/src/main/kotlin/co/nilin/opex/api/core/inout/TransferMethod.kt index 477927f16..3cfd6a8a3 100644 --- a/api/api-core/src/main/kotlin/co/nilin/opex/api/core/inout/TransferMethod.kt +++ b/api/api-core/src/main/kotlin/co/nilin/opex/api/core/inout/TransferMethod.kt @@ -1,5 +1,5 @@ package co.nilin.opex.api.core.inout enum class TransferMethod { - CARD, SHEBA, IPG, EXCHANGE , MANUALLY , VOUCHER, MPG , REWARD + CARD, SHEBA, IPG, EXCHANGE , MANUALLY , VOUCHER, MPG , REWARD, BANK_DEPOSIT, ACCOUNT } diff --git a/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/service/DepositService.kt b/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/service/DepositService.kt index bd88bc539..bc056b6f9 100644 --- a/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/service/DepositService.kt +++ b/wallet/wallet-app/src/main/kotlin/co/nilin/opex/wallet/app/service/DepositService.kt @@ -122,7 +122,7 @@ class DepositService( val receiverUuid = walletOwnerManager.findWalletOwnerByExternalIdentifier(request.externalIdentifier)?.uuid ?: throw OpexError.IdentifierNotFound.exception("Identifier ${request.externalIdentifier} not found") - + //todo to have meaningful transfer labels in deposits section we have added BANK_DEPOSIT to cover sheba and account transfers in this service with(request) { deposit( symbol = symbol, @@ -136,7 +136,7 @@ class DepositService( attachment = null, depositType = DepositType.OFF_CHAIN, gatewayUuid = null, - transferMethod = TransferMethod.SHEBA, + transferMethod = TransferMethod.BANK_DEPOSIT, persistInvalidDeposit = false ) } diff --git a/wallet/wallet-core/src/main/kotlin/co/nilin/opex/wallet/core/inout/TransferMethod.kt b/wallet/wallet-core/src/main/kotlin/co/nilin/opex/wallet/core/inout/TransferMethod.kt index 30fceb6d2..fc4d3082a 100644 --- a/wallet/wallet-core/src/main/kotlin/co/nilin/opex/wallet/core/inout/TransferMethod.kt +++ b/wallet/wallet-core/src/main/kotlin/co/nilin/opex/wallet/core/inout/TransferMethod.kt @@ -1,5 +1,5 @@ package co.nilin.opex.wallet.core.inout enum class TransferMethod { - CARD, SHEBA, IPG, EXCHANGE , MANUALLY , VOUCHER, MPG , REWARD + CARD, SHEBA, IPG, EXCHANGE , MANUALLY , VOUCHER, MPG , REWARD, BANK_DEPOSIT, ACCOUNT } From b8b745c88566bbc9c9291531d9e27c1b2594b127 Mon Sep 17 00:00:00 2001 From: fatemeh imanipour Date: Tue, 2 Jun 2026 21:17:46 +0330 Subject: [PATCH 4/4] Fetch withdrawAllowed and depositAllowed fields from the db --- .../wallet/ports/postgres/dao/OffChainGatewayRepository.kt | 2 ++ .../opex/wallet/ports/postgres/dto/OffChainGatewayView.kt | 3 ++- .../opex/wallet/ports/postgres/impl/CurrencyServiceImpl.kt | 0 3 files changed, 4 insertions(+), 1 deletion(-) delete mode 100644 wallet/wallet-ports/wallet-persister-postgres/src/main/kotlin/co/nilin/opex/wallet/ports/postgres/impl/CurrencyServiceImpl.kt diff --git a/wallet/wallet-ports/wallet-persister-postgres/src/main/kotlin/co/nilin/opex/wallet/ports/postgres/dao/OffChainGatewayRepository.kt b/wallet/wallet-ports/wallet-persister-postgres/src/main/kotlin/co/nilin/opex/wallet/ports/postgres/dao/OffChainGatewayRepository.kt index 8df546227..a3692e6b7 100644 --- a/wallet/wallet-ports/wallet-persister-postgres/src/main/kotlin/co/nilin/opex/wallet/ports/postgres/dao/OffChainGatewayRepository.kt +++ b/wallet/wallet-ports/wallet-persister-postgres/src/main/kotlin/co/nilin/opex/wallet/ports/postgres/dao/OffChainGatewayRepository.kt @@ -18,6 +18,7 @@ interface OffChainGatewayRepository : ReactiveCrudRepository