diff --git a/pom.xml b/pom.xml
index 647e3ce..b6fdec5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.1.4.RELEASE
+ 2.7.18
com.coding.exercise
@@ -15,7 +15,7 @@
Bank App Spring Boot Project
- 1.8
+ 11
@@ -71,6 +71,16 @@
spring-security-test
test
+
+ junit
+ junit
+ test
+
+
+ org.junit.vintage
+ junit-vintage-engine
+ test
+
@@ -79,6 +89,15 @@
org.springframework.boot
spring-boot-maven-plugin
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 11
+ 11
+ 11
+
+
diff --git a/src/main/java/com/coding/exercise/bankapp/config/ApplicationConfig.java b/src/main/java/com/coding/exercise/bankapp/config/ApplicationConfig.java
index 67845f3..f3a7e4d 100644
--- a/src/main/java/com/coding/exercise/bankapp/config/ApplicationConfig.java
+++ b/src/main/java/com/coding/exercise/bankapp/config/ApplicationConfig.java
@@ -1,13 +1,22 @@
package com.coding.exercise.bankapp.config;
+import java.lang.reflect.Field;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.util.ReflectionUtils;
+import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@@ -28,4 +37,37 @@ private ApiInfo apiInfo() {
.description("API for Banking Application.")
.version("1.0.0").build();
}
+
+ @Bean
+ public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {
+ return new BeanPostProcessor() {
+
+ @Override
+ public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
+ if (bean instanceof WebMvcRequestHandlerProvider) {
+ customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
+ }
+ return bean;
+ }
+
+ private void customizeSpringfoxHandlerMappings(List mappings) {
+ List copy = mappings.stream()
+ .filter(mapping -> mapping.getPatternParser() == null)
+ .collect(Collectors.toList());
+ mappings.clear();
+ mappings.addAll(copy);
+ }
+
+ @SuppressWarnings("unchecked")
+ private List getHandlerMappings(Object bean) {
+ try {
+ Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
+ field.setAccessible(true);
+ return (List) field.get(bean);
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+ };
+ }
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index aa3d490..388d129 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -6,6 +6,9 @@ spring.security.user.password: changeit
# Enabling H2 Console
spring:
+ mvc:
+ pathmatch:
+ matching-strategy: ant_path_matcher
h2:
console:
enabled: true