|
|
@@ -85,24 +85,44 @@ abstract class HttpAuthMethod { |
|
|
|
public HttpAuthMethod method(String hdr) { |
|
|
|
return None.INSTANCE; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public String getSchemeName() { |
|
|
|
return "None"; //$NON-NLS-1$ |
|
|
|
} |
|
|
|
}, |
|
|
|
BASIC { |
|
|
|
@Override |
|
|
|
public HttpAuthMethod method(String hdr) { |
|
|
|
return new Basic(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public String getSchemeName() { |
|
|
|
return "Basic"; //$NON-NLS-1$ |
|
|
|
} |
|
|
|
}, |
|
|
|
DIGEST { |
|
|
|
@Override |
|
|
|
public HttpAuthMethod method(String hdr) { |
|
|
|
return new Digest(hdr); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public String getSchemeName() { |
|
|
|
return "Digest"; //$NON-NLS-1$ |
|
|
|
} |
|
|
|
}, |
|
|
|
NEGOTIATE { |
|
|
|
@Override |
|
|
|
public HttpAuthMethod method(String hdr) { |
|
|
|
return new Negotiate(hdr); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public String getSchemeName() { |
|
|
|
return "Negotiate"; //$NON-NLS-1$ |
|
|
|
} |
|
|
|
}; |
|
|
|
/** |
|
|
|
* Creates a HttpAuthMethod instance configured with the provided HTTP |
|
|
@@ -112,6 +132,13 @@ abstract class HttpAuthMethod { |
|
|
|
* @return a configured HttpAuthMethod instance |
|
|
|
*/ |
|
|
|
public abstract HttpAuthMethod method(String hdr); |
|
|
|
|
|
|
|
/** |
|
|
|
* @return the name of the authentication scheme in the form to be used |
|
|
|
* in HTTP authentication headers as specified in RFC2617 and |
|
|
|
* RFC4559 |
|
|
|
*/ |
|
|
|
public abstract String getSchemeName(); |
|
|
|
} |
|
|
|
|
|
|
|
static final String EMPTY_STRING = ""; //$NON-NLS-1$ |
|
|
@@ -270,7 +297,7 @@ abstract class HttpAuthMethod { |
|
|
|
void configureRequest(final HttpConnection conn) throws IOException { |
|
|
|
String ident = user + ":" + pass; //$NON-NLS-1$ |
|
|
|
String enc = Base64.encodeBytes(ident.getBytes("UTF-8")); //$NON-NLS-1$ |
|
|
|
conn.setRequestProperty(HDR_AUTHORIZATION, type.name() |
|
|
|
conn.setRequestProperty(HDR_AUTHORIZATION, type.getSchemeName() |
|
|
|
+ " " + enc); //$NON-NLS-1$ |
|
|
|
} |
|
|
|
} |
|
|
@@ -357,7 +384,7 @@ abstract class HttpAuthMethod { |
|
|
|
v.append(e.getValue()); |
|
|
|
v.append('"'); |
|
|
|
} |
|
|
|
conn.setRequestProperty(HDR_AUTHORIZATION, type.name() |
|
|
|
conn.setRequestProperty(HDR_AUTHORIZATION, type.getSchemeName() |
|
|
|
+ " " + v); //$NON-NLS-1$ |
|
|
|
} |
|
|
|
|
|
|
@@ -514,7 +541,7 @@ abstract class HttpAuthMethod { |
|
|
|
byte[] token = context.initSecContext(prevToken, 0, |
|
|
|
prevToken.length); |
|
|
|
|
|
|
|
conn.setRequestProperty(HDR_AUTHORIZATION, getType().name() |
|
|
|
conn.setRequestProperty(HDR_AUTHORIZATION, getType().getSchemeName() |
|
|
|
+ " " + Base64.encodeBytes(token)); //$NON-NLS-1$ |
|
|
|
} catch (GSSException e) { |
|
|
|
IOException ioe = new IOException(); |