web-dev-qa-db-fra.com

Définition du paramètre "relaxedQueryChars" pour Tomcat intégré

Comment définir relaxedQueryChars pour Tomcat intégré à Spring Boot?

L'attribut de connecteur décrit ici , mais Spring Boot documentation n'a pas ce paramètre répertorié.

Comment définir les attributs du connecteur de Tomcat en général?

7
Alex Karasev

Je ne suis pas sûr si vous pouvez faire ceci avec le dossier de propriétés. Je crois que cela devrait fonctionner 

@Component
public class MyTomcatWebServerCustomizer
        implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {

    @Override
    public void customize(TomcatServletWebServerFactory factory) {
        factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
            @Override
            public void customize(Connector connector) {
                connector.setAttribute("relaxedQueryChars", "yourvaluehere");
            }
        });
    }
}
6
pvpkiran

Je l'ai fait comme une solution de travail pour moi:

@Bean
public EmbeddedServletContainerCustomizer containerCustomizer(){
    return new MyCustomizer();
}

private static class MyCustomizer implements EmbeddedServletContainerCustomizer {

    @Override
    public void customize(ConfigurableEmbeddedServletContainer factory) {
        if(factory instanceof TomcatEmbeddedServletContainerFactory) {
            customizeTomcat((TomcatEmbeddedServletContainerFactory) factory);
        }
    }

    void customizeTomcat(TomcatEmbeddedServletContainerFactory factory) {
        factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
            connector.setAttribute("relaxedPathChars", "<>[\\]^`{|}");
            connector.setAttribute("relaxedQueryChars", "<>[\\]^`{|}");
        });
    }

}
2
matzeihnsein