@@ -104,6 +104,19 @@ public void setUp() throws Exception {
104104 sc .getClientProperties ().setAutoRedirect (false );//don't want httpunit itself to redirect
105105
106106 }
107+
108+ /**
109+ * Helper to restart target server with a custom servlet
110+ */
111+ protected void replaceTargetServlet (HttpServlet servlet ) throws Exception {
112+ targetServer .stop ();
113+ targetServer = new Server (targetServerPort );
114+ ServletHandler handler = new ServletHandler ();
115+ targetServer .setHandler (handler );
116+ ServletHolder holder = new ServletHolder (servlet );
117+ handler .addServletWithMapping (holder , "/targetPath/*" );
118+ targetServer .start ();
119+ }
107120
108121 protected void setUpServlet (Properties servletProps ) {
109122 servletProps .putAll (servletProps );
@@ -233,11 +246,13 @@ public void testProxyWithUnescapedChars() throws Exception {
233246 public void testHopByHopHeadersOnSource () throws Exception {
234247 //"Proxy-Authenticate" is a hop-by-hop header
235248 final String HEADER = "Proxy-Authenticate" ;
236- localTestServer .register ("/targetPath*" , new RequestInfoHandler () {
237- public void handle (HttpRequest request , HttpResponse response , HttpContext context ) throws HttpException , IOException {
238- assertNull (request .getFirstHeader (HEADER ));
249+
250+ replaceTargetServlet (new HttpServlet () {
251+ @ Override
252+ protected void service (HttpServletRequest request , HttpServletResponse response ) throws ServletException , IOException {
253+ assertNull (request .getHeader (HEADER ));
239254 response .setHeader (HEADER , "from-server" );
240- super . handle (request , response , context );
255+ new RequestInfoServlet (). service (request , response );
241256 }
242257 });
243258
@@ -251,11 +266,12 @@ public void handle(HttpRequest request, HttpResponse response, HttpContext conte
251266 public void testWithExistingXForwardedFor () throws Exception {
252267 final String FOR_HEADER = "X-Forwarded-For" ;
253268
254- localTestServer .register ("/targetPath*" , new RequestInfoHandler () {
255- public void handle (HttpRequest request , HttpResponse response , HttpContext context ) throws HttpException , IOException {
256- Header xForwardedForHeader = request .getFirstHeader (FOR_HEADER );
257- assertEquals ("192.168.1.1, 127.0.0.1" , xForwardedForHeader .getValue ());
258- super .handle (request , response , context );
269+ replaceTargetServlet (new HttpServlet () {
270+ @ Override
271+ protected void service (HttpServletRequest request , HttpServletResponse response ) throws ServletException , IOException {
272+ String xForwardedForHeader = request .getHeader (FOR_HEADER );
273+ assertEquals ("192.168.1.1, 127.0.0.1" , xForwardedForHeader );
274+ new RequestInfoServlet ().service (request , response );
259275 }
260276 });
261277
@@ -269,13 +285,14 @@ public void testEnabledXForwardedFor() throws Exception {
269285 final String FOR_HEADER = "X-Forwarded-For" ;
270286 final String PROTO_HEADER = "X-Forwarded-Proto" ;
271287
272- localTestServer .register ("/targetPath*" , new RequestInfoHandler () {
273- public void handle (HttpRequest request , HttpResponse response , HttpContext context ) throws HttpException , IOException {
274- Header xForwardedForHeader = request .getFirstHeader (FOR_HEADER );
275- Header xForwardedProtoHeader = request .getFirstHeader (PROTO_HEADER );
276- assertEquals ("127.0.0.1" , xForwardedForHeader .getValue ());
277- assertEquals ("http" , xForwardedProtoHeader .getValue ());
278- super .handle (request , response , context );
288+ replaceTargetServlet (new HttpServlet () {
289+ @ Override
290+ protected void service (HttpServletRequest request , HttpServletResponse response ) throws ServletException , IOException {
291+ String xForwardedForHeader = request .getHeader (FOR_HEADER );
292+ String xForwardedProtoHeader = request .getHeader (PROTO_HEADER );
293+ assertEquals ("127.0.0.1" , xForwardedForHeader );
294+ assertEquals ("http" , xForwardedProtoHeader );
295+ new RequestInfoServlet ().service (request , response );
279296 }
280297 });
281298
0 commit comments