首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为嵌入式Tomcat设置'relaxedQueryChars‘

为嵌入式Tomcat设置'relaxedQueryChars‘
EN

Stack Overflow用户
提问于 2018-08-06 16:47:11
回答 4查看 10.3K关注 0票数 14

如何设置relaxedQueryCharsSpring Boot embedded Tomcat?

描述的连接器属性here,但Spring Bootdocumentation没有列出这样的参数。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-08-06 16:58:52

我不确定您是否可以使用属性文件做到这一点。我相信这应该行得通

代码语言:javascript
运行
复制
@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");
            }
        });
    }
}
票数 13
EN

Stack Overflow用户

发布于 2019-04-16 19:54:01

如果你使用的是Spring Boot2.x,那么你需要使用WebSeerverFactoryCustomizer,如下所示。

代码语言:javascript
运行
复制
@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", "<>[\\]^`{|}");
        });
    }
}
票数 8
EN

Stack Overflow用户

发布于 2018-08-27 16:05:24

我这样做是为了给自己提供一个可行的解决方案:

代码语言:javascript
运行
复制
@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", "<>[\\]^`{|}");
        });
    }

}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51703746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档