The valid characters are defined in RFC 7230 and RFC 3986 问题处理

508 阅读1分钟

query 查询条件含特殊字符,造成tomcat 高版本报错

java.lang.IllegalArgumentException: 
	Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

RFC 3986 也就是高版本对输入字符进行严格限制只允许字母数字"-_.~"

解决方法

    /**
     * 解决高版本 入参字符限制
     * java.lang.IllegalArgumentException:
     * 	Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
     * @return
     */
    @Bean
    public ConfigurableServletWebServerFactory webServerFactory() {
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "|{}[]"));
        return factory;
    }