diff --git a/pom.xml b/pom.xml index 1fc9a25f8..554ba6f35 100644 --- a/pom.xml +++ b/pom.xml @@ -203,7 +203,11 @@ - + + org.apache.tomcat + tomcat-catalina + 9.0.78 + diff --git a/server.xml b/server.xml index 86a0ae3d9..b6447b1d6 100644 --- a/server.xml +++ b/server.xml @@ -42,6 +42,7 @@ diff --git a/src/main/java/ca/uhn/fhir/jpa/starter/common/StarterJpaConfig.java b/src/main/java/ca/uhn/fhir/jpa/starter/common/StarterJpaConfig.java index 77af694d7..5f2be9e6c 100644 --- a/src/main/java/ca/uhn/fhir/jpa/starter/common/StarterJpaConfig.java +++ b/src/main/java/ca/uhn/fhir/jpa/starter/common/StarterJpaConfig.java @@ -66,6 +66,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer; +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; +import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.*; import org.springframework.core.env.ConfigurableEnvironment; @@ -73,6 +76,7 @@ import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.web.cors.CorsConfiguration; +import org.apache.catalina.connector.Connector; import javax.persistence.EntityManagerFactory; import javax.sql.DataSource; @@ -91,6 +95,26 @@ public class StarterJpaConfig { private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(StarterJpaConfig.class); + private static class EmbeddedTomcatCustomizer + implements WebServerFactoryCustomizer { + @Override + public void customize(TomcatServletWebServerFactory factory) { + factory.addConnectorCustomizers(new TomcatConnectorCustomizer() { + @Override + public void customize(Connector connector) { + connector.setAttribute("relaxedQueryChars", "<>[\\]^`{|}"); + } + }); + } + } + + @Bean + public WebServerFactoryCustomizer + containerCustomizer(){ + return new EmbeddedTomcatCustomizer(); + } + + @Bean public IFulltextSearchSvc fullTextSearchSvc() { return new FulltextSearchSvcImpl();