diff options
| author | Menny Even Danan <menny@evendanan.net> | 2020-03-11 01:01:07 +0000 |
|---|---|---|
| committer | Menny Even Danan <menny@evendanan.net> | 2020-03-11 01:20:33 +0000 |
| commit | 98b260650ce948b6bf2007f26e0f8e3647fa7504 (patch) | |
| tree | 682096e7aceb9119ba15c1661dc519f6fd366fdf /buildSrc/src/main/java/github/HttpClientCreator.java | |
| parent | 84acd3bc36c00778db343244238e4de8ff573e11 (diff) | |
| download | AnySoftKeyboard-98b260650ce948b6bf2007f26e0f8e3647fa7504.tar.gz AnySoftKeyboard-98b260650ce948b6bf2007f26e0f8e3647fa7504.tar.bz2 | |
Using preemtive auth for github API
Diffstat (limited to 'buildSrc/src/main/java/github/HttpClientCreator.java')
| -rw-r--r-- | buildSrc/src/main/java/github/HttpClientCreator.java | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/buildSrc/src/main/java/github/HttpClientCreator.java b/buildSrc/src/main/java/github/HttpClientCreator.java index 86a2b1a34..e2795364b 100644 --- a/buildSrc/src/main/java/github/HttpClientCreator.java +++ b/buildSrc/src/main/java/github/HttpClientCreator.java @@ -1,15 +1,39 @@ package github; +import org.apache.http.HttpHost; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.AuthCache; +import org.apache.http.client.protocol.HttpClientContext; +import org.apache.http.impl.auth.BasicScheme; +import org.apache.http.impl.client.BasicAuthCache; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.impl.client.LaxRedirectStrategy; class HttpClientCreator { public static CloseableHttpClient create(String username, String password) { BasicCredentialsProvider creds = new BasicCredentialsProvider(); creds.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password)); - return HttpClientBuilder.create().setDefaultCredentialsProvider(creds).build(); + + return HttpClientBuilder.create() + .setRedirectStrategy(new LaxRedirectStrategy()) + .setDefaultCredentialsProvider(creds) + .build(); + } + + public static HttpClientContext createContext(String username, String password) { + BasicCredentialsProvider creds = new BasicCredentialsProvider(); + creds.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password)); + + AuthCache authCache = new BasicAuthCache(); + authCache.put(new HttpHost("api.github.com", 443, "https"), new BasicScheme()); + // Add AuthCache to the execution context + HttpClientContext context = HttpClientContext.create(); + context.setCredentialsProvider(creds); + context.setAuthCache(authCache); + + return context; } } |
