当前位置: 首页 > news >正文

网站建设基础课程wordpress 插件 注入

网站建设基础课程,wordpress 插件 注入,个人跨境网店怎么开,wordpress 防篡改一、背景 在项目开发过程中,需要对于某些接口统一处理。 这时候就需要获取响应的报文,再对获取的报文进行统一处理。 二、了解过滤器 首先了解一下过滤器拦截器的区别: JAVA中的拦截器、过滤器:https://blog.csdn.net/qq_38254…

一、背景

在项目开发过程中,需要对于某些接口统一处理。
这时候就需要获取响应的报文,再对获取的报文进行统一处理。

二、了解过滤器

首先了解一下过滤器拦截器的区别:
JAVA中的拦截器、过滤器:https://blog.csdn.net/qq_38254635/article/details/131201519

三、代码

新建 WebResponseWrapper.java
重写 HttpServletResponseWrapper,处理json报文请求

package com.config.filter;import javax.servlet.ServletOutputStream;
import javax.servlet.WriteListener;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;public class WebResponseWrapper extends HttpServletResponseWrapper {private ByteArrayOutputStream buffer = null;private ServletOutputStream out = null;private PrintWriter writer = null;public WebResponseWrapper(HttpServletResponse response) throws IOException {super(response);buffer = new ByteArrayOutputStream();out = new WrapperOutputStream(buffer);writer = new PrintWriter(new OutputStreamWriter(buffer,this.getCharacterEncoding()));}@Overridepublic ServletOutputStream getOutputStream() throws IOException {return out;}@Overridepublic PrintWriter getWriter() throws UnsupportedEncodingException {return writer;}@Overridepublic void flushBuffer() throws IOException {if (out != null) {out.flush();}if (writer != null) {writer.flush();}}@Overridepublic void reset() {buffer.reset();}public byte[] getResponseData() throws IOException {flushBuffer();return buffer.toByteArray();}private class WrapperOutputStream extends ServletOutputStream {private ByteArrayOutputStream bos = null;public WrapperOutputStream(ByteArrayOutputStream stream)throws IOException {bos = stream;}@Overridepublic void write(int b) throws IOException {bos.write(b);}@Overridepublic void write(byte[] b) throws IOException {bos.write(b, 0, b.length);}@Overridepublic boolean isReady() {return false;}@Overridepublic void setWriteListener(WriteListener writeListener) {}}}

新建WebResponseFilter.java,响应过滤器处理参数,加密、字符串替、添加响应参数等等。

package com.config.filter;import com.Utils;
import org.springframework.stereotype.Component;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;@Component
public class WebResponseFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {HttpServletRequest httpRequest = (HttpServletRequest) request;HttpServletResponse httpResponse = (HttpServletResponse) response;if(checkPath(httpRequest.getRequestURI())){chain.doFilter(httpRequest, httpResponse);} else {response.setContentType("application/json; charset=utf-8");response.setCharacterEncoding("UTF-8");WebResponseWrapper webResponseWrapper = new WebResponseWrapper((HttpServletResponse) response);chain.doFilter(request, webResponseWrapper);byte[] resData = webResponseWrapper.getResponseData();PrintWriter out = response.getWriter();String encrypt = Utils.handleResponse(new String(resData, "UTF-8"));out.print(encrypt.replaceAll("[\\s*\t\n\r]", ""));out.flush();out.close();}}private boolean checkPath(String url){if(!"on".equals(ENCRYPT_SWITCH)) return true;for (String path : RESPONSE_LIST) {if(url.contains(path)) return true;}return false;}@Overridepublic void destroy() {}}

说明:
ENCRYPT_SWITCH:开关配置
RESPONSE_LIST:忽略处理路径配置,如一些导出的操作。
Utils.handleResponse():需要对报文进行的处理操作。

相关链接:
SpringBoot过滤器获取请求的参数:https://blog.csdn.net/qq_38254635/article/details/136041159
JAVA中的拦截器、过滤器:https://blog.csdn.net/qq_38254635/article/details/131201519

OK,就这些吧。

有什么不对的还望指正,书写不易,觉得有帮助就点个赞吧!☺☺☺

http://www.yayakq.cn/news/703948/

相关文章:

  • 做室内效果图的网站秦皇岛建设网站官网
  • 西昌有没有可以做网站的公司江门网站设计找哪家
  • 网站的开发流程做直播网站前端
  • 慈溪网站建设哪家好成交型网站建设方案
  • 吴江建网站企业网站的建立与维护论文
  • 网站预订系统建设房地产市场信息管理平台
  • 网站建设开发背景简介Php做网站要求
  • 男的做直播哪个网站好瀑布流响应式网站模板
  • 东莞邦邻网站建设如何做国外的电商网站设计
  • 山东建设工程信息网站连山网站建设
  • 公司网站怎么更新维护伯维网站建设
  • 平顶山城市住房城乡建筑网站网站菜单实现原理
  • 广西网站设计公司排行榜seo关键词优化服务
  • 绩溪网站建设个人帮忙做网站吗
  • 网站的数据库丢失旅游网站建设的目的与意义是什么
  • 淄博网站建设铭盛信息重庆网页开发
  • 用代码怎么建设网站WordPress_posts
  • 烟台网站优化公司自己制作的网站怎么做分页
  • 大兴网站开发公司大型门户网站源码
  • 长春建站公司网站压缩wordpress空间
  • 无锡网站建站公司wordpress下载中
  • 建设网站的价格怎样免费建立自己的网站
  • php网站开发 远程平乡网站建设
  • 做网站可以卖别的牌子的产品吗可口可乐软文范例
  • 影响网站收录的因素菏泽做网站的
  • 网站建设及维护业务服务合同玉林做网站优化推广
  • 网站如何制作注册上海广告传媒有限公司
  • ps做的网站模板网站建设 维护 编程
  • 做商务网站网站页脚包括什么
  • 建设一个网站需要什么技术指标wordpress lamp lnmp