일부 사용자 요청의 유효성을 검사해야하므로 LittleProxy를 사용하려고합니다. 아이디어는 사용자에게 투명하게 만드는 것입니다 (iptables> littleproxy> origin server). 내가 LittleProxy에 흐름을 (즉, 127.0.0.1:3127에서 수신)로 다음과 리디렉션의 iptables을 사용하고 그래서Littleproxy 무한 루프
:
iptables -t nat -A OUTPUT -p tcp -o eth0 --dport 80 -j DNAT --to 127.0.0.1:3127
나는 그것이 withTransparent(true)
을 사용하기 시작하면, 나는 오류가 발생 (400) URI에 대한 잘못된 요청. 이것은 RFC 7230 규정 준수로 인해 발생합니다.
@Override
public HttpResponse clientToProxyRequest(HttpObject httpObject) {
if (httpObject instanceof DefaultHttpRequest) {
final DefaultHttpRequest request = (DefaultHttpRequest) httpObject;
final String host = request.headers().get(HttpHeaders.Names.HOST);
request.setUri("http://" + host + request.getUri());
}
return null;
}
을하지만 URI를 변경하는 끝없는 원인이 다음과 같이
final HttpProxyServer server = DefaultHttpProxyServer.bootstrap()
.withPort(3127).withTransparent(false)
.withFiltersSource(new HttpFiltersSourceAdapterExt()).start();
그리고 메소드를 오버라이드 :
final HttpProxyServer server = DefaultHttpProxyServer.bootstrap()
.withPort(3127).withTransparent(true).start();
은 그래서 요청 URI를 다음과 같이 시작, 변경하려 LittleProxy로 루프. 매번 새로운
을 통해 헤더를 추가하십시오.
또한 .withAllowRequestToOriginServer(true)
을 사용하려고 시도했지만 .withTransparent(true)
도 무한 루프가 발생합니다.
유학 DirectRequestTest.java
나는 헤더를 테스트하고 이미 "비아"가 있는지 확인했지만 요청을 중단하고 싶지 않습니다. LittleProxy가 원 서버를 호출하여 사용자에게 응답을 검색하고 제공하기를 원합니다.
제 질문은, 어떻게 LittleProxy로이 시나리오를 구현합니까?
당신은 아직 Bob이라고 생각하지 않습니까? –
귀하의 질문은이 문제와 유사하다고 생각합니다 : https://github.com/adamfisk/LittleProxy/issues/146 –
어디서이 문제를 해결할 수 있습니까? –