From 6fb1d1548b684b0b00286e662e705a3b2ccd60d9 Mon Sep 17 00:00:00 2001 From: Brian Long Date: Sat, 27 Feb 2021 09:38:56 -0500 Subject: [PATCH] added some javadoc comments --- .../github/http/PreemptiveAuthInterceptor.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/com/inteligr8/github/http/PreemptiveAuthInterceptor.java b/src/main/java/com/inteligr8/github/http/PreemptiveAuthInterceptor.java index d48ddb3..de23015 100644 --- a/src/main/java/com/inteligr8/github/http/PreemptiveAuthInterceptor.java +++ b/src/main/java/com/inteligr8/github/http/PreemptiveAuthInterceptor.java @@ -15,8 +15,24 @@ import org.apache.http.impl.auth.BasicScheme; import org.apache.http.protocol.HttpContext; import org.apache.http.protocol.HttpCoreContext; +/** + * This class allows the developer to force the sending of credentials on the + * first HTTP request. Without this interceptor, all requests will first try + * without credentials. + * + * A subsequent retry will happen only under certain HTTP status codes. Some + * services will return a 404 instead of an expected 401 or 403. This is for + * security reasons. As a side effect, it fools the Apache HTTP client into + * thinking that the resource does not exist, even if it were authorized. So + * it will not retry it with credentials. + * + * @author brian@inteligr8.com + */ public class PreemptiveAuthInterceptor implements HttpRequestInterceptor { + /** + * @see HttpRequestInterceptor#process(HttpRequest, HttpContext) + */ public void process(final HttpRequest request, final HttpContext context) throws HttpException, IOException { AuthState authState = (AuthState) context.getAttribute(HttpClientContext.TARGET_AUTH_STATE);