Мне нужно использовать API, защищенный OAuth2. Для этого я использую OAuth2RestTemplate. Но я получаю ошибку ниже:
java.net.ConnectException: Connection timed out: connect
Это происходит из-за проблемы с прокси. Я знаю, как установить прокси в RestTemplate:
SimpleClientHttpRequestFactory clientHttpRequestFactory = new SimpleClientHttpRequestFactory();
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("Proxy host", 8080));
clientHttpRequestFactory.setProxy(прокси); RestTemplate restTemplate = новый RestTemplate (clientHttpRequestFactory);
Точно так же я пытался установить для OAuth2RestTemplate:
@Bean
public OAuth2RestOperations restTemplate(OAuth2ClientContext oauth2ClientContext) {
OAuth2RestTemplate client = new OAuth2RestTemplate(resource(), oauth2ClientContext);
SimpleClientHttpRequestFactory clientHttpRequestFactory = new SimpleClientHttpRequestFactory();
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(PROXY_HOST, PROXY_PORT));
clientHttpRequestFactory.setProxy(proxy);
client.setRequestFactory(clientHttpRequestFactory);
return client;
}
Но он не работает и дает исключение «Время ожидания подключения истекло». Это происходит из-за этой первой строки OAuth2RestTemplate client = new OAuth2RestTemplate(resource(), oauth2ClientContext);
, которая пытается получить токен доступа, что означает, что здесь также требуется настройка прокси. если я добавлю строки ниже, то это сработает:
System.setProperty("https.proxyHost", "urproxy.com");
System.setProperty("https.proxyPort", "8080");
Но я не могу использовать параметр System.setProperties("",""), так как у нас нет разрешения на установку на сервере tomcat.
Я исследовал, но не смог найти способ установить прокси в OAuth2RestTemplate при создании этого объекта.
Любая помощь будет оценена по достоинству. Спасибо