사내 프로젝트를 진행하다가 OpenFeign이랑 Tor를 같이 사용할 경우가 있었는데, 자료를 찾아봐도 이와 비슷한 사례가 많지 않아 글로 적어본다.
Tor가 설치되어있다는 가정하에 코드를 작성하겠다.
별건 없고 FeignConfig에 아래의 코드를 추가하면 된다.
@Configuration
public class FeignConfig {
@Bean
public Client feignClient() {
return new Client.Proxied(null, null,
new Proxy(Type.SOCKS,
new InetSocketAddress("localhost", 9050)));
}
}
Proxy 타입에도 여러가지가 있는데, Tor는 소켓을 사용해서 Type.SOCKS를 사용했다.
지원하는 타입은 아래와 같다.
public enum Type {
/**
* Represents a direct connection, or the absence of a proxy.
*/
DIRECT,
/**
* Represents proxy for high level protocols such as HTTP or FTP.
*/
HTTP,
/**
* Represents a SOCKS (V4 or V5) proxy.
*/
SOCKS
};
다른 프록시를 사용할 때 참고해서 사용하면 될 것 같다.