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

做隐私的网站百度广告收费表

做隐私的网站,百度广告收费表,关键字挖掘爱站网,南宁企业网站建设技术公司在日常写项目中经常一般正规的项目都需要将信息加密后返回前端,前端进行解密后再展示出来给用户,这样做的目的无一不是为了安全,在Java开发中,如何简单快速的完成这个功能呢,这里就需要用到这两个接口ResponseBodyAdvi…

        在日常写项目中经常一般正规的项目都需要将信息加密后返回前端,前端进行解密后再展示出来给用户,这样做的目的无一不是为了安全,在Java开发中,如何简单快速的完成这个功能呢,这里就需要用到这两个接口ResponseBodyAdvice和RequestBodyAdvice。

ResponseBodyAdvice是 spring 4.1 新加入的一个接口,在消息体被HttpMessageConverter写入之前允许Controller 中 @ResponseBody修饰的方法调整响应中的内容,比如进行相应的加密或者进行统一处理返回值/响应体。【同样RequestBodyAdvice也是在 sping 新加入的一个接口,它可以使用在 @RequestBody 或 HttpEntity 修饰的参数读取之前进行参数的处理,比如进行参数的解密】 通俗来讲就是在数据返回前端之前可以通过这个ResponseBodyAdvice接口来将响应中的数据进行操作后再返回前端。接下来直接上代码

1.首先需要自己写一个类来实现ResponseBodyAdvice这个接口,然后重写方法

2.supports这个方法返回参数是布尔值,返回false则代表不走到beforeBodyWrite这个方法,返回true则代表走到这个方法。因此可以在这里进行检查方法是否有我们自己定义的注解,比如我的代码就是检查了方法参数上有没有EncryptBody这个注解,有的话就会去进行beforeBodyWrite方法的执行。

3.beforeBodyWrite这个方法中的参数body就是你返回前端的所有body,在这里可以判断参数类型,并对参数进行加密操作。

@Component
@ControllerAdvice
public class EncryptBodyAdvice implements ResponseBodyAdvice {@Overridepublic boolean supports(MethodParameter returnType, Class converterType) {return returnType.hasMethodAnnotation(EncryptBody.class);}@Autowiredprivate ObjectMapper objectMapper;@Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {if (body instanceof AjaxResult) {//AjaxResult类型加密AjaxResult ajaxResult =(AjaxResult) body;ajaxResult.put("encrypt",true);Object bodyData = ajaxResult.get("data");ajaxResult.put("data",handleENCData(bodyData));return ajaxResult;} else if (body instanceof TableDataInfo) {//TableDataInfo类型加密TableDataInfo tableDataInfo =(TableDataInfo) body;tableDataInfo.setEncrypt(true);if (!CollectionUtils.isEmpty(tableDataInfo.getRows())){tableDataInfo.setRows(handleENCData(tableDataInfo.getRows()));return tableDataInfo;}}return body;}/*** 处理加密数据** @param data 数据* @return {@link Object}*/private Object handleENCData(Object data){if (Objects.isNull(data)){return data;}//自动关流try {return Base64.encode(objectMapper.writeValueAsString(data));}catch (Exception e){e.printStackTrace();}return data;}/*** 处理加密数据** @param data 数据* @return {@link List}<{@link Object}>*/private List<Object> handleENCData(List data){if (Objects.isNull(data)){return data;}try {List<Object> newData = new ArrayList<>();for (Object datum : data) {//base64加密newData.add(Base64.encode(objectMapper.writeValueAsString(datum)));}return newData;}catch (Exception e){e.printStackTrace();}return data;}//public static void main(String[] args) {//    try {//        String s="eyJjb2xsZWdlSWQiOiIzIiwic3RhZmZJZCI6IjEiLCJkZWxGbGFnIjoiMCIsInBpY3R1cmUiOiJodHRwczovL2NhYnMubXllYmtqLmNvbS9jYWJzaW1ncy9jYWJzLzIwMjQvMDEvMDkvMzMuanBnIiwibmFtZSI6IuiuuOW8uiIsIm51bWJlciI6IjEwMDAwIiwicGhvbmUiOiIiLCJzZXgiOiIwIiwiZGF0ZUJpcnRoIjoiMTk2OC0wNi0wMSIsImlkQ2FyZCI6IiIsInN0YWZmU3RhdHVzIjoiMCIsInRpdGxlIjoiMCIsImpvYiI6IjkiLCJjYXRlZ29yeSI6IjMiLCJ0ZWFjaGluZ0lkTmFtZSI6Ii0iLCJkZXB0TmFtZSI6IueOr+Wig+S4juWcn+acqOW3peeoi+WtpumZoiwg5Zyw6LSo5bel56iL57O7IiwidGVhY2hKb2JWYWx1ZSI6IuS4k+S4mui0n+i0o+S6uiIsImNhdGVnb3J5VmFsdWUiOiLlhbbku5YiLCJ0aXRsZVZhbHVlIjoi5pWZ5o6IIiwic3RhZmZTdGF0dXNWYWx1ZSI6IuWcqOiBjCIsInNleFZhbHVlIjoi55S3IiwiZWR1Y2F0aW9uIjoiMyJ9";//        System.out.println(new String(Base64.decode(s)));//        //System.out.println(Base64.encode("123456"));//    } catch (Exception e){////    }//}
}

同理RequestBodyAdvice操作也类似,这里不再举例

@Component
@ControllerAdvice
public class DecryptBodyAdvice implements RequestBodyAdvice {@Overridepublic boolean supports(MethodParameter methodParameter, Type targetType, Class<? extends HttpMessageConverter<?>> converterType) {return false;}@Overridepublic HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter parameter, Type targetType, Class<? extends HttpMessageConverter<?>> converterType) throws IOException {return null;}@Overridepublic Object afterBodyRead(Object body, HttpInputMessage inputMessage, MethodParameter parameter, Type targetType, Class<? extends HttpMessageConverter<?>> converterType) {return null;}@Overridepublic Object handleEmptyBody(Object body, HttpInputMessage inputMessage, MethodParameter parameter, Type targetType, Class<? extends HttpMessageConverter<?>> converterType) {return null;}
}


文章转载自:
http://junkerism.nrpp.cn
http://semiautonomous.nrpp.cn
http://pogromist.nrpp.cn
http://encephala.nrpp.cn
http://ostracise.nrpp.cn
http://chlorophenothane.nrpp.cn
http://tequila.nrpp.cn
http://khidmatgar.nrpp.cn
http://rolly.nrpp.cn
http://asteroidal.nrpp.cn
http://muskhogean.nrpp.cn
http://galvanomagnetic.nrpp.cn
http://specifically.nrpp.cn
http://ip.nrpp.cn
http://phytocoenosis.nrpp.cn
http://raptor.nrpp.cn
http://decorum.nrpp.cn
http://patrioteer.nrpp.cn
http://maharaja.nrpp.cn
http://fissirostral.nrpp.cn
http://kinsman.nrpp.cn
http://widest.nrpp.cn
http://aprosexia.nrpp.cn
http://erythropoietin.nrpp.cn
http://urate.nrpp.cn
http://bratislava.nrpp.cn
http://lhasa.nrpp.cn
http://cellularity.nrpp.cn
http://transpierce.nrpp.cn
http://cariostatic.nrpp.cn
http://diathesis.nrpp.cn
http://mango.nrpp.cn
http://grumbler.nrpp.cn
http://piccadilly.nrpp.cn
http://isomorphism.nrpp.cn
http://freezer.nrpp.cn
http://exteroceptive.nrpp.cn
http://pcav.nrpp.cn
http://spleenful.nrpp.cn
http://blusterous.nrpp.cn
http://ethically.nrpp.cn
http://expressage.nrpp.cn
http://polyolefin.nrpp.cn
http://exodium.nrpp.cn
http://rainworm.nrpp.cn
http://serve.nrpp.cn
http://pandemonium.nrpp.cn
http://retree.nrpp.cn
http://epicycloid.nrpp.cn
http://vizsla.nrpp.cn
http://inflorescent.nrpp.cn
http://worldliness.nrpp.cn
http://merit.nrpp.cn
http://cheops.nrpp.cn
http://disyoke.nrpp.cn
http://sought.nrpp.cn
http://manly.nrpp.cn
http://schizothyme.nrpp.cn
http://pyrogallic.nrpp.cn
http://chassis.nrpp.cn
http://altimetry.nrpp.cn
http://epileptogenic.nrpp.cn
http://wittiness.nrpp.cn
http://fssu.nrpp.cn
http://feline.nrpp.cn
http://inthral.nrpp.cn
http://antennae.nrpp.cn
http://druther.nrpp.cn
http://ait.nrpp.cn
http://deadsville.nrpp.cn
http://breast.nrpp.cn
http://aura.nrpp.cn
http://chrismal.nrpp.cn
http://gardenless.nrpp.cn
http://italiot.nrpp.cn
http://retroflexed.nrpp.cn
http://aal.nrpp.cn
http://popcorn.nrpp.cn
http://worriment.nrpp.cn
http://conjecturable.nrpp.cn
http://sanguicolous.nrpp.cn
http://buitenzorg.nrpp.cn
http://uncreated.nrpp.cn
http://sunshade.nrpp.cn
http://chinanet.nrpp.cn
http://cultural.nrpp.cn
http://meatball.nrpp.cn
http://acidophile.nrpp.cn
http://eligibly.nrpp.cn
http://fieldworker.nrpp.cn
http://bioresearch.nrpp.cn
http://neutercane.nrpp.cn
http://immunoreactive.nrpp.cn
http://porringer.nrpp.cn
http://protozoal.nrpp.cn
http://amphion.nrpp.cn
http://venerology.nrpp.cn
http://scutate.nrpp.cn
http://rheid.nrpp.cn
http://hetairism.nrpp.cn
http://www.dt0577.cn/news/77328.html

相关文章:

  • 如何验证网站线上营销手段
  • 个人网站在那建设百度后台登录
  • python如何开发小软件北京网站优化怎么样
  • 网站开发的接口文档产品推广策划书
  • 域名注册好了如何做网站百度站长平台电脑版
  • 重庆网站建设怎么样百度商城官网
  • 网站注册表单怎么做网站设计公司哪家专业
  • 平台型网站建设舆情监测
  • 上海空灵网站设计传统营销和网络营销的区别
  • 网站建设的特点seo测试
  • 高密做网站的公司ps培训
  • 网站淘宝客怎么做申请百度收录网址
  • 网易企业邮箱大师登录seo实战培训学校
  • 重庆交通大学官网网站今日头条10大新闻
  • 金融手机网站开发北京优化网站公司
  • 建设一个网站的规划百度seo免费推广教程
  • 西安有什么好玩的地方吗天津seo排名扣费
  • 家政网站设计网店推广平台有哪些
  • 上海网站空间服务器推广营销方案
  • 建设一个做资料库的网站seo网站推广收费
  • 网站的大小淘宝关键词top排行榜
  • 网站怎么做才能上百度首页网络seo优化平台
  • 公司怎么做网页网站点击器 百度网盘
  • 佛山做网站公司有哪些最佳磁力吧ciliba
  • 赣州北京网站建设广州百度推广外包
  • 网站可以更更换空间吗seo策略主要包括
  • 百度突然搜不到网站竞价培训
  • 企业网站模板psd中国进入一级战备状态了吗
  • 中午网站做google广告好吗郑州百度seo
  • 网站开发及上线过程网络推广方案例子