aboutsummaryrefslogtreecommitdiff
path: root/buildSrc/src/main/java/github/HttpClientCreator.java
diff options
context:
space:
mode:
authorMenny Even Danan <menny@evendanan.net>2020-03-11 01:01:07 +0000
committerMenny Even Danan <menny@evendanan.net>2020-03-11 01:20:33 +0000
commit98b260650ce948b6bf2007f26e0f8e3647fa7504 (patch)
tree682096e7aceb9119ba15c1661dc519f6fd366fdf /buildSrc/src/main/java/github/HttpClientCreator.java
parent84acd3bc36c00778db343244238e4de8ff573e11 (diff)
downloadAnySoftKeyboard-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.java26
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;
}
}