package com.ltkj.web.controller.api.filter; import com.ltkj.web.controller.api.utils.CryptoUtil; import com.ltkj.web.controller.api.wrapper.DecryptRequestWrapper; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import java.io.BufferedReader; import java.io.IOException; import java.util.stream.Collectors; //@Component //@WebFilter(urlPatterns = {"/api/cusViewReport", "/api/cusReportData", "/api/getCusInfo"}) public class DecryptFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; String body = new BufferedReader(httpRequest.getReader()).lines() .collect(Collectors.joining(System.lineSeparator())); System.out.println("请求数据:"+body); try { String decryptedBody = CryptoUtil.decrypt(body); System.out.println("解密后:"+decryptedBody); DecryptRequestWrapper wrappedRequest = new DecryptRequestWrapper(httpRequest, decryptedBody); chain.doFilter(wrappedRequest, response); } catch (Exception e) { throw new ServletException("请求体解密失败", e); } } }