Я не могу использовать Azure SDK для Java-класса KeyVaultClient для получения значения хранилища через прокси-сервер из моей офисной сети, на моей консоли отображается «Пожалуйста, войдите в Azure CLI и нажмите любую клавишу, чтобы продолжить после успешного входа». и повесил; Я могу получить значение из сети без настроенного прокси (из моей домашней сети)
Я проводил исследование и пришел пересечь этот пост https://github.com/Azure/azure-sdk-for-net/issues/4404, к сожалению , это для DotNet, я не вижу , что люди обсуждают много о том же проблеме с Java SDK, я использую com.microsoft.azure.azure v1.16 и Azure-Keyvault 1.0.0.
Кажется, по какой-то причине созданный мною RestClient содержит настройки прокси-сервера, игнорируемый KyeVaultClient при создании экземпляра класса, мне было интересно, у кого-то есть такая же проблема, любая работа или предложения.
Спасибо! рукав моря
@Test
public void getKeyVaultValue() throws CloudException, IOException {
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("MY_PROXY_SERVER", 8080));
AzureTokenCredentials accessToken = AzureCliCredentials.create();
Authenticator proxyAuthenticator = new Authenticator() {
@Override public Request authenticate(Route route, Response response) throws IOException {
String credential = Credentials.basic("MY_PROXY_ACCOUNT", "MY_PROXY_PASSWORD");
return response.request().newBuilder()
.header("Proxy-Authorization", credential)
.build();
}
};
RestClient restClient = new RestClient.Builder()
.withBaseUrl(keyVaultBaseURL)
.withCredentials(accessToken)
.withSerializerAdapter(new AzureJacksonAdapter())
.withResponseBuilderFactory(new AzureResponseBuilder.Factory())
.withProxy(proxy)
.withProxyAuthenticator(proxyAuthenticator)
.build();
# I can retrieve value using below code from my home network without proxy
# KeyVaultClient kvClient = new KeyVaultClient(accessToken);
# I am not able retrieve value through proxy configured in my office network
KeyVaultClient kvClient = new KeyVaultClient(restClient);
Assert.assertNotNull(kvClient.getSecretAsync("MY_KEYVAULT_ID", null));
}