Skip to content

Commit 9c35d5d

Browse files
committed
Honor status_code in redirect-to endpoint
Found via python httpbin tests.
1 parent 2c1d259 commit 9c35d5d

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/main/java/org/gaul/httpbin/HttpBinHandler.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,10 @@ baos, new Deflater(Deflater.DEFAULT_COMPRESSION,
404404
return;
405405
} else if (uri.equals("/redirect-to")) {
406406
Utils.copy(is, Utils.NULL_OUTPUT_STREAM);
407-
redirectTo(servletResponse, request.getParameter("url"));
407+
int statusCode = Utils.getIntParameter(request, "status_code",
408+
HttpServletResponse.SC_MOVED_TEMPORARILY);
409+
redirectTo(servletResponse, request.getParameter("url"),
410+
statusCode);
408411
baseRequest.setHandled(true);
409412
return;
410413
} else if (uri.startsWith("/redirect/")) {
@@ -627,9 +630,15 @@ private static void respondJSON(HttpServletResponse response,
627630
}
628631

629632
private static void redirectTo(HttpServletResponse response,
630-
String location) {
633+
String location, int statusCode) {
631634
response.setHeader("Location", location);
632-
response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
635+
response.setStatus(statusCode);
636+
}
637+
638+
private static void redirectTo(HttpServletResponse response,
639+
String location) {
640+
redirectTo(response, location,
641+
HttpServletResponse.SC_MOVED_TEMPORARILY);
633642
}
634643

635644
private void copyResource(HttpServletResponse response, String resource)

0 commit comments

Comments
 (0)