为嵌入式雄猫设置“relaxedQueryChars”

2022-09-03 00:29:23

如何设置Spring Boot嵌入式Tomcat?relaxedQueryChars

此处描述的连接器属性,但 Spring Boot 文档未列出此类参数。

如何设置Tomcat的连接器属性?


答案 1

我不确定您是否可以使用属性文件执行此操作。我相信这应该有效

@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");
            }
        });
    }
}

答案 2

如果您使用的是Spring Boot 2.x,那么您需要使用WebSeerverFactoryCustomizer,如下所示。

@Bean
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> 
    containerCustomizer(){
    return new EmbeddedTomcatCustomizer();
}

private static class EmbeddedTomcatCustomizer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {

    @Override
    public void customize(TomcatServletWebServerFactory factory) {
        factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
            connector.setAttribute("relaxedPathChars", "<>[\\]^`{|}");
            connector.setAttribute("relaxedQueryChars", "<>[\\]^`{|}");
        });
    }
}

推荐