Re: svn commit: r1500401

2013-07-08 Thread Oleg Kalnichevski
On Sun, 2013-07-07 at 20:18 +0100, sebb wrote:
 On 7 July 2013 11:20,  ol...@apache.org wrote:
  Author: olegk
  Date: Sun Jul  7 10:20:33 2013
  New Revision: 1500401
 
  URL: http://svn.apache.org/r1500401
  Log:
  Follow up to HTTPCLIENT-1381: fixes another NPE
  Contributed by Ricardo Pereira thc202 at gmail.com
 
  Modified:
  
  httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
  
  httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/integration/TestClientAuthenticationFakeNTLM.java
 
  Modified: 
  httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
  URL: 
  http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java?rev=1500401r1=1500400r2=1500401view=diff
  ==
  --- 
  httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
   (original)
  +++ 
  httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
   Sun Jul  7 10:20:33 2013
  @@ -624,7 +624,7 @@ final class NTLMEngineImpl implements NT
   final MD4 md4 = new MD4();
   md4.update(unicodePassword);
   return md4.getOutput();
  -} catch (java.io.UnsupportedEncodingException e) {
  +} catch (UnsupportedEncodingException e) {
   throw new NTLMEngineException(Unicode not supported:  + 
  e.getMessage(), e);
   }
   }
  @@ -641,9 +641,11 @@ final class NTLMEngineImpl implements NT
   final HMACMD5 hmacMD5 = new HMACMD5(ntlmHash);
   // Upper case username, upper case domain!
   
  hmacMD5.update(user.toUpperCase(Locale.US).getBytes(UnicodeLittleUnmarked));
  -
  hmacMD5.update(domain.toUpperCase(Locale.US).getBytes(UnicodeLittleUnmarked));
  +if (domain != null) {
  +
  hmacMD5.update(domain.toUpperCase(Locale.US).getBytes(UnicodeLittleUnmarked));
 
 Note that getBytes(String) is also Locale-sensitive; should probably
 use Locale.ENGLISH.
 (Locale.ROOT is 1.6+)

Sebastian,

I am not sure I follow you. String#getBytes only takes charset encoding
as a parameter (either as string prior to 1.6 or Charset in 1.6+), not a
locale. In any way just go ahead and commit the fix if you see a problem
with this code.

Cheers

Oleg


-
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org



Re: svn commit: r1500401

2013-07-08 Thread sebb
On 8 July 2013 10:34, Oleg Kalnichevski ol...@apache.org wrote:
 On Sun, 2013-07-07 at 20:18 +0100, sebb wrote:
 On 7 July 2013 11:20,  ol...@apache.org wrote:
  Author: olegk
  Date: Sun Jul  7 10:20:33 2013
  New Revision: 1500401
 
  URL: http://svn.apache.org/r1500401
  Log:
  Follow up to HTTPCLIENT-1381: fixes another NPE
  Contributed by Ricardo Pereira thc202 at gmail.com
 
  Modified:
  
  httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
  
  httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/integration/TestClientAuthenticationFakeNTLM.java
 
  Modified: 
  httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
  URL: 
  http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java?rev=1500401r1=1500400r2=1500401view=diff
  ==
  --- 
  httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
   (original)
  +++ 
  httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
   Sun Jul  7 10:20:33 2013
  @@ -624,7 +624,7 @@ final class NTLMEngineImpl implements NT
   final MD4 md4 = new MD4();
   md4.update(unicodePassword);
   return md4.getOutput();
  -} catch (java.io.UnsupportedEncodingException e) {
  +} catch (UnsupportedEncodingException e) {
   throw new NTLMEngineException(Unicode not supported:  + 
  e.getMessage(), e);
   }
   }
  @@ -641,9 +641,11 @@ final class NTLMEngineImpl implements NT
   final HMACMD5 hmacMD5 = new HMACMD5(ntlmHash);
   // Upper case username, upper case domain!
   
  hmacMD5.update(user.toUpperCase(Locale.US).getBytes(UnicodeLittleUnmarked));
  -
  hmacMD5.update(domain.toUpperCase(Locale.US).getBytes(UnicodeLittleUnmarked));
  +if (domain != null) {
  +
  hmacMD5.update(domain.toUpperCase(Locale.US).getBytes(UnicodeLittleUnmarked));

 Note that getBytes(String) is also Locale-sensitive; should probably
 use Locale.ENGLISH.
 (Locale.ROOT is 1.6+)

 Sebastian,

 I am not sure I follow you. String#getBytes only takes charset encoding
 as a parameter (either as string prior to 1.6 or Charset in 1.6+), not a
 locale. In any way just go ahead and commit the fix if you see a problem
 with this code.

Sorry, brain-fart!

The code is fine as is - though it might be worth considering using a
constant for the charset.
This could then be documented.

 Cheers

 Oleg


 -
 To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
 For additional commands, e-mail: dev-h...@hc.apache.org


-
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org



Re: svn commit: r1500401 - in /httpcomponents/httpclient/trunk/httpclient/src: main/java/org/apache/http/impl/auth/NTLMEngineImpl.java test/java/org/apache/http/impl/client/integration/TestClientAuthe

2013-07-07 Thread sebb
On 7 July 2013 11:20,  ol...@apache.org wrote:
 Author: olegk
 Date: Sun Jul  7 10:20:33 2013
 New Revision: 1500401

 URL: http://svn.apache.org/r1500401
 Log:
 Follow up to HTTPCLIENT-1381: fixes another NPE
 Contributed by Ricardo Pereira thc202 at gmail.com

 Modified:
 
 httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
 
 httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/integration/TestClientAuthenticationFakeNTLM.java

 Modified: 
 httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
 URL: 
 http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java?rev=1500401r1=1500400r2=1500401view=diff
 ==
 --- 
 httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
  (original)
 +++ 
 httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/auth/NTLMEngineImpl.java
  Sun Jul  7 10:20:33 2013
 @@ -624,7 +624,7 @@ final class NTLMEngineImpl implements NT
  final MD4 md4 = new MD4();
  md4.update(unicodePassword);
  return md4.getOutput();
 -} catch (java.io.UnsupportedEncodingException e) {
 +} catch (UnsupportedEncodingException e) {
  throw new NTLMEngineException(Unicode not supported:  + 
 e.getMessage(), e);
  }
  }
 @@ -641,9 +641,11 @@ final class NTLMEngineImpl implements NT
  final HMACMD5 hmacMD5 = new HMACMD5(ntlmHash);
  // Upper case username, upper case domain!
  
 hmacMD5.update(user.toUpperCase(Locale.US).getBytes(UnicodeLittleUnmarked));
 -
 hmacMD5.update(domain.toUpperCase(Locale.US).getBytes(UnicodeLittleUnmarked));
 +if (domain != null) {
 +
 hmacMD5.update(domain.toUpperCase(Locale.US).getBytes(UnicodeLittleUnmarked));

Note that getBytes(String) is also Locale-sensitive; should probably
use Locale.ENGLISH.
(Locale.ROOT is 1.6+)

 +}
  return hmacMD5.getOutput();
 -} catch (java.io.UnsupportedEncodingException e) {
 +} catch (UnsupportedEncodingException e) {
  throw new NTLMEngineException(Unicode not supported!  + 
 e.getMessage(), e);
  }
  }
 @@ -660,9 +662,11 @@ final class NTLMEngineImpl implements NT
  final HMACMD5 hmacMD5 = new HMACMD5(ntlmHash);
  // Upper case username, mixed case target!!
  
 hmacMD5.update(user.toUpperCase(Locale.US).getBytes(UnicodeLittleUnmarked));
 -hmacMD5.update(domain.getBytes(UnicodeLittleUnmarked));
 +if (domain != null) {
 +hmacMD5.update(domain.getBytes(UnicodeLittleUnmarked));
 +}
  return hmacMD5.getOutput();
 -} catch (java.io.UnsupportedEncodingException e) {
 +} catch (UnsupportedEncodingException e) {
  throw new NTLMEngineException(Unicode not supported!  + 
 e.getMessage(), e);
  }
  }
 @@ -981,7 +985,7 @@ final class NTLMEngineImpl implements NT
  hostBytes = unqualifiedHost != null? 
 unqualifiedHost.getBytes(ASCII) : null;
  domainBytes = unqualifiedDomain != null ? unqualifiedDomain
  .toUpperCase(Locale.US).getBytes(ASCII) : null;
 -} catch (java.io.UnsupportedEncodingException e) {
 +} catch (UnsupportedEncodingException e) {
  throw new NTLMEngineException(Unicode unsupported:  + 
 e.getMessage(), e);
  }
  }
 @@ -1104,7 +1108,7 @@ final class NTLMEngineImpl implements NT
  if (bytes.length != 0) {
  try {
  target = new String(bytes, UnicodeLittleUnmarked);
 -} catch (java.io.UnsupportedEncodingException e) {
 +} catch (UnsupportedEncodingException e) {
  throw new NTLMEngineException(e.getMessage(), e);
  }
  }

 Modified: 
 httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/integration/TestClientAuthenticationFakeNTLM.java
 URL: 
 http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/integration/TestClientAuthenticationFakeNTLM.java?rev=1500401r1=1500400r2=1500401view=diff
 ==
 --- 
 httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/integration/TestClientAuthenticationFakeNTLM.java
  (original)
 +++ 
 httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/impl/client/integration/TestClientAuthenticationFakeNTLM.java
  Sun Jul  7