HTTPCLIENT-1394: minor improvements in CurrentWindowsCredentials

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1602397 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Oleg Kalnichevski 2014-06-13 12:01:47 +00:00
parent 54e3ad83fc
commit 8b01566bf7
2 changed files with 11 additions and 15 deletions

View File

@ -33,8 +33,8 @@ import java.security.Principal;
import org.apache.http.annotation.Immutable; import org.apache.http.annotation.Immutable;
import org.apache.http.auth.Credentials; import org.apache.http.auth.Credentials;
import com.sun.jna.platform.win32.Secur32Util;
import com.sun.jna.platform.win32.Secur32.EXTENDED_NAME_FORMAT; import com.sun.jna.platform.win32.Secur32.EXTENDED_NAME_FORMAT;
import com.sun.jna.platform.win32.Secur32Util;
/** /**
* Returns the current Windows user credentials * Returns the current Windows user credentials
@ -44,10 +44,12 @@ import com.sun.jna.platform.win32.Secur32.EXTENDED_NAME_FORMAT;
* @since 4.4 * @since 4.4
*/ */
@Immutable @Immutable
public class CurrentWindowsCredentials implements Credentials, Serializable, Principal { public final class CurrentWindowsCredentials implements Credentials, Serializable, Principal {
private static final long serialVersionUID = 4361166468529298169L; private static final long serialVersionUID = 4361166468529298169L;
public static final CurrentWindowsCredentials INSTANCE = new CurrentWindowsCredentials();
/** /**
* Get the SAM-compatible username of the currently logged-on user. * Get the SAM-compatible username of the currently logged-on user.
* *
@ -60,14 +62,6 @@ public class CurrentWindowsCredentials implements Credentials, Serializable, Pri
private CurrentWindowsCredentials() { private CurrentWindowsCredentials() {
} }
private static class LazyHolder {
private static final CurrentWindowsCredentials INSTANCE = new CurrentWindowsCredentials();
}
public static CurrentWindowsCredentials get() {
return LazyHolder.INSTANCE;
}
@Override @Override
public Principal getUserPrincipal() { public Principal getUserPrincipal() {
return this; return this;
@ -75,16 +69,18 @@ public class CurrentWindowsCredentials implements Credentials, Serializable, Pri
@Override @Override
public int hashCode() { public int hashCode() {
return 245678; // always the same? return getClass().hashCode();
} }
@Override @Override
public boolean equals(final Object o) { public boolean equals(final Object o) {
if (this == o) return true; if (this == o) {
if (o instanceof CurrentWindowsCredentials) {
return true; return true;
} }
return false; if (o == null) {
return false;
}
return getClass().equals(o.getClass());
} }
@Override @Override

View File

@ -48,7 +48,7 @@ public class WindowsCredentialsProvider extends BasicCredentialsProvider {
public Credentials getCredentials(final AuthScope authscope) { public Credentials getCredentials(final AuthScope authscope) {
final String scheme = authscope.getScheme(); final String scheme = authscope.getScheme();
if (AuthSchemes.NTLM.equalsIgnoreCase(scheme) || AuthSchemes.SPNEGO.equalsIgnoreCase(scheme)) { if (AuthSchemes.NTLM.equalsIgnoreCase(scheme) || AuthSchemes.SPNEGO.equalsIgnoreCase(scheme)) {
return CurrentWindowsCredentials.get(); return CurrentWindowsCredentials.INSTANCE;
} else { } else {
return super.getCredentials(authscope); return super.getCredentials(authscope);
} }