AWS Java SDK за корпоративным прокси - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу проверить свой код AWS локально, поэтому мне нужно установить прокси для клиента AWS.

Существует прокси-хост (http://user@pass:my -corporate-proxy.com: 8080 ) установить в моем окружении через переменную HTTPS_PROXY.

Я не нашел способа установить прокси как единое целое, поэтому я придумал следующий код:

AmazonSNS sns = AmazonSNSClientBuilder.standard()
    .withClientConfiguration(clientConfig(System.getenv("HTTPS_PROXY")))
    .withRegion(Regions.fromName(System.getenv("AWS_REGION")))
    .withCredentials(new DefaultAWSCredentialsProviderChain())
    .build();

ClientConfiguration clientConfig(String proxy) {
    ClientConfiguration configuration = new ClientConfiguration();
    if (proxy != null && !proxy.isEmpty()) {
        Matcher matcher = Pattern.compile("(\\w{3,5})://((\\w+):(\\w+)@)?(.+):(\\d{1,5})").matcher(proxy);
        if (!matcher.matches()) {
            throw new IllegalArgumentException("Proxy not valid: " + proxy);
        }
        configuration.setProxyHost(matcher.group(5));
        configuration.setProxyPort(Integer.parseInt(matcher.group(6)));
        configuration.setProxyUsername(matcher.group(3));
        configuration.setProxyPassword(matcher.group(4));
    }
    return configuration;
}

Весь метод clientConfig - это только стандартный код.

Есть ли какой-нибудь элегантный способ, как этого добиться?

...