在tomcat 7中编写前向和后向斜杠?

时间:2012-03-15 11:59:28

标签: tomcat tomcat7

我尝试发送http://site.com/abc%2Fabc之类的请求但它不起作用(发送状态400)。我如何理解tomcat出于安全原因不接受编码路径分隔符,但我不知道如何启用此编码。 (我发现apache http服务器只有AllowEncodedSlashes选项)。你能救我吗?

更新

我使用微小的黑客修复了这个问题 - 在渲染之前替换'|'上的所有'/'字符并在'/'

上反转此字符后

4 个答案:

答案 0 :(得分:22)

有一个允许编码路径分隔符的Tomcat选项。

将CATALINA_OPTS env var设置为

-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true

这将允许编码的斜杠。

答案 1 :(得分:7)

我们也可以添加此条目 catalina.properties中的“org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH = true” 允许在url中使用带编码的斜杠。


要允许反斜杠,您必须设置不同的属性。 Refer this url 对于不同的配置。

答案 2 :(得分:0)

您是否尝试将URIEncoding="UTF-8"放入<Connector的{​​{1}}?

答案 3 :(得分:0)

通过编辑$ CATALINA_HOME \ conf \ server.xml

使我的工作变得可行

旧价值:<Connector ... protocol="HTTP/1.1"... />

新价值:<Connector ... protocol="HTTP/1.1"... relaxedQueryChars='\ { } |' />

我正在使用Tomcat 7.0.88