[DIVA] Enable response compression

pull/1/head
samnyan 2020-02-01 20:54:18 +08:00
parent 9712946688
commit e992ca81c3
3 changed files with 13 additions and 4 deletions

View File

@ -16,7 +16,7 @@ public class ChuniResponseWrapper extends HttpServletResponseWrapper {
private ServletOutputStream filterOutput;
ChuniResponseWrapper(HttpServletResponse response) {
public ChuniResponseWrapper(HttpServletResponse response) {
super(response);
output = new ByteArrayOutputStream();
}
@ -44,7 +44,7 @@ public class ChuniResponseWrapper extends HttpServletResponseWrapper {
return filterOutput;
}
byte[] toByteArray() {
public byte[] toByteArray() {
return output.toByteArray();
}
}

View File

@ -45,7 +45,7 @@ public class GetGameSettingHandler implements BaseHandler {
GetGameSettingResp resp = new GetGameSettingResp(
gameSetting,
false,
false
true
);
String json = mapper.write(resp);

View File

@ -1,6 +1,7 @@
package icu.samnyan.aqua.sega.diva.filter;
import icu.samnyan.aqua.sega.chunithm.filter.ChuniRequestWrapper;
import icu.samnyan.aqua.sega.chunithm.filter.ChuniResponseWrapper;
import icu.samnyan.aqua.sega.util.Compression;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -37,9 +38,17 @@ public class DivaCompressionFilter extends OncePerRequestFilter {
}
ChuniRequestWrapper requestWrapper = new ChuniRequestWrapper(request, reqResult);
ChuniResponseWrapper responseWrapper = new ChuniResponseWrapper(response);
filterChain.doFilter(requestWrapper, response);
filterChain.doFilter(requestWrapper, responseWrapper);
byte[] respSrc = responseWrapper.toByteArray();
byte[] respResult = Compression.compress(respSrc);
response.setContentLength(respResult.length);
response.setHeader("pragma", "DFI");
response.getOutputStream().write(respResult);
}
@Override