为了账号安全,请及时绑定邮箱和手机立即绑定

为嵌入式 Tomcat 设置“relaxedQueryChars”

为嵌入式 Tomcat 设置“relaxedQueryChars”

蝴蝶不菲 2021-06-10 18:47:27
如何设置relaxedQueryCharsSpring Boot 嵌入式 Tomcat?此处描述的连接器属性,但 Spring Boot文档没有列出此类参数。一般如何设置Tomcat的Connector属性?
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

如果您使用的是 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", "<>[\\]^`{|}");

        });

    }

}


查看完整回答
反对 回复 2021-06-30
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

我这样做是对我来说可行的解决方案:


@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", "<>[\\]^`{|}");

        });

    }


}


查看完整回答
反对 回复 2021-06-30
  • 3 回答
  • 0 关注
  • 2016 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信