/* * Copyright (C) 2013-2017 NTT DATA Corporation * * 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 org.terasoluna.gfw.web.util; import javax.servlet.http.HttpServletResponse; /** * utility class about HttpResponse */ public final class ResponseUtils { /** * header name of "Pragma". */ private static final String HEADER_PRAGMA = "Pragma"; /** * header name of "Expires". */ private static final String HEADER_EXPIRES = "Expires"; /** * header name of "Cache-Control". */ private static final String HEADER_CACHE_CONTROL = "Cache-Control"; /** * Default Constructor. * <p> * do nothing. * </p> */ private ResponseUtils() { // do nothing. } /** * set http headers to prevent response caching. * <table border=1> * <caption>http headers</caption> * <tr> * <th>Target</th> * <th>Attribute Name</th> * <th>Value</th> * <th>Description</th> * </tr> * <tr> * <td>Header</td> * <td>Cache-Control</td> * <td>private, no-store, no-cache, must-revalidate</td> * <td>http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/ 405.html</td> * </tr> * <tr> * <td>Header</td> * <td>Pragma</td> * <td>no-cache</td> * <td>for HTTP 1.0</td> * </tr> * <tr> * <td>DateHeader</td> * <td>Expires</td> * <td>1</td> * <td>expires soon</td> * </tr> * </table> * <p> * Nothing happens when <code>response</code> is null. * </p> * @param response HttpServletResponse to prevent caching */ public static void setPreventionCachingHeaders(HttpServletResponse response) { if (response != null) { response.setHeader(HEADER_PRAGMA, "no-cache"); response.setDateHeader(HEADER_EXPIRES, 1L); response.setHeader(HEADER_CACHE_CONTROL, "private,no-store,no-cache,must-revalidate"); } } }