ADAL4j java代理问题

时间:2015-11-06 20:02:15

标签: java azure proxy adal

我正在尝试使用adal4j库连接azure for java.But我必须通过代理连接。以下是代码片段

String url = "https://login.microsoftonline.com/tenant_id/oauth2/authorize";
            authContext = new AuthenticationContext(url,false,
                                                    service);
   Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxyhostname", 443));
   authContext.setProxy(proxy);
   ClientCredential clientCred = new ClientCredential(XXXX, xxxx);
   Future<AuthenticationResult>  future = authContext.acquireToken(                                                   
                                                                clientCred,
                                                                null);
   authResult = future.get();

我也试过

            System.setProperty("http.proxyPort", "80");
            System.setProperty("http.proxyUser", "xxxx");
            System.setProperty("http.proxyPassword", "xxxx");
            System.setProperty("http.proxyHost", "xxxxxxx");

我一直得到以下错误

the error is.....java.net.ConnectException: Connection timed out: connect
java.util.concurrent.ExecutionException: java.net.ConnectException: Connection timed out: connect
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:188)
    at com.toyota.eap.auth.Test.main(Test.java:76)
Caused by: java.net.ConnectException: Connection timed out: connect

注意:仅当我们在办公室内有代理时才会出现此错误。从办公室外面如果我运行这个程序没有问题。

对此有任何想法。

由于

1 个答案:

答案 0 :(得分:1)

在使用Adal4j和Proxy时,已有线程可以回答java.net.ConnectException: Connection timed out的问题。请查看ADAL for Java ProxyJava proxy issues - Connection Timed Out以及How do I make HttpURLConnection use a proxy?

有关详细信息,您可以使用课程setConnectTimeout的{​​{1}}功能(请参阅http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLConnection.html)进行解决,请参阅下面的图片和代码:

enter image description here

URLConnection

同时,根据我的经验,如果代理IP和端口位于承诺网络环境中,您可以在本地环境中使用它,但在Azure上失败。从这个角度来看,我认为你应该首先确认代理是有效的on-promise和Azure。

如果连接可以连接并且需要很长时间,那么将连接超时属性设置为上面的引用是很有用的。