import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.zip.GZIPInputStream;
-import java.util.zip.Inflater;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
this.baos = baos;
}
+ @Override
public void write(int param) throws IOException {
baos.write(param);
}
this.bais = bais;
}
+ @Override
public int available() {
return bais.available();
}
+ @Override
public int read() {
return bais.read();
}
+ @Override
public int read(byte[] buf, int off, int len) {
return bais.read(buf, off, len);
}
}
+ @Override
public ServletInputStream getInputStream() {
try {
bais = new ByteArrayInputStream(buffer);
}
+ @Override
public void init(FilterConfig filterConfig) throws ServletException {
}
+ @Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
final ByteArrayPrintWriter pw = new ByteArrayPrintWriter();
HttpServletResponse wrappedResp = new HttpServletResponseWrapper(response) {
+ @Override
public PrintWriter getWriter() {
return pw.getWriter();
}
+ @Override
public ServletOutputStream getOutputStream() {
return pw.getStream();
}
};
try {
-
+
filterChain.doFilter(bufferedRequest, wrappedResp);
-
+
}catch (Exception e){
log.error("Chain Exception",e);
throw e;
} finally {
byte[] bytes = pw.toByteArray();
response.getOutputStream().write(bytes);
+ response.getOutputStream().flush();
StringBuilder responseHeaders = new StringBuilder("RESPONSE HEADERS|");
}
}
+ @Override
public void destroy() {
}