diff options
Diffstat (limited to 'gerrit-httpd/src/main/java/com/google/gerrit/httpd/HttpServletResponseRecorder.java')
-rw-r--r-- | gerrit-httpd/src/main/java/com/google/gerrit/httpd/HttpServletResponseRecorder.java | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/HttpServletResponseRecorder.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/HttpServletResponseRecorder.java deleted file mode 100644 index 3a43e2496f..0000000000 --- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/HttpServletResponseRecorder.java +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (C) 2016 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.gerrit.httpd; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpServletResponseWrapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * HttpServletResponse wrapper to allow response status code override. - * - * <p>Differently from the normal HttpServletResponse, this class allows multiple filters to - * override the response http status code. - */ -public class HttpServletResponseRecorder extends HttpServletResponseWrapper { - private static final Logger log = LoggerFactory.getLogger(HttpServletResponseWrapper.class); - private static final String LOCATION_HEADER = "Location"; - - private int status; - private String statusMsg = ""; - private Map<String, String> headers = new HashMap<>(); - - /** - * Constructs a response recorder wrapping the given response. - * - * @param response the response to be wrapped - */ - public HttpServletResponseRecorder(HttpServletResponse response) { - super(response); - } - - @Override - public void sendError(int sc) throws IOException { - this.status = sc; - } - - @Override - public void sendError(int sc, String msg) throws IOException { - this.status = sc; - this.statusMsg = msg; - } - - @Override - public void sendRedirect(String location) throws IOException { - this.status = SC_MOVED_TEMPORARILY; - setHeader(LOCATION_HEADER, location); - } - - @Override - public void setHeader(String name, String value) { - super.setHeader(name, value); - headers.put(name, value); - } - - @SuppressWarnings("all") - // @Override is omitted for backwards compatibility with servlet-api 2.5 - // TODO: Remove @SuppressWarnings and add @Override when Google upgrades - // to servlet-api 3.1 - public int getStatus() { - return status; - } - - void play() throws IOException { - if (status != 0) { - log.debug("Replaying {} {}", status, statusMsg); - - if (status == SC_MOVED_TEMPORARILY) { - super.sendRedirect(headers.get(LOCATION_HEADER)); - } else { - super.sendError(status, statusMsg); - } - } - } -} |