新服务器上的Tomcat Manager应用程序存在一个奇怪的问题。上传war文件时,用户路径信息将包含在应用程序名称中 示例:上载OMS-PRIME战争时,经理应用程序部署为/C:usersUserNameDesktopOMS-PRIME
仅在使用Internet Explorer时才会发生这种情况。如果使用Chrome浏览器打开经理应用,则不会发生这种情况。 IE是我们的企业标准浏览器。
有什么想法吗?
答案 0 :(得分:1)
通过在文件名值中包含未转义的反斜杠,Internet Explorer当前不符合RFC6266。
如果您能够使用自定义版本的Tomcat,您可以在HttpParser.unquote中重新引入该条件,如果它不是以双引号开头,则只返回未修改的字符串:
Index: http://svn.apache.org/repos/asf/tomcat/tc8.5.x/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java
===================================================================
--- java/org/apache/tomcat/util/http/parser/HttpParser.java (revision 1755813)
+++ java/org/apache/tomcat/util/http/parser/HttpParser.java (working copy)
@@ -62,7 +62,7 @@
}
public static String unquote(String input) {
- if (input == null || input.length() < 2) {
+ if (input == null || input.length() < 2 || input.charAt(0) != '"') {
return input;
}
您还可以通过执行以下操作修改IE以不在filename属性中发送完整路径来解决此问题:
1)互联网选项
2)安全标签
3)选择相关区域
4)单击自定义级别...
5)在杂项下更改选项&#34;在将文件上载到服务器时包括本地目录路径&#34;禁用