如何设置relaxedQueryChars
Spring Boot embedded Tomcat?
描述的连接器属性here,但Spring Bootdocumentation没有列出这样的参数。
如何设置Tomcat的连接器属性?
发布于 2018-08-06 16:58:52
我不确定您是否可以使用属性文件做到这一点。我相信这应该行得通
@Component
public class MyTomcatWebServerCustomizer
implements WebServerFactoryCustomizer {
@Override
public void customize(TomcatServletWebServerFactory factory) {
factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
connector.setAttribute("relaxedQueryChars", "yourvaluehere");
}
});
}
}
发布于 2019-04-16 19:54:01
如果你使用的是Spring Boot2.x,那么你需要使用WebSeerverFactoryCustomizer,如下所示。
@Bean
public WebServerFactoryCustomizer
containerCustomizer(){
return new EmbeddedTomcatCustomizer();
}
private static class EmbeddedTomcatCustomizer implements WebServerFactoryCustomizer {
@Override
public void customize(TomcatServletWebServerFactory factory) {
factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
connector.setAttribute("relaxedPathChars", "<>[\\]^`{|}");
connector.setAttribute("relaxedQueryChars", "<>[\\]^`{|}");
});
}
}
发布于 2018-08-27 16:05:24
我这样做是为了给自己提供一个可行的解决方案:
@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", "<>[\\]^`{|}");
});
}
}
https://stackoverflow.com/questions/51703746
复制相似问题