Loading src/main/java/com/inteligr8/github/http/PreemptiveAuthInterceptor.java +16 −0 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
src/main/java/com/inteligr8/github/http/PreemptiveAuthInterceptor.java +16 −0 Original line number Diff line number Diff line Loading @@ -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); Loading