001package co.codewizards.cloudstore.rest.shared.filter;
002
003import java.io.IOException;
004
005import javax.ws.rs.container.ContainerRequestContext;
006import javax.ws.rs.container.ContainerRequestFilter;
007
008import co.codewizards.cloudstore.rest.shared.GZIPUtil;
009
010/**
011 * Filter that sets property Cloudstore-Content-Encoding if request contains a header of the same name.
012 * <p>
013 * Property can be accessed by interceptors in request/response scope, which is needed in this case.
014 * @see GZIPClientRequestFilter
015 * @author Wojtek Wilk - wilk.wojtek at gmail.com
016 */
017
018public class GZIPContainerRequestFilter implements ContainerRequestFilter {
019
020        @Override
021        public void filter(ContainerRequestContext requestContext) throws IOException {
022                if(GZIPUtil.isRequestCompressedWithGzip(requestContext)){
023                        requestContext.setProperty(GZIPUtil.CLOUDSTORE_ENCODING_HEADER, GZIPUtil.CLOUDSTORE_ENCODING_HEADER_VALUE);
024                }
025        }
026}