001
014
015 package com.liferay.portal.servlet.filters.etag;
016
017 import com.liferay.portal.kernel.servlet.ByteBufferServletResponse;
018 import com.liferay.portal.kernel.servlet.ServletResponseUtil;
019 import com.liferay.portal.kernel.util.ParamUtil;
020 import com.liferay.portal.servlet.filters.BasePortalFilter;
021
022 import javax.servlet.FilterChain;
023 import javax.servlet.http.HttpServletRequest;
024 import javax.servlet.http.HttpServletResponse;
025
026
032 public class ETagFilter extends BasePortalFilter {
033
034 @Override
035 public boolean isFilterEnabled(
036 HttpServletRequest request, HttpServletResponse response) {
037
038 if (ParamUtil.getBoolean(request, _ETAG, true)) {
039 return true;
040 }
041 else {
042 return false;
043 }
044 }
045
046 @Override
047 protected void processFilter(
048 HttpServletRequest request, HttpServletResponse response,
049 FilterChain filterChain)
050 throws Exception {
051
052 ByteBufferServletResponse byteBufferResponse =
053 new ByteBufferServletResponse(response);
054
055 processFilter(
056 ETagFilter.class, request, byteBufferResponse, filterChain);
057
058 if (!ETagUtil.processETag(request, response, byteBufferResponse)) {
059 ServletResponseUtil.write(
060 response, byteBufferResponse.getByteBuffer());
061 }
062 }
063
064 private static final String _ETAG = "etag";
065
066 }