0
내가 HTTP 코어-4.3.3을 사용하여 역방향 프록시를 개발하고, 내가 예를 들어, URL을 다시 작성해야어떻게 재 작성 대상 URL 아파치 HTTP 코어-4.3.3
/srv001/curstomer/ID가/curstomer/ID로 재 작성해야합니다
내 개발이 예 https://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/ElementalReverseProxy.java을 기반으로
이 내 프록시 처리기
public void handle(
final HttpRequest request,
final HttpResponse response,
final HttpContext context) throws HttpException, IOException {
long start = System.currentTimeMillis();
DefaultBHttpClientConnection outconn = (DefaultBHttpClientConnection) context.getAttribute(ProxyContext.HTTP_OUT_CONN);
context.setAttribute(HttpCoreContext.HTTP_CONNECTION, outconn);
context.setAttribute(HttpCoreContext.HTTP_TARGET_HOST, this.target);
System.out.println(">> Request URI: " + request.getRequestLine().getUri());
// Remove hop-by-hop headers
...
this.httpexecutor.preProcess(request, this.httpproc, context);
final HttpResponse targetResponse = this.httpexecutor.execute(request, outconn, context);
this.httpexecutor.postProcess(response, this.httpproc, context);
// Remove hop-by-hop headers
...
response.setStatusLine(targetResponse.getStatusLine());
response.setHeaders(targetResponse.getAllHeaders());
response.setEntity(targetResponse.getEntity());
System.out.println("<< Response: " + response.getStatusLine());
final boolean keepalive = this.connStrategy.keepAlive(response, context);
context.setAttribute(ProxyContext.HTTP_CONN_KEEPALIVE, new Boolean(keepalive));
long end = System.currentTimeMillis();
System.out.println("-- request took (msec): " + Long.toString(end - start));
}
내가 해봤입니다 요청시 대상 URL을 다시 작성하지만이를 수행하는 설정 방법은 없습니다. 어떻게 대상 URL을 다시 쓸 수 있습니까?