Не влияет на настройку прокси для AuthenticationContext в Java KeyVaultClient - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу запустить свой Java-код для чтения Azure KeyVault с прокси-сервером на Windows-сервере.

Я просмотрел много сообщений, но смог найти любое работающее решение. В основном дано для C #, но я хочу для Java. Мой код работает нормально на моей локальной машине, но когда я пытаюсь запустить тот же код на сервере Pre-Prod Windows, где мне нужно установить Proxy не работает.

AuthenticationContext context = null;
        AuthenticationResult result = null;
        ExecutorService service = null;
        try {

            service = Executors.newFixedThreadPool(1);
            context = new AuthenticationContext(authorization, false, service);
        //added below 2 lines but don't see any effect
        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy.server.com", 80));
        context.setProxy(proxy);

            ClientCredential credentials = new ClientCredential(clientId, clientKey);
            Future<AuthenticationResult> future = context.acquireToken(
                    resource, credentials, null);
            result = future.get();

Когда я запускаюкод на моей локальной машине работает нормально с настройкой прокси и без нее, но на этом сервере Windows появляется исключение «Неизвестный хост».

1 Ответ

0 голосов
/ 08 ноября 2019

Я не уверен, поможет ли следующее, но вы можете попробовать.

Вы можете попытаться найти прямой IP-адрес прокси-сервера и использовать его в своем коде:

InetAddress[] allByName = InetAddress.getAllByName("proxy.server.com");
for (InetAddress address : allByName) {
    System.out.println(address.getHostAddress());
}

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(allByName[0].getHostAddress(),80););

Или

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(InetAddress.getByName("proxy.server.com"),80));

Может быть, прямой IP может работать.

...