programing

네트워크 프록시 뒤의 스프링 부트

nicescript 2023. 3. 14. 23:21
반응형

네트워크 프록시 뒤의 스프링 부트

현재 Open을 구현하고 있습니다.이 예에 근거한 ID 인증.현재 네트워크 프록시를 기반으로 개발 중이기 때문에 서버가 구글에 접속할 수 없습니다.Java 프록시 설정은 영향을 주지 않는 것 같습니다.stackoverflow 질문도 발견했는데 코드를 어디에 배치해야 할지 모르겠어요.스프링 부트 컨테이너의 프록시를 설정하려면 어떻게 해야 합니까?

감사해요.

이것이 도움이 될지는 모르겠지만, 현재 Spring Boot 튜토리얼(https://spring.io/guides/gs/integration/)에서 유사한 네트워크 프록시 문제를 보고 있습니다.이 문제는 JVM 인수를 제공하는 것만으로 해결되었습니다.

-Dhttp.proxyHost=your.proxy.net -Dhttp.proxyPort=8080

제공된 두 개의 주장만 더하는 것은 나에게 효과가 없었다.전체 목록은 다음과 같습니다.

-Dhttp.proxyHost=somesite.com -Dhttp.proxyPort=4321 
-Dhttps.proxyHost=somesite.com -Dhttps.proxyPort=4321 -Dhttps.proxySet=true 
-Dhttp.proxySet=true

외부 서비스에 콜을 발신하기 위해서 필요한 경우는, 다음과 같이 사용하고 있는 클라이언트(RestTemplate 등)에 프록시를 설정합니다.

HttpComponentsClientHttpRequestFactory requestFactory = new 
HttpComponentsClientHttpRequestFactory();
DefaultHttpClient httpClient = (DefaultHttpClient) requestFactory.getHttpClient();
HttpHost proxy = new HttpHost("proxtserver", port);
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
restTemplate.setRequestFactory(requestFactory);

나를 위해.server.use-forwarded-headers=trueapplication.properties문제를 해결했다.

나는 그 문제를 두 가지 방법으로 해결할 수 있었다.

JVM arg 경유(http 및 https 모두)

-Dhttp.proxyHost=your-http-proxy-host -Dhttp.proxyPort=8080
-Dhttps.proxyHost=your-https-proxy-host -Dhttps.proxyPort=8080

또는 프로그램적으로

public static void setProxy() {
        System.setProperty("http.proxyHost", "your-http-proxy-host");
        System.setProperty("http.proxyPort", "8080");

        System.setProperty("https.proxyHost", "your-http-proxy-host");
        System.setProperty("https.proxyPort", "8080");
    }

언급URL : https://stackoverflow.com/questions/30168113/spring-boot-behind-a-network-proxy

반응형