diff --git a/src/main/java/icu/samnyan/aqua/sega/chunithm/filter/ChuniResponseWrapper.java b/src/main/java/icu/samnyan/aqua/sega/chunithm/filter/ChuniResponseWrapper.java index 89a82cc8..e30b60b1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chunithm/filter/ChuniResponseWrapper.java +++ b/src/main/java/icu/samnyan/aqua/sega/chunithm/filter/ChuniResponseWrapper.java @@ -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(); } } diff --git a/src/main/java/icu/samnyan/aqua/sega/chunithm/handler/impl/GetGameSettingHandler.java b/src/main/java/icu/samnyan/aqua/sega/chunithm/handler/impl/GetGameSettingHandler.java index 96b9801e..ab0f06ea 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chunithm/handler/impl/GetGameSettingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/chunithm/handler/impl/GetGameSettingHandler.java @@ -45,7 +45,7 @@ public class GetGameSettingHandler implements BaseHandler { GetGameSettingResp resp = new GetGameSettingResp( gameSetting, false, - false + true ); String json = mapper.write(resp); diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/filter/DivaCompressionFilter.java b/src/main/java/icu/samnyan/aqua/sega/diva/filter/DivaCompressionFilter.java index 442e548c..83d473a6 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/filter/DivaCompressionFilter.java +++ b/src/main/java/icu/samnyan/aqua/sega/diva/filter/DivaCompressionFilter.java @@ -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