# HG changeset patch # User msheppar # Date 1358584760 0 # Node ID bbddb82e66ce3d964175004d6ef43833967b2012 # Parent 6e5b8f8361eb578e259fd9783874d27f962719c6 8006568: HTTP protocol handler NLTM Authentication should use Base64 API Reviewed-by: chegar, alanb diff -r 6e5b8f8361eb -r bbddb82e66ce jdk/src/solaris/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java --- a/jdk/src/solaris/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java Fri Jan 18 18:48:44 2013 +0000 +++ b/jdk/src/solaris/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java Sat Jan 19 08:39:20 2013 +0000 @@ -33,6 +33,7 @@ import java.net.UnknownHostException; import java.net.URL; import java.security.GeneralSecurityException; +import java.util.Base64; import sun.net.www.HeaderParser; import sun.net.www.protocol.http.AuthenticationInfo; @@ -230,7 +231,7 @@ private String buildType1Msg () { byte[] msg = client.type1(); - String result = "NTLM " + (new B64Encoder()).encode (msg); + String result = "NTLM " + Base64.getEncoder().encodeToString(msg); return result; } @@ -239,18 +240,12 @@ /* First decode the type2 message to get the server nonce */ /* nonce is located at type2[24] for 8 bytes */ - byte[] type2 = (new sun.misc.BASE64Decoder()).decodeBuffer (challenge); + byte[] type2 = Base64.getDecoder().decode(challenge); byte[] nonce = new byte[8]; new java.util.Random().nextBytes(nonce); byte[] msg = client.type3(type2, nonce); - String result = "NTLM " + (new B64Encoder()).encode (msg); + String result = "NTLM " + Base64.getEncoder().encodeToString(msg); return result; } } -class B64Encoder extends sun.misc.BASE64Encoder { - /* to force it to to the entire encoding in one line */ - protected int bytesPerLine () { - return 1024; - } -} diff -r 6e5b8f8361eb -r bbddb82e66ce jdk/src/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthSequence.java --- a/jdk/src/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthSequence.java Fri Jan 18 18:48:44 2013 +0000 +++ b/jdk/src/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthSequence.java Sat Jan 19 08:39:20 2013 +0000 @@ -26,8 +26,7 @@ package sun.net.www.protocol.http.ntlm; import java.io.IOException; -import sun.misc.BASE64Encoder; -import sun.misc.BASE64Decoder; +import java.util.Base64; /* * Hooks into Windows implementation of NTLM. @@ -77,11 +76,11 @@ assert !status.sequenceComplete; if (token != null) - input = (new BASE64Decoder()).decodeBuffer(token); + input = Base64.getDecoder().decode(token); byte[] b = getNextToken (crdHandle, input, status); if (b == null) throw new IOException ("Internal authentication error"); - return (new B64Encoder()).encode (b); + return Base64.getEncoder().encodeToString(b); } public boolean isComplete() { @@ -95,8 +94,3 @@ private native byte[] getNextToken (long crdHandle, byte[] lastToken, Status returned); } -class B64Encoder extends BASE64Encoder { - protected int bytesPerLine () { - return 1024; - } -} diff -r 6e5b8f8361eb -r bbddb82e66ce jdk/test/sun/net/www/protocol/http/ProxyTunnelServer.java --- a/jdk/test/sun/net/www/protocol/http/ProxyTunnelServer.java Fri Jan 18 18:48:44 2013 +0000 +++ b/jdk/test/sun/net/www/protocol/http/ProxyTunnelServer.java Sat Jan 19 08:39:20 2013 +0000 @@ -31,6 +31,7 @@ import java.io.*; import java.net.*; +import java.util.Base64; import javax.net.ssl.*; import javax.net.ServerSocketFactory; import sun.net.www.*; @@ -295,10 +296,8 @@ String recvdUserPlusPass = authInfo.substring(ind + 1).trim(); // extract encoded (username:passwd if (userPlusPass.equals( - new String( - (new sun.misc.BASE64Decoder()). - decodeBuffer(recvdUserPlusPass) - ))) { + new String(Base64.getDecoder().decode(recvdUserPlusPass)) + )) { matched = true; } } catch (Exception e) {