From d63fa54076a5d042e702f3a12c4bc55c7d281614 Mon Sep 17 00:00:00 2001 From: Horia Chiorean Date: Thu, 7 Mar 2013 16:33:22 +0200 Subject: [PATCH] MODE-1823 - Fixed additional problems in WebDAV servlet encoding. --- .../webdav/fromcatalina/URLEncoder.java | 2 +- .../webdav/methods/AbstractMethod.java | 12 ++---------- .../org/modeshape/webdav/methods/DoCopy.java | 2 +- .../org/modeshape/webdav/methods/DoGet.java | 18 ++++++++++++------ 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/web/modeshape-webdav/src/main/java/org/modeshape/webdav/fromcatalina/URLEncoder.java b/web/modeshape-webdav/src/main/java/org/modeshape/webdav/fromcatalina/URLEncoder.java index fe572cf67b..14f0757992 100644 --- a/web/modeshape-webdav/src/main/java/org/modeshape/webdav/fromcatalina/URLEncoder.java +++ b/web/modeshape-webdav/src/main/java/org/modeshape/webdav/fromcatalina/URLEncoder.java @@ -69,7 +69,7 @@ public String encode( String path ) { ByteArrayOutputStream buf = new ByteArrayOutputStream(maxBytesPerChar); OutputStreamWriter writer = null; try { - writer = new OutputStreamWriter(buf, "UTF8"); + writer = new OutputStreamWriter(buf, "UTF-8"); } catch (Exception e) { LOG.error(e, new TextI18n("Error in encode <" + path + ">")); writer = new OutputStreamWriter(buf); diff --git a/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/AbstractMethod.java b/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/AbstractMethod.java index d5e3eb181e..632c8198e9 100644 --- a/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/AbstractMethod.java +++ b/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/AbstractMethod.java @@ -154,7 +154,7 @@ protected String getRelativePath( HttpServletRequest request ) { if ((result == null) || (result.equals(""))) { result = "/"; } - return encodedResult(result); + return result; } // No, extract the desired path directly from the request @@ -163,17 +163,9 @@ protected String getRelativePath( HttpServletRequest request ) { if ((result == null) || (result.equals(""))) { result = "/"; } - //always convert to UTF-8 - return encodedResult(result); + return result; } - private String encodedResult( String result ) { - try { - return new String(result.getBytes(), "UTF-8"); - } catch (Exception e){ - throw new RuntimeException(e); - } - } /** * creates the parent path from the given path by removing the last '/' and everything after that diff --git a/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/DoCopy.java b/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/DoCopy.java index 8c389f4cdc..8164fc85e2 100644 --- a/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/DoCopy.java +++ b/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/DoCopy.java @@ -335,7 +335,7 @@ private String parseDestinationHeader( HttpServletRequest req, } // Remove url encoding from destination - destinationPath = RequestUtil.URLDecode(destinationPath, "UTF8"); + destinationPath = RequestUtil.URLDecode(destinationPath, "UTF-8"); int protocolIndex = destinationPath.indexOf("://"); if (protocolIndex >= 0) { diff --git a/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/DoGet.java b/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/DoGet.java index 1fe66ae49c..59c782efd7 100644 --- a/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/DoGet.java +++ b/web/modeshape-webdav/src/main/java/org/modeshape/webdav/methods/DoGet.java @@ -142,19 +142,25 @@ protected void folderBody( ITransaction transaction, childrenTemp.append("\">"); childrenTemp.append(""); childrenTemp.append(""); childrenTemp.append(child); childrenTemp.append("");