From c4fd6072f0d0d2f6763c25154509c345fbf15c63 Mon Sep 17 00:00:00 2001 From: zz Date: Fri, 19 Nov 2021 10:49:10 +0800 Subject: [PATCH] perfection --- .../java/com/xhpc/evcs/config/EvcsFilter.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/config/EvcsFilter.java b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/config/EvcsFilter.java index b1a7d0aa..176b9fb8 100644 --- a/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/config/EvcsFilter.java +++ b/evcs-modules/evcs-core/src/main/java/com/xhpc/evcs/config/EvcsFilter.java @@ -80,8 +80,8 @@ public class EvcsFilter extends OncePerRequestFilter { Date now = Calendar.getInstance().getTime(); ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response); if (servletPath.endsWith("query_token")) { - handleQueryToken(request, response, chain, requestWrapper, bodyString, commonRequest, operatorId, - responseWrapper); + if (!handleQueryToken(request, response, chain, requestWrapper, bodyString, commonRequest, operatorId, + responseWrapper)) return; } else if (authorization != null && authorization.startsWith("Bearer ")) { String token = authorization.substring(7); authSecretTokenIn = @@ -170,11 +170,11 @@ public class EvcsFilter extends OncePerRequestFilter { } } - private void handleQueryToken(HttpServletRequest request, - HttpServletResponse response, FilterChain chain, - ServletRequest requestWrapper, String bodyString, CommonRequest commonRequest, - String operatorId, - ContentCachingResponseWrapper responseWrapper) throws IOException, ServletException { + private boolean handleQueryToken(HttpServletRequest request, + HttpServletResponse response, FilterChain chain, + ServletRequest requestWrapper, String bodyString, CommonRequest commonRequest, + String operatorId, + ContentCachingResponseWrapper responseWrapper) throws IOException, ServletException { AuthSecretToken authSecretTokenIn = authSecretTokenRepository.findByOperatorId3irdptyAndSecretTokenType(operatorId, AuthSecretToken.SECRET_TOKEN_TYPE_IN).orElse(null); @@ -186,7 +186,8 @@ public class EvcsFilter extends OncePerRequestFilter { response.getOutputStream().write(data.getBytes(StandardCharsets.UTF_8)); // response.setStatus(403); responseWrapper = new ContentCachingResponseWrapper(response); -// chain.doFilter(requestWrapper, responseWrapper); + chain.doFilter(requestWrapper, responseWrapper); + return false; } else { final byte[] decrypt; try { @@ -198,10 +199,12 @@ public class EvcsFilter extends OncePerRequestFilter { resp.setMsg("Invalid Encryption"); String data = JSONUtil.toJSONString(resp); response.getOutputStream().write(data.getBytes(StandardCharsets.UTF_8)); -// chain.doFilter(requestWrapper, responseWrapper); - return; + responseWrapper = new ContentCachingResponseWrapper(response); + chain.doFilter(requestWrapper, responseWrapper); + return false; } ((HttpServletRequestRepeatReadWrapper) requestWrapper).setBody(decrypt); + return true; // chain.doFilter(requestWrapper, response); } }