Avik Ganguly created FINERACT-426:
-------------------------------------
Summary: Filter to optionally compress response with gzip
Key: FINERACT-426
URL: https://issues.apache.org/jira/browse/FINERACT-426
Project: Apache Fineract
Issue Type: Bug
Reporter: Avik Ganguly
Assignee: Markus Geiss
Priority: Minor
Accept a query parameter like isCompressionRequired. If this query param is
present, compress the response using gzip. This will ensure less bandwidth
usage if field apps are using mobile data.
Sample Code for response filter :-
Inside filter method :-
if
(request.getRequestHeaders().getFirst(HttpHeaders.ACCEPT_ENCODING).contains("gzip"))
{
response.getHttpHeaders().add(HttpHeaders.CONTENT_ENCODING, "gzip");
response.setContainerResponseWriter(
new
Adapter(response.getContainerResponseWriter()));
}
private static final class Adapter implements ContainerResponseWriter {
private final ContainerResponseWriter crw;
private GZIPOutputStream gos;
Adapter(ContainerResponseWriter crw) {
this.crw = crw;
}
public OutputStream writeStatusAndHeaders(long contentLength,
ContainerResponse response) throws IOException {
gos = new GZIPOutputStream(crw.writeStatusAndHeaders(-1, response));
return gos;
}
public void finish() throws IOException {
gos.finish();
crw.finish();
}
}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)