diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 424e109..dbb1a95 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,4 +1,4 @@
-name: Build Maven Artifact
+name: Maven Build Artifact
on:
pull_request:
@@ -7,4 +7,4 @@ on:
jobs:
build:
- uses: valitydev/java-workflow/.github/workflows/maven-service-build.yml@v2
+ uses: valitydev/java-workflow/.github/workflows/maven-service-build.yml@v3
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 911ca7a..ad9f60e 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -4,12 +4,13 @@ on:
push:
branches:
- 'master'
- - 'main'
- - 'epic/**'
+ - 'ft/up-woody'
jobs:
build-and-deploy:
- uses: valitydev/java-workflow/.github/workflows/maven-service-deploy.yml@v2
+ uses: valitydev/java-workflow/.github/workflows/maven-service-deploy.yml@v3
+ with:
+ ignore-coverage: true
secrets:
github-token: ${{ secrets.GITHUB_TOKEN }}
mm-webhook-url: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
diff --git a/pom.xml b/pom.xml
index 9aa9b99..b13588b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
dev.vality
service-parent-pom
- 2.1.5
+ 3.1.7
proxy-mocketbank
@@ -24,7 +24,6 @@
mocketbank
${server.port} ${server.rest.port} ${management.port}
UTF-8
- 1.64-74a763b
1.16-b0d5cf2
@@ -80,17 +79,25 @@
commons-text
1.10.0
+
+ jakarta.servlet
+ jakarta.servlet-api
+
+
+ com.github.javafaker
+ javafaker
+ 1.0.2
+
dev.vality
damsel
- 1.597-bfedcb9
dev.vality
cds-proto
- 1.66-01353ce
+ 1.71-b3db02c
dev.vality
@@ -109,7 +116,7 @@
dev.vality
adapter-common-lib
- 1.2.13
+ 3.0.0
dev.vality
diff --git a/src/main/java/dev/vality/proxy/mocketbank/configuration/RestClientConfig.java b/src/main/java/dev/vality/proxy/mocketbank/configuration/RestClientConfig.java
new file mode 100644
index 0000000..66bcdaf
--- /dev/null
+++ b/src/main/java/dev/vality/proxy/mocketbank/configuration/RestClientConfig.java
@@ -0,0 +1,89 @@
+package dev.vality.proxy.mocketbank.configuration;
+
+import dev.vality.proxy.mocketbank.configuration.properties.RestTemplateProperties;
+import lombok.RequiredArgsConstructor;
+import org.apache.hc.client5.http.classic.HttpClient;
+import org.apache.hc.client5.http.config.ConnectionConfig;
+import org.apache.hc.client5.http.config.RequestConfig;
+import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
+import org.apache.hc.client5.http.impl.classic.HttpClients;
+import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
+import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder;
+import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
+import org.apache.hc.core5.http.io.SocketConfig;
+import org.apache.hc.core5.util.Timeout;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.client.ClientHttpRequestFactory;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+import org.springframework.web.client.RestClient;
+
+import javax.net.ssl.SSLContext;
+import java.security.NoSuchAlgorithmException;
+import java.util.concurrent.TimeUnit;
+
+@RequiredArgsConstructor
+@Configuration
+public class RestClientConfig {
+
+ private final RestTemplateProperties httpProperties;
+
+ @Bean
+ public RestClient restClient(ClientHttpRequestFactory requestFactory) {
+ return RestClient.builder()
+ .requestFactory(requestFactory)
+ .build();
+ }
+
+ @Bean
+ public HttpComponentsClientHttpRequestFactory requestFactory(HttpClient httpClient) {
+ final var requestFactory = new HttpComponentsClientHttpRequestFactory();
+ requestFactory.setHttpClient(httpClient);
+ return requestFactory;
+ }
+
+ @Bean
+ public SSLContext sslContext() throws NoSuchAlgorithmException {
+ return SSLContext.getDefault();
+ }
+
+ @Bean
+ public PoolingHttpClientConnectionManager connectionManager(SSLContext sslContext) {
+ return PoolingHttpClientConnectionManagerBuilder.create()
+ .setTlsSocketStrategy(
+ DefaultClientTlsStrategy.createDefault()
+ )
+ .setDefaultSocketConfig(
+ SocketConfig.custom()
+ .setSoTimeout(Timeout.ofMilliseconds(httpProperties.getRequestTimeout()))
+ .build()
+ )
+ .setDefaultConnectionConfig(
+ ConnectionConfig.custom()
+ .setConnectTimeout(Timeout.ofMilliseconds(httpProperties.getConnectionTimeout()))
+ .build()
+ )
+ .setMaxConnTotal(httpProperties.getMaxTotalPooling())
+ .setMaxConnPerRoute(httpProperties.getDefaultMaxPerRoute())
+ .build();
+ }
+
+ @Bean
+ public RequestConfig requestConfig() {
+ return RequestConfig.custom()
+ .setConnectionRequestTimeout(httpProperties.getRequestTimeout(), TimeUnit.MILLISECONDS)
+ .setResponseTimeout(httpProperties.getConnectionTimeout(), TimeUnit.MILLISECONDS)
+ .build();
+ }
+
+ @Bean
+ public CloseableHttpClient httpClient(PoolingHttpClientConnectionManager connectionManager,
+ RequestConfig requestConfig) {
+ return HttpClients.custom()
+ .setConnectionManager(connectionManager)
+ .setDefaultRequestConfig(requestConfig)
+ .disableAutomaticRetries()
+ .setConnectionManagerShared(true)
+ .build();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/dev/vality/proxy/mocketbank/configuration/RestTemplateConfiguration.java b/src/main/java/dev/vality/proxy/mocketbank/configuration/RestTemplateConfiguration.java
deleted file mode 100644
index 05c5b6d..0000000
--- a/src/main/java/dev/vality/proxy/mocketbank/configuration/RestTemplateConfiguration.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package dev.vality.proxy.mocketbank.configuration;
-
-import dev.vality.proxy.mocketbank.configuration.properties.RestTemplateProperties;
-import lombok.RequiredArgsConstructor;
-import org.apache.http.client.config.RequestConfig;
-import org.apache.http.conn.ssl.NoopHostnameVerifier;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
-import org.apache.http.ssl.SSLContextBuilder;
-import org.springframework.boot.actuate.metrics.web.client.MetricsRestTemplateCustomizer;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.boot.web.client.RestTemplateBuilder;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.StringHttpMessageConverter;
-import org.springframework.web.client.DefaultResponseErrorHandler;
-import org.springframework.web.client.RestTemplate;
-
-import javax.net.ssl.SSLContext;
-import java.security.KeyManagementException;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.time.Duration;
-
-@Configuration
-@RequiredArgsConstructor
-@EnableConfigurationProperties({RestTemplateProperties.class})
-public class RestTemplateConfiguration {
-
- private final RestTemplateProperties restTemplateProperties;
-
- @Bean
- public PoolingHttpClientConnectionManager poolingHttpClientConnectionManager() {
- PoolingHttpClientConnectionManager result = new PoolingHttpClientConnectionManager();
- result.setMaxTotal(restTemplateProperties.getMaxTotalPooling());
- result.setDefaultMaxPerRoute(restTemplateProperties.getDefaultMaxPerRoute());
- return result;
- }
-
- @Bean
- public RequestConfig requestConfig() {
- return RequestConfig.custom()
- .setConnectionRequestTimeout(restTemplateProperties.getPoolTimeout())
- .setConnectTimeout(restTemplateProperties.getConnectionTimeout())
- .setSocketTimeout(restTemplateProperties.getRequestTimeout())
- .build();
- }
-
- @Bean
- public SSLContext sslContext() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
- return new SSLContextBuilder()
- .loadTrustMaterial(null, (x509Certificates, s) -> true)
- .build();
- }
-
- @Bean
- public CloseableHttpClient httpClient(
- PoolingHttpClientConnectionManager manager,
- RequestConfig requestConfig,
- SSLContext sslContext) {
- return HttpClients.custom()
- .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
- .setSSLContext(sslContext)
- .setConnectionManager(manager)
- .setDefaultRequestConfig(requestConfig)
- .disableAutomaticRetries()
- .setConnectionManagerShared(true)
- .build();
- }
-
- @Bean
- public HttpComponentsClientHttpRequestFactory requestFactory(CloseableHttpClient httpClient) {
- HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
- requestFactory.setHttpClient(httpClient);
- return requestFactory;
- }
-
- @Bean
- public RestTemplateBuilder restTemplateBuilder(
- HttpComponentsClientHttpRequestFactory requestFactory,
- MetricsRestTemplateCustomizer metricsRestTemplateCustomizer
- ) {
- return new RestTemplateBuilder()
- .requestFactory(() -> requestFactory)
- .additionalCustomizers(metricsRestTemplateCustomizer);
- }
-
- @Bean
- public RestTemplate createRestTemplate(RestTemplateBuilder restTemplateBuilder) {
- RestTemplate restTemplate = restTemplateBuilder
- .setConnectTimeout(Duration.ofMillis(restTemplateProperties.getConnectionTimeout()))
- .setReadTimeout(Duration.ofMillis(restTemplateProperties.getRequestTimeout()))
- .build();
- restTemplate.setErrorHandler(getDefaultResponseErrorHandler());
- setMessageConverter(restTemplate);
- return restTemplate;
- }
-
- private void setMessageConverter(RestTemplate restTemplate) {
- for (HttpMessageConverter converter : restTemplate.getMessageConverters()) {
- if (converter instanceof StringHttpMessageConverter) {
- ((StringHttpMessageConverter) converter).setWriteAcceptCharset(false);
- }
- }
- }
-
- private DefaultResponseErrorHandler getDefaultResponseErrorHandler() {
- return new DefaultResponseErrorHandler() {
- @Override
- protected boolean hasError(HttpStatus statusCode) {
- return false;
- }
- };
- }
-
-}
diff --git a/src/main/java/dev/vality/proxy/mocketbank/configuration/TomcatEmbeddedConfiguration.java b/src/main/java/dev/vality/proxy/mocketbank/configuration/TomcatEmbeddedConfiguration.java
index d74d1e3..d73ba7f 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/configuration/TomcatEmbeddedConfiguration.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/configuration/TomcatEmbeddedConfiguration.java
@@ -10,11 +10,11 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.OncePerRequestFilter;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@Configuration
diff --git a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/AdapterMockBankProperties.java b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/AdapterMockBankProperties.java
index df34e9c..a46658f 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/AdapterMockBankProperties.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/AdapterMockBankProperties.java
@@ -6,7 +6,7 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.annotation.Validated;
-import javax.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotEmpty;
@Getter
@Setter
diff --git a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/AdapterMockMpiProperties.java b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/AdapterMockMpiProperties.java
index fb69e30..b090bff 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/AdapterMockMpiProperties.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/AdapterMockMpiProperties.java
@@ -6,7 +6,7 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.annotation.Validated;
-import javax.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotEmpty;
@Getter
@Setter
diff --git a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/CdsClientStorageProperties.java b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/CdsClientStorageProperties.java
index a5149b8..ddfa570 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/CdsClientStorageProperties.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/CdsClientStorageProperties.java
@@ -7,7 +7,7 @@
import org.springframework.core.io.Resource;
import org.springframework.validation.annotation.Validated;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Configuration
@ConfigurationProperties(prefix = "cds.client.storage")
diff --git a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/HellgateClientStorageProperties.java b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/HellgateClientStorageProperties.java
index b7f1b7c..9669207 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/HellgateClientStorageProperties.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/HellgateClientStorageProperties.java
@@ -7,7 +7,7 @@
import org.springframework.core.io.Resource;
import org.springframework.validation.annotation.Validated;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Configuration
@ConfigurationProperties(prefix = "hellgate.client.storage")
diff --git a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/RestTemplateProperties.java b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/RestTemplateProperties.java
index 6d6e6af..789aaca 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/RestTemplateProperties.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/RestTemplateProperties.java
@@ -6,7 +6,7 @@
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Getter
@Setter
diff --git a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/TimerProperties.java b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/TimerProperties.java
index e60ee52..d6fabcd 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/TimerProperties.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/configuration/properties/TimerProperties.java
@@ -6,7 +6,7 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.validation.annotation.Validated;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Getter
@Setter
diff --git a/src/main/java/dev/vality/proxy/mocketbank/controller/MocketBankController.java b/src/main/java/dev/vality/proxy/mocketbank/controller/MocketBankController.java
index d75e98d..44996ad 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/controller/MocketBankController.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/controller/MocketBankController.java
@@ -18,8 +18,8 @@
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLDecoder;
import java.nio.ByteBuffer;
@@ -61,26 +61,6 @@ public String receiveIncomingParameters(
return resp;
}
- @RequestMapping(value = "/rec_term_url", method = RequestMethod.POST)
- public String receiveRecurrentIncomingParameters(
- HttpServletRequest request,
- HttpServletResponse servletResponse) throws IOException {
- String tag = getTag(request);
- log.info("ReceiveRecurrentIncomingParameters with tag {}, info {}", tag, httpServletRequestToString(request));
- String resp = EMPTY_STRING;
- try {
- ByteBuffer callback = prepareCallbackParams(request);
- ByteBuffer response = hellgateClient.processRecurrentTokenCallback(tag, callback);
- resp = new String(response.array(), StandardCharsets.UTF_8);
- } catch (HellgateException e) {
- log.warn("Failed handle callback for recurrent", e);
- } catch (Exception e) {
- log.error("Failed handle callback for recurrent", e);
- }
- sendRedirect(request, servletResponse);
- return resp;
- }
-
@RequestMapping(value = "three_ds_method_notification", method = RequestMethod.POST)
public String mpi20ThreeDsMethodNotification(HttpServletRequest servletRequest,
HttpServletResponse servletResponse) throws IOException {
diff --git a/src/main/java/dev/vality/proxy/mocketbank/decorator/DigitalWalletServerHandlerLog.java b/src/main/java/dev/vality/proxy/mocketbank/decorator/DigitalWalletServerHandlerLog.java
index 4f913aa..a1aecd4 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/decorator/DigitalWalletServerHandlerLog.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/decorator/DigitalWalletServerHandlerLog.java
@@ -15,32 +15,6 @@ public class DigitalWalletServerHandlerLog implements ProviderProxySrv.Iface {
private final ProviderProxySrv.Iface handler;
- @Override
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext context) throws TException {
- String recurrentId = ProxyProviderPackageExtractors.extractRecurrentId(context);
- log.info("GenerateToken started with recurrentId={}", recurrentId);
- try {
- RecurrentTokenProxyResult proxyResult = handler.generateToken(context);
- log.info("GenerateToken finished {} with recurrentId={}", proxyResult, recurrentId);
- return proxyResult;
- } catch (Exception ex) {
- String message = String.format("Failed handle GenerateToken with recurrentId=%s", recurrentId);
- ServerHandlerLogUtils.logMessage(ex, message, this.getClass());
- throw ex;
- }
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(
- ByteBuffer byteBuffer,
- RecurrentTokenContext context) throws TException {
- String recurrentId = ProxyProviderPackageExtractors.extractRecurrentId(context);
- log.info("HandleRecurrentTokenCallback: start with recurrentId={}", recurrentId);
- RecurrentTokenCallbackResult result = handler.handleRecurrentTokenCallback(byteBuffer, context);
- log.info("HandleRecurrentTokenCallback end {} with recurrentId={}", result, recurrentId);
- return result;
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext context) throws TException {
String invoiceId = ProxyProviderPackageExtractors.extractInvoiceId(context);
diff --git a/src/main/java/dev/vality/proxy/mocketbank/decorator/MobileServerHandlerLog.java b/src/main/java/dev/vality/proxy/mocketbank/decorator/MobileServerHandlerLog.java
index 546fd84..f06bffa 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/decorator/MobileServerHandlerLog.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/decorator/MobileServerHandlerLog.java
@@ -15,32 +15,6 @@ public class MobileServerHandlerLog implements ProviderProxySrv.Iface {
private final ProviderProxySrv.Iface handler;
- @Override
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext context) throws TException {
- String recurrentId = ProxyProviderPackageExtractors.extractRecurrentId(context);
- log.info("GenerateToken started with recurrentId={}", recurrentId);
- try {
- RecurrentTokenProxyResult proxyResult = handler.generateToken(context);
- log.info("GenerateToken finished {} with recurrentId={}", proxyResult, recurrentId);
- return proxyResult;
- } catch (Exception ex) {
- String message = String.format("Failed handle GenerateToken with recurrentId=%s", recurrentId);
- ServerHandlerLogUtils.logMessage(ex, message, this.getClass());
- throw ex;
- }
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(
- ByteBuffer byteBuffer,
- RecurrentTokenContext context) throws TException {
- String recurrentId = ProxyProviderPackageExtractors.extractRecurrentId(context);
- log.info("HandleRecurrentTokenCallback: start with recurrentId={}", recurrentId);
- RecurrentTokenCallbackResult result = handler.handleRecurrentTokenCallback(byteBuffer, context);
- log.info("HandleRecurrentTokenCallback end {} with recurrentId={}", result, recurrentId);
- return result;
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext context) throws TException {
String invoiceId = ProxyProviderPackageExtractors.extractInvoiceId(context);
diff --git a/src/main/java/dev/vality/proxy/mocketbank/decorator/PaymentServerHandlerLog.java b/src/main/java/dev/vality/proxy/mocketbank/decorator/PaymentServerHandlerLog.java
index 5251ecb..9f1fcba 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/decorator/PaymentServerHandlerLog.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/decorator/PaymentServerHandlerLog.java
@@ -15,32 +15,6 @@ public class PaymentServerHandlerLog implements ProviderProxySrv.Iface {
private final ProviderProxySrv.Iface handler;
- @Override
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext context) throws TException {
- String recurrentId = ProxyProviderPackageExtractors.extractRecurrentId(context);
- log.info("GenerateToken started with recurrentId={}", recurrentId);
- try {
- RecurrentTokenProxyResult proxyResult = handler.generateToken(context);
- log.info("GenerateToken finished {} with recurrentId={}", proxyResult, recurrentId);
- return proxyResult;
- } catch (Exception ex) {
- String message = String.format("Failed handle GenerateToken with recurrentId=%s", recurrentId);
- ServerHandlerLogUtils.logMessage(ex, message, this.getClass());
- throw ex;
- }
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(
- ByteBuffer byteBuffer,
- RecurrentTokenContext context) throws TException {
- String recurrentId = ProxyProviderPackageExtractors.extractRecurrentId(context);
- log.info("HandleRecurrentTokenCallback: start with recurrentId={}", recurrentId);
- RecurrentTokenCallbackResult result = handler.handleRecurrentTokenCallback(byteBuffer, context);
- log.info("HandleRecurrentTokenCallback end {} with recurrentId={}", result, recurrentId);
- return result;
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext context) throws TException {
String invoiceId = ProxyProviderPackageExtractors.extractInvoiceId(context);
diff --git a/src/main/java/dev/vality/proxy/mocketbank/decorator/PaymentServerHandlerMdcLog.java b/src/main/java/dev/vality/proxy/mocketbank/decorator/PaymentServerHandlerMdcLog.java
index e3d20bb..7ba6db3 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/decorator/PaymentServerHandlerMdcLog.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/decorator/PaymentServerHandlerMdcLog.java
@@ -27,18 +27,6 @@ private void mdcRemove() {
MDC.remove("paymentId");
}
- @Override
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext context) throws TException {
- return handler.generateToken(context);
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(
- ByteBuffer callback,
- RecurrentTokenContext context) throws TException {
- return handler.handleRecurrentTokenCallback(callback, context);
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext context) throws TException {
mdcPut(context);
diff --git a/src/main/java/dev/vality/proxy/mocketbank/decorator/TerminalServerHandlerLog.java b/src/main/java/dev/vality/proxy/mocketbank/decorator/TerminalServerHandlerLog.java
index ac02f6f..f429547 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/decorator/TerminalServerHandlerLog.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/decorator/TerminalServerHandlerLog.java
@@ -15,32 +15,6 @@ public class TerminalServerHandlerLog implements ProviderProxySrv.Iface {
private final ProviderProxySrv.Iface handler;
- @Override
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext context) throws TException {
- String recurrentId = ProxyProviderPackageExtractors.extractRecurrentId(context);
- log.info("GenerateToken started with recurrentId={}", recurrentId);
- try {
- RecurrentTokenProxyResult proxyResult = handler.generateToken(context);
- log.info("GenerateToken finished {} with recurrentId={}", proxyResult, recurrentId);
- return proxyResult;
- } catch (Exception ex) {
- String message = String.format("Failed handle GenerateToken with recurrentId=%s", recurrentId);
- ServerHandlerLogUtils.logMessage(ex, message, this.getClass());
- throw ex;
- }
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(
- ByteBuffer byteBuffer,
- RecurrentTokenContext context) throws TException {
- String recurrentId = ProxyProviderPackageExtractors.extractRecurrentId(context);
- log.info("HandleRecurrentTokenCallback: start with recurrentId={}", recurrentId);
- RecurrentTokenCallbackResult result = handler.handleRecurrentTokenCallback(byteBuffer, context);
- log.info("HandleRecurrentTokenCallback end {} with recurrentId={}", result, recurrentId);
- return result;
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext context) throws TException {
String invoiceId = ProxyProviderPackageExtractors.extractInvoiceId(context);
diff --git a/src/main/java/dev/vality/proxy/mocketbank/handler/digital/wallet/DigitalWalletServerHandler.java b/src/main/java/dev/vality/proxy/mocketbank/handler/digital/wallet/DigitalWalletServerHandler.java
index 4c69778..e78280f 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/handler/digital/wallet/DigitalWalletServerHandler.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/handler/digital/wallet/DigitalWalletServerHandler.java
@@ -20,18 +20,6 @@ public class DigitalWalletServerHandler implements ProviderProxySrv.Iface {
private final DigitalWalletCallbackHandler digitalWalletCallbackHandler;
private final DigitalWalletValidator digitalWalletValidator;
- @Override
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext context) throws TException {
- throw new TException("Method Not Supported");
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(
- ByteBuffer callback,
- RecurrentTokenContext context) throws TException {
- throw new TException("Method Not Supported");
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext context) throws TException {
digitalWalletValidator.validate(context, context.getOptions());
diff --git a/src/main/java/dev/vality/proxy/mocketbank/handler/mobile/MobileServerHandler.java b/src/main/java/dev/vality/proxy/mocketbank/handler/mobile/MobileServerHandler.java
index cec5695..222360b 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/handler/mobile/MobileServerHandler.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/handler/mobile/MobileServerHandler.java
@@ -19,18 +19,6 @@ public class MobileServerHandler implements ProviderProxySrv.Iface {
private final MobileValidator mobileValidator;
private final List handlers;
- @Override
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext context) throws TException {
- throw new TException("Method Not Supported");
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(
- ByteBuffer callback,
- RecurrentTokenContext context) throws TException {
- throw new TException("Method Not Supported");
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext context) throws TException {
mobileValidator.validate(context, context.getOptions());
diff --git a/src/main/java/dev/vality/proxy/mocketbank/handler/payment/PaymentServerHandler.java b/src/main/java/dev/vality/proxy/mocketbank/handler/payment/PaymentServerHandler.java
index e0f7f42..3b41f2f 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/handler/payment/PaymentServerHandler.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/handler/payment/PaymentServerHandler.java
@@ -1,9 +1,10 @@
package dev.vality.proxy.mocketbank.handler.payment;
-import dev.vality.damsel.proxy_provider.*;
+import dev.vality.damsel.proxy_provider.PaymentCallbackResult;
+import dev.vality.damsel.proxy_provider.PaymentContext;
+import dev.vality.damsel.proxy_provider.PaymentProxyResult;
+import dev.vality.damsel.proxy_provider.ProviderProxySrv;
import dev.vality.proxy.mocketbank.handler.payment.callback.PaymentCallbackHandler;
-import dev.vality.proxy.mocketbank.handler.payment.callback.RecurrentTokenCallbackHandler;
-import dev.vality.proxy.mocketbank.handler.payment.recurrent.GenerateTokenHandler;
import dev.vality.proxy.mocketbank.validator.PaymentValidator;
import lombok.RequiredArgsConstructor;
import org.apache.thrift.TException;
@@ -18,22 +19,8 @@ public class PaymentServerHandler implements ProviderProxySrv.Iface {
private final List handlers;
private final PaymentCallbackHandler paymentCallbackHandler;
- private final GenerateTokenHandler generateTokenHandler;
- private final RecurrentTokenCallbackHandler recurrentTokenCallbackHandler;
private final PaymentValidator paymentValidator;
- @Override
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext context) {
- return generateTokenHandler.handler(context);
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(
- ByteBuffer callback,
- RecurrentTokenContext context) {
- return recurrentTokenCallbackHandler.handler(callback, context);
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext context) throws TException {
paymentValidator.validate(context, context.getOptions());
diff --git a/src/main/java/dev/vality/proxy/mocketbank/handler/payment/callback/RecurrentTokenCallbackHandler.java b/src/main/java/dev/vality/proxy/mocketbank/handler/payment/callback/RecurrentTokenCallbackHandler.java
deleted file mode 100644
index b3c918a..0000000
--- a/src/main/java/dev/vality/proxy/mocketbank/handler/payment/callback/RecurrentTokenCallbackHandler.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package dev.vality.proxy.mocketbank.handler.payment.callback;
-
-import dev.vality.adapter.common.cds.CdsStorageClient;
-import dev.vality.adapter.common.cds.model.CardDataProxyModel;
-import dev.vality.adapter.common.damsel.model.Error;
-import dev.vality.adapter.common.exception.CdsStorageExpDateException;
-import dev.vality.adapter.common.mapper.ErrorMapping;
-import dev.vality.damsel.proxy_provider.RecurrentTokenCallbackResult;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenIntent;
-import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
-import dev.vality.proxy.mocketbank.constant.PaymentState;
-import dev.vality.proxy.mocketbank.service.mpi.MpiApi;
-import dev.vality.proxy.mocketbank.service.mpi.constant.TransactionStatus;
-import dev.vality.proxy.mocketbank.service.mpi.model.ValidatePaResResponse;
-import dev.vality.proxy.mocketbank.utils.Converter;
-import dev.vality.proxy.mocketbank.utils.ErrorBuilder;
-import dev.vality.proxy.mocketbank.utils.model.Card;
-import dev.vality.proxy.mocketbank.utils.model.CardAction;
-import dev.vality.proxy.mocketbank.utils.model.CardUtils;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-import java.nio.ByteBuffer;
-import java.util.HashMap;
-import java.util.List;
-
-import static dev.vality.adapter.common.damsel.ProxyProviderPackageCreators.*;
-import static dev.vality.adapter.common.damsel.ProxyProviderPackageExtractors.extractRecurrentId;
-
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class RecurrentTokenCallbackHandler {
-
- private final CdsStorageClient cds;
- private final MpiApi mpiApi;
- private final ErrorMapping errorMapping;
- private final List cardList;
-
- public RecurrentTokenCallbackResult handler(ByteBuffer byteBuffer, RecurrentTokenContext context) {
- String recurrentId = extractRecurrentId(context);
- HashMap parameters = Converter.mergeParams(byteBuffer, context.getSession().getState());
-
- CardDataProxyModel cardData;
- try {
- cardData = cds.getCardData(context);
- } catch (CdsStorageExpDateException ex) {
- return ErrorBuilder.prepareRecurrentCallbackError(errorMapping, Error.DEFAULT_ERROR_CODE, ex.getMessage());
- }
-
- ValidatePaResResponse validatePaResResponse = mpiApi.validatePaRes(cardData, parameters);
- if (TransactionStatus.isAuthenticationSuccessful(validatePaResResponse.getTransactionStatus())) {
- RecurrentTokenIntent intent = createRecurrentTokenFinishIntentSuccess(recurrentId);
- RecurrentTokenProxyResult proxyResult =
- createRecurrentTokenProxyResult(intent, PaymentState.PENDING.getBytes());
- return createRecurrentTokenCallbackResult("".getBytes(), proxyResult);
- }
-
- CardAction action = CardUtils.extractActionFromCard(cardList, cardData);
- return ErrorBuilder.prepareRecurrentCallbackError(errorMapping, Error.DEFAULT_ERROR_CODE, action);
- }
-}
diff --git a/src/main/java/dev/vality/proxy/mocketbank/handler/payment/recurrent/GenerateTokenHandler.java b/src/main/java/dev/vality/proxy/mocketbank/handler/payment/recurrent/GenerateTokenHandler.java
deleted file mode 100644
index c74b21b..0000000
--- a/src/main/java/dev/vality/proxy/mocketbank/handler/payment/recurrent/GenerateTokenHandler.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package dev.vality.proxy.mocketbank.handler.payment.recurrent;
-
-import dev.vality.adapter.common.cds.CdsStorageClient;
-import dev.vality.adapter.common.cds.model.CardDataProxyModel;
-import dev.vality.adapter.common.exception.CdsStorageExpDateException;
-import dev.vality.adapter.common.mapper.ErrorMapping;
-import dev.vality.damsel.domain.Failure;
-import dev.vality.damsel.domain.OperationFailure;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenIntent;
-import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
-import dev.vality.damsel.timeout_behaviour.TimeoutBehaviour;
-import dev.vality.proxy.mocketbank.configuration.properties.AdapterMockBankProperties;
-import dev.vality.proxy.mocketbank.configuration.properties.TimerProperties;
-import dev.vality.proxy.mocketbank.constant.PaymentState;
-import dev.vality.proxy.mocketbank.service.mpi.MpiApi;
-import dev.vality.proxy.mocketbank.service.mpi.constant.EnrollmentStatus;
-import dev.vality.proxy.mocketbank.service.mpi.model.VerifyEnrollmentResponse;
-import dev.vality.proxy.mocketbank.utils.ErrorBuilder;
-import dev.vality.proxy.mocketbank.utils.TokenProviderVerification;
-import dev.vality.proxy.mocketbank.utils.UrlUtils;
-import dev.vality.proxy.mocketbank.utils.model.Card;
-import dev.vality.proxy.mocketbank.utils.model.CardAction;
-import dev.vality.proxy.mocketbank.utils.model.CardUtils;
-import dev.vality.proxy.mocketbank.utils.state.StateUtils;
-import dev.vality.proxy.mocketbank.utils.state.constant.SuspendPrefix;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import static dev.vality.adapter.common.damsel.OptionsExtractors.extractRedirectTimeout;
-import static dev.vality.adapter.common.damsel.ProxyProviderPackageCreators.*;
-import static dev.vality.adapter.common.damsel.ProxyProviderPackageExtractors.extractRecurrentId;
-import static dev.vality.adapter.common.damsel.model.Error.DEFAULT_ERROR_CODE;
-import static dev.vality.adapter.common.damsel.model.Error.THREE_DS_NOT_FINISHED;
-
-@Slf4j
-@Component
-@RequiredArgsConstructor
-public class GenerateTokenHandler {
-
- private final CdsStorageClient cds;
- private final MpiApi mpiApi;
- private final ErrorMapping errorMapping;
- private final List cardList;
- private final TimerProperties timerProperties;
- private final AdapterMockBankProperties mockBankProperties;
-
- public RecurrentTokenProxyResult handler(RecurrentTokenContext context) {
- String recurrentId = extractRecurrentId(context);
- RecurrentTokenIntent intent = createRecurrentTokenFinishIntentSuccess(recurrentId);
-
- // Applepay, Samsungpay, Googlepay - always successful and does not depends on card
- if (TokenProviderVerification.hasBankCardTokenProvider(context)) {
- return createRecurrentTokenProxyResult(intent);
- }
-
- CardDataProxyModel cardData;
- try {
- cardData = cds.getCardData(context);
- } catch (CdsStorageExpDateException ex) {
- return ErrorBuilder.prepareRecurrentTokenError(errorMapping, DEFAULT_ERROR_CODE, ex.getMessage());
- }
-
- Optional card = CardUtils.extractCardByPan(cardList, cardData.getPan());
- if (card.isPresent()) {
- CardAction action = CardAction.findByValue(card.get().getAction());
- if (CardAction.isCardEnrolled(card.get())) {
- return prepareEnrolledRecurrentTokenProxyResult(context, intent, cardData);
- }
- return prepareNotEnrolledRecurrentTokenProxyResult(intent, action);
- }
- return ErrorBuilder.prepareRecurrentTokenError(errorMapping, CardAction.UNSUPPORTED_CARD);
- }
-
- private RecurrentTokenProxyResult prepareNotEnrolledRecurrentTokenProxyResult(
- RecurrentTokenIntent intent,
- CardAction action) {
-
- if (CardAction.isCardSuccess(action)) {
- return createRecurrentTokenProxyResult(intent, PaymentState.CAPTURED.getBytes());
- }
- CardAction currentAction = CardAction.isCardFailed(action) ? action : CardAction.UNKNOWN_FAILURE;
- return ErrorBuilder.prepareRecurrentTokenError(errorMapping, currentAction);
- }
-
- private RecurrentTokenProxyResult prepareEnrolledRecurrentTokenProxyResult(
- RecurrentTokenContext context,
- RecurrentTokenIntent intent,
- CardDataProxyModel cardData) {
- RecurrentTokenIntent recurrentTokenIntent = intent;
- VerifyEnrollmentResponse verifyEnrollmentResponse = mpiApi.verifyEnrollment(cardData);
- if (EnrollmentStatus.isAuthenticationAvailable(verifyEnrollmentResponse.getEnrolled())) {
- String tag = SuspendPrefix.RECURRENT.getPrefix() + context.getTokenInfo().getPaymentTool().getId();
- String termUrl = UrlUtils.getCallbackUrl(
- mockBankProperties.getCallbackUrl(),
- mockBankProperties.getPathRecurrentCallbackUrl());
- recurrentTokenIntent = prepareRedirect(context, verifyEnrollmentResponse, tag, termUrl);
- }
- byte[] state = StateUtils.prepareState(verifyEnrollmentResponse);
- return createRecurrentTokenProxyResult(recurrentTokenIntent, state);
- }
-
- private RecurrentTokenIntent prepareRedirect(
- RecurrentTokenContext context,
- VerifyEnrollmentResponse verifyEnrollmentResponse,
- String tag,
- String termUrl) {
- String url = verifyEnrollmentResponse.getAcsUrl();
- Map params = UrlUtils.prepareRedirectParams(verifyEnrollmentResponse, tag, termUrl);
- Map options = context.getOptions();
- int timerRedirectTimeout = extractRedirectTimeout(options, timerProperties.getRedirectTimeout());
-
- RecurrentTokenIntent recurrentTokenIntent = createRecurrentTokenWithSuspendIntent(
- tag, timerRedirectTimeout, createPostUserInteraction(url, params)
- );
- Failure failure = errorMapping.mapFailure(DEFAULT_ERROR_CODE, THREE_DS_NOT_FINISHED);
- recurrentTokenIntent.getSuspend().setTimeoutBehaviour(
- TimeoutBehaviour.operation_failure(OperationFailure.failure(failure)));
- return recurrentTokenIntent;
- }
-}
diff --git a/src/main/java/dev/vality/proxy/mocketbank/handler/terminal/TerminalServerHandler.java b/src/main/java/dev/vality/proxy/mocketbank/handler/terminal/TerminalServerHandler.java
index 717201e..3fc76d9 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/handler/terminal/TerminalServerHandler.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/handler/terminal/TerminalServerHandler.java
@@ -17,18 +17,6 @@ public class TerminalServerHandler implements ProviderProxySrv.Iface {
private final TerminalValidator terminalValidator;
private final List handlers;
- @Override
- public RecurrentTokenProxyResult generateToken(RecurrentTokenContext context) throws TException {
- throw new TException("Method Not Supported");
- }
-
- @Override
- public RecurrentTokenCallbackResult handleRecurrentTokenCallback(
- ByteBuffer callback,
- RecurrentTokenContext context) throws TException {
- throw new TException("Method Not Supported");
- }
-
@Override
public PaymentProxyResult processPayment(PaymentContext context) throws TException {
terminalValidator.validate(context, context.getOptions());
diff --git a/src/main/java/dev/vality/proxy/mocketbank/service/mpi/MpiApi.java b/src/main/java/dev/vality/proxy/mocketbank/service/mpi/MpiApi.java
index 8d301ef..eb2571b 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/service/mpi/MpiApi.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/service/mpi/MpiApi.java
@@ -5,8 +5,9 @@
import dev.vality.proxy.mocketbank.service.mpi.model.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
-import org.springframework.web.client.RestTemplate;
+import org.springframework.web.client.RestClient;
import java.util.Map;
@@ -15,7 +16,7 @@
@RequiredArgsConstructor
public class MpiApi {
- private final RestTemplate restTemplate;
+ private final RestClient restClient;
private final AdapterMockMpiProperties adapterMockMpiProperties;
public VerifyEnrollmentResponse verifyEnrollment(CardDataProxyModel cardData) {
@@ -46,7 +47,12 @@ public ValidatePaResResponse validatePaRes(ValidatePaResRequest request) {
private T sendMessage(String methodName, PrepareFieldsObject request, Class responseClass) {
String prepareUrl = prepareUrl(adapterMockMpiProperties.getUrl(), methodName);
log.info("MockMpi {} url: {} with request: {}", methodName, prepareUrl, request);
- T response = restTemplate.postForObject(prepareUrl, request.prepareFields(), responseClass);
+ ResponseEntity responseEntity = restClient.post()
+ .uri(prepareUrl)
+ .body(request.prepareFields())
+ .retrieve()
+ .toEntity(responseClass);
+ var response = responseEntity.getBody();
log.info("MockMpi {} url: {} with response: {}", methodName, prepareUrl, response);
return response;
}
diff --git a/src/main/java/dev/vality/proxy/mocketbank/service/mpi20/Mpi20Client.java b/src/main/java/dev/vality/proxy/mocketbank/service/mpi20/Mpi20Client.java
index 3b4e99a..c074a14 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/service/mpi20/Mpi20Client.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/service/mpi20/Mpi20Client.java
@@ -4,7 +4,9 @@
import dev.vality.proxy.mocketbank.service.mpi20.model.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestClient;
import org.springframework.web.client.RestTemplate;
@Slf4j
@@ -12,7 +14,7 @@
@RequiredArgsConstructor
public class Mpi20Client {
- private final RestTemplate restTemplate;
+ private final RestClient restClient;
private final Mpi20Properties mpi20Properties;
public PreparationResponse prepare(PreparationRequest request) {
@@ -30,7 +32,12 @@ public ResultResponse result(ResultRequest request) {
private T send(String methodName, N request, Class responseClass) {
String prepareUrl = prepareUrl(methodName);
log.info("MockV2Mpi {} url: {} with request: {}", methodName, prepareUrl, request);
- T response = restTemplate.postForObject(prepareUrl, request, responseClass);
+ ResponseEntity responseEntity = restClient.post()
+ .uri(prepareUrl)
+ .body(request)
+ .retrieve()
+ .toEntity(responseClass);
+ var response = responseEntity.getBody();
log.info("MockV2Mpi {} url: {} with response: {}", methodName, prepareUrl, response);
return response;
}
diff --git a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletBalance.java b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletBalance.java
index 468d4aa..dec3026 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletBalance.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletBalance.java
@@ -5,8 +5,8 @@
import dev.vality.woody.thrift.impl.http.THServiceBuilder;
import lombok.RequiredArgsConstructor;
-import javax.servlet.*;
-import javax.servlet.annotation.WebServlet;
+import jakarta.servlet.*;
+import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;
@RequiredArgsConstructor
diff --git a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletDw.java b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletDw.java
index f635d17..e9510cd 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletDw.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletDw.java
@@ -5,8 +5,8 @@
import dev.vality.woody.thrift.impl.http.THServiceBuilder;
import lombok.RequiredArgsConstructor;
-import javax.servlet.*;
-import javax.servlet.annotation.WebServlet;
+import jakarta.servlet.*;
+import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;
@RequiredArgsConstructor
diff --git a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletMobile.java b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletMobile.java
index b6ce135..6456140 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletMobile.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletMobile.java
@@ -5,8 +5,8 @@
import dev.vality.woody.thrift.impl.http.THServiceBuilder;
import lombok.RequiredArgsConstructor;
-import javax.servlet.*;
-import javax.servlet.annotation.WebServlet;
+import jakarta.servlet.*;
+import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;
@RequiredArgsConstructor
diff --git a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletMobileOperator.java b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletMobileOperator.java
index 680e36b..90d24f1 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletMobileOperator.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletMobileOperator.java
@@ -5,8 +5,8 @@
import dev.vality.woody.thrift.impl.http.THServiceBuilder;
import lombok.RequiredArgsConstructor;
-import javax.servlet.*;
-import javax.servlet.annotation.WebServlet;
+import jakarta.servlet.*;
+import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;
@RequiredArgsConstructor
diff --git a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletOct.java b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletOct.java
index bc1a697..bc8ac4d 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletOct.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletOct.java
@@ -5,8 +5,8 @@
import dev.vality.woody.thrift.impl.http.THServiceBuilder;
import lombok.RequiredArgsConstructor;
-import javax.servlet.*;
-import javax.servlet.annotation.WebServlet;
+import jakarta.servlet.*;
+import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;
@RequiredArgsConstructor
diff --git a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletPayment.java b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletPayment.java
index b5b2a57..52775d8 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletPayment.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletPayment.java
@@ -5,8 +5,8 @@
import dev.vality.woody.thrift.impl.http.THServiceBuilder;
import lombok.RequiredArgsConstructor;
-import javax.servlet.*;
-import javax.servlet.annotation.WebServlet;
+import jakarta.servlet.*;
+import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;
@RequiredArgsConstructor
diff --git a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletTerminal.java b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletTerminal.java
index 661b690..08c273f 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletTerminal.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/servlet/AdapterServletTerminal.java
@@ -5,8 +5,8 @@
import dev.vality.woody.thrift.impl.http.THServiceBuilder;
import lombok.RequiredArgsConstructor;
-import javax.servlet.*;
-import javax.servlet.annotation.WebServlet;
+import jakarta.servlet.*;
+import jakarta.servlet.annotation.WebServlet;
import java.io.IOException;
@RequiredArgsConstructor
diff --git a/src/main/java/dev/vality/proxy/mocketbank/utils/ErrorBuilder.java b/src/main/java/dev/vality/proxy/mocketbank/utils/ErrorBuilder.java
index e32d6b1..702e034 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/utils/ErrorBuilder.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/utils/ErrorBuilder.java
@@ -5,14 +5,13 @@
import dev.vality.damsel.domain.Failure;
import dev.vality.damsel.proxy_provider.PaymentCallbackResult;
import dev.vality.damsel.proxy_provider.PaymentProxyResult;
-import dev.vality.damsel.proxy_provider.RecurrentTokenCallbackResult;
-import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
import dev.vality.proxy.mocketbank.utils.model.CardAction;
import dev.vality.proxy.mocketbank.utils.payout.CardPayoutAction;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import static dev.vality.adapter.common.damsel.ProxyProviderPackageCreators.*;
+import static dev.vality.adapter.common.damsel.ProxyProviderPackageCreators.createCallbackResultFailure;
+import static dev.vality.adapter.common.damsel.ProxyProviderPackageCreators.createProxyResultFailure;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class ErrorBuilder {
@@ -30,22 +29,6 @@ public static PaymentProxyResult prepareError(ErrorMapping errorMapping, String
return prepareError(errorMapping, code, code);
}
- public static RecurrentTokenProxyResult prepareRecurrentTokenError(ErrorMapping errorMapping, String code) {
- return prepareRecurrentTokenError(errorMapping, code, code);
- }
-
- public static RecurrentTokenProxyResult prepareRecurrentTokenError(ErrorMapping errorMapping, CardAction action) {
- return prepareRecurrentTokenError(errorMapping, action.getAction());
- }
-
- public static RecurrentTokenProxyResult prepareRecurrentTokenError(
- ErrorMapping errorMapping,
- String code,
- String message) {
- Failure failure = errorMapping.mapFailure(code, message);
- return createRecurrentTokenProxyResultFailure(failure);
- }
-
public static PaymentCallbackResult prepareCallbackError(ErrorMapping errorMapping, String code, String message) {
Failure failure = errorMapping.mapFailure(code, message);
return createCallbackResultFailure(failure);
@@ -58,21 +41,6 @@ public static PaymentCallbackResult prepareCallbackError(
return prepareCallbackError(errorMapping, code, action.getAction());
}
- public static RecurrentTokenCallbackResult prepareRecurrentCallbackError(
- ErrorMapping errorMapping,
- String code,
- CardAction action) {
- return prepareRecurrentCallbackError(errorMapping, code, action.getAction());
- }
-
- public static RecurrentTokenCallbackResult prepareRecurrentCallbackError(
- ErrorMapping errorMapping,
- String code,
- String message) {
- Failure failure = errorMapping.mapFailure(code, message);
- return createRecurrentTokenCallbackResultFailure(failure);
- }
-
public static dev.vality.damsel.withdrawals.provider_adapter.ProcessResult prepareWithdrawalError(
ErrorMapping errorMapping,
String code,
diff --git a/src/main/java/dev/vality/proxy/mocketbank/utils/TokenProviderVerification.java b/src/main/java/dev/vality/proxy/mocketbank/utils/TokenProviderVerification.java
index 0024f12..2c2ffa0 100644
--- a/src/main/java/dev/vality/proxy/mocketbank/utils/TokenProviderVerification.java
+++ b/src/main/java/dev/vality/proxy/mocketbank/utils/TokenProviderVerification.java
@@ -4,7 +4,10 @@
import dev.vality.damsel.domain.BankCardTokenServiceRef;
import dev.vality.damsel.domain.DisposablePaymentResource;
import dev.vality.damsel.domain.PaymentTool;
-import dev.vality.damsel.proxy_provider.*;
+import dev.vality.damsel.proxy_provider.InvoicePayment;
+import dev.vality.damsel.proxy_provider.PaymentContext;
+import dev.vality.damsel.proxy_provider.PaymentInfo;
+import dev.vality.damsel.proxy_provider.PaymentResource;
import java.util.Optional;
@@ -12,12 +15,7 @@ public class TokenProviderVerification {
public static boolean hasBankCardTokenProvider(Object object) {
String bankCardTokenProvider;
- if (object instanceof RecurrentTokenContext) {
- bankCardTokenProvider = extractBankCardTokenProvider((RecurrentTokenContext) object);
- } else {
- bankCardTokenProvider = extractBankCardTokenProvider((PaymentContext) object);
- }
-
+ bankCardTokenProvider = extractBankCardTokenProvider((PaymentContext) object);
return bankCardTokenProvider != null;
}
@@ -34,14 +32,4 @@ public static String extractBankCardTokenProvider(PaymentContext context) {
.orElse(null);
}
- public static String extractBankCardTokenProvider(RecurrentTokenContext context) {
- return Optional.ofNullable(context.getTokenInfo())
- .map(RecurrentTokenInfo::getPaymentTool)
- .map(RecurrentPaymentTool::getPaymentResource)
- .map(DisposablePaymentResource::getPaymentTool)
- .map(PaymentTool::getBankCard)
- .map(BankCard::getPaymentToken)
- .map(BankCardTokenServiceRef::getId)
- .orElse(null);
- }
}
diff --git a/src/test/java/dev/vality/proxy/mocketbank/handler/IntegrationTest.java b/src/test/java/dev/vality/proxy/mocketbank/handler/IntegrationTest.java
index 6b1a5fa..4fbb9a6 100644
--- a/src/test/java/dev/vality/proxy/mocketbank/handler/IntegrationTest.java
+++ b/src/test/java/dev/vality/proxy/mocketbank/handler/IntegrationTest.java
@@ -78,7 +78,6 @@ protected Shop prepareShop() {
return new Shop()
.setId("shop_id")
.setCategory(new Category().setName("CategoryName").setDescription("Category description"))
- .setDetails(new ShopDetails().setName("ShopName").setDescription("Shop description"))
.setLocation(shopLocation);
}
@@ -183,23 +182,6 @@ protected PaymentContext getContext(
);
}
- protected RecurrentTokenContext createRecurrentTokenContext(BankCard bankCard) {
- RecurrentTokenContext context = new RecurrentTokenContext();
- context.setSession(new RecurrentTokenSession());
- context.setTokenInfo(
- createRecurrentTokenInfo(
- createRecurrentPaymentTool(
- createDisposablePaymentResource(
- createClientInfo(TestData.FINGERPRINT, TestData.IP_ADDRESS),
- TestData.SESSION_ID,
- createPaymentTool(bankCard)
- )
- ).setId(recurrentId)
- )
- );
- return context;
- }
-
protected PaymentResource getPaymentResourceRecurrent(String token) {
return createPaymentResourceRecurrentPaymentResource(
createRecurrentPaymentResource(token)
@@ -215,10 +197,7 @@ protected void mockCds(CardData cardData, BankCard bankCard) {
.build();
Mockito.when(cdsStorage.getCardData(anyString())).thenReturn(cardData);
- Mockito.when(cdsStorage.getCardData((RecurrentTokenContext) any())).thenReturn(proxyModel);
Mockito.when(cdsStorage.getCardData((PaymentContext) any())).thenReturn(proxyModel);
- Mockito.when(cdsStorage.getSessionData((RecurrentTokenContext) any()))
- .thenReturn(CdsPackageCreators.createSessionDataWithCvv(TestData.DEFAULT_CVV));
Mockito.when(cdsStorage.getSessionData((PaymentContext) any()))
.thenReturn(CdsPackageCreators.createSessionDataWithCvv(TestData.DEFAULT_CVV));
}
diff --git a/src/test/java/dev/vality/proxy/mocketbank/handler/MocketBankServerHandlerRecurrent3DSSuccessIntegrationTest.java b/src/test/java/dev/vality/proxy/mocketbank/handler/MocketBankServerHandlerRecurrent3DSSuccessIntegrationTest.java
deleted file mode 100644
index 8674763..0000000
--- a/src/test/java/dev/vality/proxy/mocketbank/handler/MocketBankServerHandlerRecurrent3DSSuccessIntegrationTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package dev.vality.proxy.mocketbank.handler;
-
-import dev.vality.cds.storage.CardData;
-import dev.vality.damsel.domain.BankCard;
-import dev.vality.damsel.proxy_provider.*;
-import dev.vality.proxy.mocketbank.TestData;
-import dev.vality.proxy.mocketbank.service.mpi.constant.EnrollmentStatus;
-import dev.vality.proxy.mocketbank.service.mpi.constant.TransactionStatus;
-import dev.vality.proxy.mocketbank.utils.CardListUtils;
-import dev.vality.proxy.mocketbank.utils.Converter;
-import dev.vality.proxy.mocketbank.utils.model.CardAction;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.thrift.TException;
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.annotation.DirtiesContext;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static dev.vality.adapter.common.damsel.DomainPackageCreators.createTargetCaptured;
-import static dev.vality.adapter.common.damsel.DomainPackageCreators.createTargetProcessed;
-import static dev.vality.adapter.common.damsel.ProxyProviderVerification.isSuccess;
-import static dev.vality.adapter.common.damsel.ProxyProviderVerification.isSuspend;
-import static dev.vality.proxy.mocketbank.TestData.createCardData;
-import static org.springframework.test.util.AssertionErrors.assertTrue;
-
-@Slf4j
-@SpringBootTest(
- webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT,
- properties = {
- "cds.client.url.storage.url=http://127.0.0.1:8021/v1/storage",
- }
-)
-@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
-public class MocketBankServerHandlerRecurrent3DSSuccessIntegrationTest extends IntegrationTest {
-
- @Test
- void testProcessPaymentSuccess() throws TException, IOException {
- List pans = CardListUtils.extractPans(cardList, CardAction::isMpiCardSuccess);
- for (String pan : pans) {
- CardData cardData = createCardData(pan);
- processPayment(cardData);
- }
- }
-
- private void processPayment(CardData cardData) throws TException, IOException {
- BankCard bankCard = TestData.createBankCard(cardData);
- bankCard.setToken(TestData.BANK_CARD_TOKEN);
- mockCds(cardData, bankCard);
- mockMpiVerify(EnrollmentStatus.AUTHENTICATION_AVAILABLE);
- mockMpi(TransactionStatus.AUTHENTICATION_SUCCESSFUL);
-
- RecurrentTokenContext context = createRecurrentTokenContext(bankCard);
- RecurrentTokenProxyResult tokenProxyResult = handler.generateToken(context);
- assertTrue("GenerateToken isn`t suspend", isSuspend(tokenProxyResult));
-
- Map mapCallback = new HashMap<>();
- mapCallback.put("MD", "MD-TAG");
- mapCallback.put("paRes", "SomePaRes");
- context.getSession().setState(tokenProxyResult.getNextState());
- ByteBuffer callbackMap = Converter.mapToByteBuffer(mapCallback);
-
- RecurrentTokenCallbackResult tokenCallbackResult = handler.handleRecurrentTokenCallback(callbackMap, context);
- assertTrue("HandleRecurrentTokenCallback isn`t success", isSuccess(tokenCallbackResult));
-
- // process
- String token = tokenCallbackResult.getResult().getIntent().getFinish().getStatus().getSuccess().getToken();
-
- PaymentContext paymentContext = getContext(getPaymentResourceRecurrent(token), createTargetProcessed(), null);
- PaymentProxyResult proxyResult = handler.processPayment(paymentContext);
- assertTrue("Process payment isn`t success", isSuccess(proxyResult));
-
- paymentContext.getPaymentInfo().getPayment().setTrx(proxyResult.getTrx());
- paymentContext.getSession().setTarget(createTargetCaptured());
-
- proxyResult = handler.processPayment(paymentContext);
- assertTrue("Capture isn`t success", isSuccess(proxyResult));
- }
-
-}
diff --git a/src/test/java/dev/vality/proxy/mocketbank/handler/MocketBankServerHandlerRecurrentSuccessIntegrationTest.java b/src/test/java/dev/vality/proxy/mocketbank/handler/MocketBankServerHandlerRecurrentSuccessIntegrationTest.java
deleted file mode 100644
index 75993f3..0000000
--- a/src/test/java/dev/vality/proxy/mocketbank/handler/MocketBankServerHandlerRecurrentSuccessIntegrationTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package dev.vality.proxy.mocketbank.handler;
-
-import dev.vality.cds.storage.CardData;
-import dev.vality.damsel.domain.BankCard;
-import dev.vality.damsel.proxy_provider.PaymentContext;
-import dev.vality.damsel.proxy_provider.PaymentProxyResult;
-import dev.vality.damsel.proxy_provider.RecurrentTokenContext;
-import dev.vality.damsel.proxy_provider.RecurrentTokenProxyResult;
-import dev.vality.proxy.mocketbank.TestData;
-import dev.vality.proxy.mocketbank.utils.CardListUtils;
-import dev.vality.proxy.mocketbank.utils.model.CardAction;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.thrift.TException;
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.annotation.DirtiesContext;
-
-import java.io.IOException;
-import java.util.List;
-
-import static dev.vality.adapter.common.damsel.DomainPackageCreators.createTargetCaptured;
-import static dev.vality.adapter.common.damsel.DomainPackageCreators.createTargetProcessed;
-import static dev.vality.adapter.common.damsel.ProxyProviderVerification.isSuccess;
-import static dev.vality.proxy.mocketbank.TestData.createCardData;
-import static org.springframework.test.util.AssertionErrors.assertTrue;
-
-@Slf4j
-@SpringBootTest(
- webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT,
- properties = {
- "cds.client.url.storage.url=http://127.0.0.1:8021/v1/storage",
- }
-)
-@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
-public class MocketBankServerHandlerRecurrentSuccessIntegrationTest extends IntegrationTest {
-
- @Test
- void testProcessPaymentSuccess() throws TException, IOException {
- List pans = CardListUtils.extractPans(cardList, CardAction::isCardSuccess);
- for (String pan : pans) {
- CardData cardData = createCardData(pan);
- processPayment(cardData);
- }
- }
-
- private void processPayment(CardData cardData) throws TException {
- BankCard bankCard = TestData.createBankCard(cardData);
- bankCard.setToken(TestData.BANK_CARD_TOKEN);
- mockCds(cardData, bankCard);
-
- RecurrentTokenContext context = createRecurrentTokenContext(bankCard);
- RecurrentTokenProxyResult generationProxyResult = handler.generateToken(context);
-
- String token = generationProxyResult.getIntent().getFinish().getStatus().getSuccess().getToken();
-
- PaymentContext paymentContext = getContext(getPaymentResourceRecurrent(token), createTargetProcessed(), null);
- PaymentProxyResult proxyResult = handler.processPayment(paymentContext);
- assertTrue("Process Payment isn`t success", isSuccess(proxyResult));
-
- paymentContext.getPaymentInfo().getPayment().setTrx(proxyResult.getTrx());
- paymentContext.getSession().setTarget(createTargetCaptured());
-
- PaymentProxyResult processResultCapture = handler.processPayment(paymentContext);
- assertTrue("Process Capture isn`t success ", isSuccess(processResultCapture));
- }
-
-}
diff --git a/src/test/java/dev/vality/proxy/mocketbank/handler/oct/OctIntegrationTest.java b/src/test/java/dev/vality/proxy/mocketbank/handler/oct/OctIntegrationTest.java
index 7a4526c..05a58a7 100644
--- a/src/test/java/dev/vality/proxy/mocketbank/handler/oct/OctIntegrationTest.java
+++ b/src/test/java/dev/vality/proxy/mocketbank/handler/oct/OctIntegrationTest.java
@@ -1,6 +1,8 @@
package dev.vality.proxy.mocketbank.handler.oct;
import dev.vality.damsel.domain.BankCard;
+import dev.vality.damsel.domain.PartyConfigRef;
+import dev.vality.damsel.identity_document_storage.IdentityDocument;
import dev.vality.damsel.withdrawals.domain.*;
import dev.vality.damsel.withdrawals.provider_adapter.Cash;
import dev.vality.damsel.withdrawals.provider_adapter.Withdrawal;
@@ -21,26 +23,20 @@ public abstract class OctIntegrationTest {
@Autowired
protected List cardPayoutList;
- protected static String WITHDRAWALID = "TEST_WITHDRAWAL_ID";
+ public static String WITHDRAWALID = "TEST_WITHDRAWAL_ID";
+ public static final String SENDER = "sender";
protected Withdrawal createWithdrawal(BankCard bankCard) {
Destination destination = createDestination(bankCard);
- List identityDocumentList = createIdentityDocumentsList(TestData.WITHDRAWAL_TOKEN);
- Identity identity = createIdentity(identityDocumentList);
return new Withdrawal()
.setId(WITHDRAWALID)
.setDestination(destination)
.setBody(createCash())
- .setSender(identity);
+ .setSender(new PartyConfigRef(SENDER));
}
- protected List createIdentityDocumentsList(String token) {
- List identityDocumentList = new ArrayList<>();
- identityDocumentList.add(createIdentityDocument(token));
- return identityDocumentList;
- }
protected Destination createDestination(BankCard bankCard) {
Destination destination = new Destination();
@@ -48,16 +44,6 @@ protected Destination createDestination(BankCard bankCard) {
return destination;
}
- protected Identity createIdentity(List identityDocumentList) {
- return new Identity()
- .setContact(createContactDetailsList())
- .setDocuments(identityDocumentList);
- }
-
- protected IdentityDocument createIdentityDocument(String token) {
- return IdentityDocument.rus_domestic_passport(new RUSDomesticPassport().setToken(token));
- }
-
protected Cash createCash() {
return new Cash()
.setAmount(1000L)
@@ -68,14 +54,6 @@ protected Map createProxyOptions() {
return Collections.emptyMap();
}
- protected List createContactDetailsList() {
- List contactDetailList = new ArrayList<>();
- ContactDetail contactDetail = new ContactDetail();
- contactDetail.setPhoneNumber(TestData.PHONE_NUMBER);
- contactDetailList.add(contactDetail);
- return contactDetailList;
- }
-
protected String randomString() {
return UUID.randomUUID().toString();
}