在Spring Boot的请求目标中发现无效字符

我的应用程序是使用java -jar以及1.5.6.RELEASE版本的spring boot启动的。

我的请求之一的内容为字符“ {”。将其发送到服务器时,会引发以下异常:

java.lang.IllegalArgumentException:在请求目标中找到无效字符。有效字符在org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:472)和org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:683)的RFC

7230和RFC 3986中定义org.apache.tomcat.util.net.NioEndpoint $

SocketProcessor上的org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)在org.apache.coyote.AbstractProtocol

$

ConnectionHandler.process(AbstractProtocol.java:868)在org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)处的doRun(NioEndpoint.java:1455)在java.util处的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)处的doRun(NioEndpoint.java:1455)

.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor。

哪里错了?我如何解决它?

EDIT1:

我的休息是这样的:

var jsonData = {

id: $("#hiddenId").val(),

permitNumber: $("#txtPermitNumber").val(),

permitToDate: $("#txtPermitToDate").val()

}

document.location = restUrl + "/print?reportParams= " + JSON.stringify(jsonData);

回答:

据https://tomcat.apache.org/tomcat-8.5-doc/config/systemprops.html,

requestTargetAllow 已被弃用。对我来说,这里介绍的其他解决方案也不起作用。根据Tomcat文档,我找到了一种设置属性

relaxedQueryChars的方法

@Bean

public ConfigurableServletWebServerFactory webServerFactory() {

TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();

factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {

@Override

public void customize(Connector connector) {

connector.setProperty("relaxedQueryChars", "|{}[]");

}

});

return factory;

}

以上是 在Spring Boot的请求目标中发现无效字符 的全部内容, 来源链接: utcz.com/qa/435632.html

回到顶部