Tomcat Manager App:使用IE时部署失败,Chrome正常运行

时间:2016-07-15 17:13:12

标签: java internet-explorer tomcat

新服务器上的Tomcat Manager应用程序存在一个奇怪的问题。上传war文件时,用户路径信息将包含在应用程序名称中 示例:上载OMS-PRIME战争时,经理应用程序部署为/C:usersUserNameDesktopOMS-PRIME

仅在使用Internet Explorer时才会发生这种情况。如果使用Chrome浏览器打开经理应用,则不会发生这种情况。 IE是我们的企业标准浏览器。

  • 服务器:Windows Server 2012R2
  • Tomcat:8.0.35
  • Java:1.8.0_92-b14
  • Internet Explorer 11

有什么想法吗?

1 个答案:

答案 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;禁用