You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2017/01/27 14:08:19 UTC

[2/2] cxf git commit: [CXF-6962] Optional use of ISO-8859-1 when processing BasicAuth

[CXF-6962] Optional use of ISO-8859-1 when processing BasicAuth


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/cb6447bf
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/cb6447bf
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/cb6447bf

Branch: refs/heads/3.0.x-fixes
Commit: cb6447bffd517aeb3ea01de6b5484542ad5adb71
Parents: 206a1ed
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Fri Jan 27 14:08:00 2017 +0000
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Fri Jan 27 14:08:00 2017 +0000

----------------------------------------------------------------------
 .../cxf/transport/http/AbstractHTTPDestination.java  | 14 +++++++++++---
 .../http/auth/DefaultBasicAuthSupplier.java          | 15 ++++++++++++---
 2 files changed, 23 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/cb6447bf/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
----------------------------------------------------------------------
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
index bb63bd5..19c4374 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
@@ -22,10 +22,10 @@ package org.apache.cxf.transport.http;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
 import java.net.HttpURLConnection;
 import java.net.ServerSocket;
 import java.net.URL;
-import java.nio.charset.StandardCharsets;
 import java.security.Principal;
 import java.util.Arrays;
 import java.util.Collection;
@@ -173,8 +173,16 @@ public abstract class AbstractHTTPDestination
             try {
                 byte[] authBytes = Base64Utility.decode(authEncoded);
                 
-                String authDecoded = decodeBasicAuthWithIso8859 
-                    ? new String(authBytes, StandardCharsets.ISO_8859_1) : new String(authBytes);
+                String authDecoded = null;
+                if (decodeBasicAuthWithIso8859) {
+                    try {
+                        authDecoded = new String(authBytes, "ISO-8859-1");
+                    } catch (UnsupportedEncodingException ex) {
+                        authDecoded = new String(authBytes);
+                    }  
+                } else {
+                    authDecoded = new String(authBytes);
+                } 
                 
                 int idx = authDecoded.indexOf(':');
                 String username = null;

http://git-wip-us.apache.org/repos/asf/cxf/blob/cb6447bf/rt/transports/http/src/main/java/org/apache/cxf/transport/http/auth/DefaultBasicAuthSupplier.java
----------------------------------------------------------------------
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/auth/DefaultBasicAuthSupplier.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/auth/DefaultBasicAuthSupplier.java
index 8a9856f..26ad1d2 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/auth/DefaultBasicAuthSupplier.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/auth/DefaultBasicAuthSupplier.java
@@ -18,8 +18,8 @@
  */
 package org.apache.cxf.transport.http.auth;
 
+import java.io.UnsupportedEncodingException;
 import java.net.URI;
-import java.nio.charset.StandardCharsets;
 
 import org.apache.cxf.common.util.Base64Utility;
 import org.apache.cxf.common.util.PropertyUtils;
@@ -42,7 +42,16 @@ public final class DefaultBasicAuthSupplier implements HttpAuthSupplier {
     
     public static String getBasicAuthHeader(String userName, String passwd, boolean useIso8859) {
         String userAndPass = userName + ":" + passwd;
-        byte[] authBytes = useIso8859 ? userAndPass.getBytes(StandardCharsets.ISO_8859_1) : userAndPass.getBytes();
+        byte[] authBytes = null;
+        if (useIso8859) {
+            try {
+                authBytes = userAndPass.getBytes("ISO-8859-1");
+            } catch (UnsupportedEncodingException ex) {
+                authBytes = userAndPass.getBytes();
+            }
+        } else {
+            authBytes = userAndPass.getBytes();
+        }
         return "Basic " + Base64Utility.encode(authBytes);
     }
 
@@ -61,4 +70,4 @@ public final class DefaultBasicAuthSupplier implements HttpAuthSupplier {
         }
     }
 
-}
\ No newline at end of file
+}