in src/main/java/com/aliyun/tea/okhttp/OkHttpClientBuilder.java [184:216]
public OkHttpClientBuilder proxyAuthenticator(Map<String, Object> map) {
try {
if (null != map.get("httpProxy") || null != map.get("httpsProxy")) {
Object proxy = map.get("httpsProxy") != null ? map.get("httpsProxy") : map.get("httpProxy");
URL proxyUrl = new URL(String.valueOf(proxy));
String userInfo = proxyUrl.getUserInfo();
if (null != userInfo) {
final String[] userMessage = userInfo.split(":");
final String credential = Credentials.basic(userMessage[0], userMessage[1]);
Authenticator authenticator = new Authenticator() {
@Override
public Request authenticate(Route route, Response response) throws IOException {
return response.request().newBuilder()
.header("Proxy-Authorization", credential)
.build();
}
};
this.builder.proxyAuthenticator(authenticator);
}
} else if (null != map.get("socks5Proxy")) {
Object proxy = map.get("socks5Proxy");
URI proxyUrl = new URI(String.valueOf(proxy));
String userInfo = proxyUrl.getUserInfo();
if (null != userInfo) {
final String[] userMessage = userInfo.split(":");
this.builder.addInterceptor(new SocksProxyAuthInterceptor(userMessage[0], userMessage[1]));
}
}
return this;
} catch (Exception e) {
throw new TeaException(e.getMessage(), e);
}
}