/* * Copyright (C) 2010, Google Inc. and others * * This program and the accompanying materials are made available under the * terms of the Eclipse Distribution License v. 1.0 which is available at * https://www.eclipse.org/org/documents/edl-v10.php. * * SPDX-License-Identifier: BSD-3-Clause */ package org.eclipse.jgit.http.server; import static org.eclipse.jgit.util.HttpSupport.HDR_CACHE_CONTROL; import static org.eclipse.jgit.util.HttpSupport.HDR_EXPIRES; import static org.eclipse.jgit.util.HttpSupport.HDR_PRAGMA; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; /** Add HTTP response headers to prevent caching by proxies/browsers. */ class NoCacheFilter implements Filter { /** {@inheritDoc} */ @Override public void init(FilterConfig config) throws ServletException { // Do nothing. } /** {@inheritDoc} */ @Override public void destroy() { // Do nothing. } /** {@inheritDoc} */ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse rsp = (HttpServletResponse) response; rsp.setHeader(HDR_EXPIRES, "Fri, 01 Jan 1980 00:00:00 GMT"); rsp.setHeader(HDR_PRAGMA, "no-cache"); final String nocache = "no-cache, max-age=0, must-revalidate"; rsp.setHeader(HDR_CACHE_CONTROL, nocache); chain.doFilter(request, response); } }