我正在配置NetIQ IDAM,NetIQ IDAM的一个组件即用户应用程序在预先配置的Tomcat8.5.x上运行。用户应用程序具有一些预定义的功能,可以在URL中强制反斜杠,但是tomcat作为一种安全措施正在阻止URL中的BlackSlashes。
我试过使用以下选项:
-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
-Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true但没用。
而且,由于组件的一部分是不可自定义的,除了以某种方式配置tomcat以允许URL中的反斜杠之外,我没有任何其他选项。
任何建议,我如何能做到这一点。
示例HTTP请求: ?targetName=abc@xyz.com
发布于 2018-04-30 19:35:11
客户已经破产了。RFC 7230和RFC 3986要求在查询字符串中使用时,\字符为%nn编码。
通常,Tomcat社区实现规范,并将任何不符合规范的行为视为bug。Tomcat社区希望其他开发人员社区也这样做。
不幸的是,浏览器供应商已经选择忽略RFC 7230和RFC 3986的%nn编码要求,尽管它们声称按照自己的规范工作,但最终的结果是,每个主要浏览器%nn都对需要编码的字符子集进行编码。
对您来说,好消息是,由于这种混乱,Tomcat 9.0.8、8.5.21、8.0.52和7.0.87将引入(当我键入这个版本时,这些版本仍在进行表决)选项,这些选项允许在URI路径和/或查询字符串中直接使用字符而不需要%nn编码。
一旦这些版本可用,您就可以配置Tomcat来接受查询字符串中的\。同时,我建议对客户端提出一个错误,因为它不符合规范。最好有一个正常工作的客户端,这样你就可以放弃Tomcat的工作了。
https://stackoverflow.com/questions/50095419
复制相似问题