Java Meecrowave-在Tomcat 9 embedded中设置relaxedQueryChars

Java Meecrowave-在Tomcat 9 embedded中设置relaxedQueryChars,java,tomcat,tomcat9,Java,Tomcat,Tomcat9,我无法处理查询字符串参数值中带有大括号的请求 我试图设置tomcat.util.http.parser.HttpParser.requestTargetAllow属性,但似乎不再受支持。在我的例子中,Meecrowave嵌入了ApacheTomcat9.x Meecrowave.Builder builder = new Meecrowave.Builder(); builder.setScanningPackageIncludes("my.packages"); try

我无法处理查询字符串参数值中带有大括号的请求

我试图设置
tomcat.util.http.parser.HttpParser.requestTargetAllow
属性,但似乎不再受支持。在我的例子中,Meecrowave嵌入了ApacheTomcat9.x

Meecrowave.Builder builder = new Meecrowave.Builder();
builder.setScanningPackageIncludes("my.packages");

try (Meecrowave meecrowave = new Meecrowave(builder)) {
    meecrowave.bake().await();
}

我终于找到了这个似乎很有效的解决方案

final Meecrowave bake = meecrowave.bake();
bake.getTomcat().getConnector().setProperty("relaxedQueryChars", "|{}");
bake.await();

作为任何连接器属性,可以将其作为“connector.attributes.relaxedQueryChars”传递给配置属性:

try (final Meecrowave meecrowave = new Meecrowave(new Meecrowave.Builder()
         .property("connector.attributes.relaxedQueryChars", "|{}"))
    .bake()) {
    // anything
}