package com.msgilligan.bitcoinj.proxy.authext;
import com.msgilligan.bitcoinj.rpc.util.Base64;
import okhttp3.Call;
import okhttp3.Request;
import ratpack.retrofit.internal.RatpackCallFactory;
/**
* Workaround solution for adding Basic Auth Header
* Ratpack 1.5 will have a proper mechanism for doing this.
*/
public class BasicAuthCallFactory implements okhttp3.Call.Factory {
private final String authString;
public BasicAuthCallFactory(String user, String password) {
this.authString = authString(user, password);
}
@Override
public Call newCall(Request request) {
return RatpackCallFactory.INSTANCE.newCall(request
.newBuilder()
.header("Authorization", authString)
.build());
}
private static String authString(String username, String password) {
String auth = username + ":" + password;
return "Basic " + Base64.encodeToString(auth.getBytes(),Base64.DEFAULT).trim();
}
}