| ETagFilter.java |
1 /**
2 * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3 *
4 * This library is free software; you can redistribute it and/or modify it under
5 * the terms of the GNU Lesser General Public License as published by the Free
6 * Software Foundation; either version 2.1 of the License, or (at your option)
7 * any later version.
8 *
9 * This library is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12 * details.
13 */
14
15 package com.liferay.portal.servlet.filters.etag;
16
17 import com.liferay.portal.kernel.servlet.StringServletResponse;
18 import com.liferay.portal.kernel.util.ParamUtil;
19 import com.liferay.portal.servlet.filters.BasePortalFilter;
20 import com.liferay.util.servlet.ServletResponseUtil;
21
22 import javax.servlet.FilterChain;
23 import javax.servlet.http.HttpServletRequest;
24 import javax.servlet.http.HttpServletResponse;
25
26 /**
27 * <a href="ETagFilter.java.html"><b><i>View Source</i></b></a>
28 *
29 * @author Eduardo Lundgren
30 * @author Brian Wing Shun Chan
31 * @author Raymond Augé
32 * @author Shuyang Zhou
33 */
34 public class ETagFilter extends BasePortalFilter {
35
36 protected void processFilter(
37 HttpServletRequest request, HttpServletResponse response,
38 FilterChain filterChain)
39 throws Exception {
40
41 boolean etag = ParamUtil.getBoolean(request, _ETAG, true);
42
43 if (etag) {
44 StringServletResponse stringResponse =
45 new StringServletResponse(response);
46
47 processFilter(
48 ETagFilter.class, request, stringResponse, filterChain);
49
50 if (!ETagUtil.processETag(request, response, stringResponse)) {
51 ServletResponseUtil.write(response, stringResponse);
52 }
53 }
54 else {
55 processFilter(ETagFilter.class, request, response, filterChain);
56 }
57 }
58
59 private static final String _ETAG = "etag";
60
61 }