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
* @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$
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$
}
}
v.append(e.getValue());
v.append('"');
}
- conn.setRequestProperty(HDR_AUTHORIZATION, type.name()
+ conn.setRequestProperty(HDR_AUTHORIZATION, type.getSchemeName()
+ " " + v); //$NON-NLS-1$
}
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();