SpringMvc扩展自定义注解实现web加密解密 (4)----测试工程

                                               测试代码

1.把定义的2个类加入到spring中

  1. package com.caigaoqinng.tech.config;
  2. import com.caigaoqing.tech.common.support.RequestBodyWrapFactoryBean;
  3. import com.caigaoqing.tech.common.support.ResponseBodyWrapFactoryBean;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. /**
  7. * Created by Administrator on 2018/8/17.
  8. */
  9. @Configuration
  10. public class OpenApiRegisterBean {
  11. /**
  12. * @Author 蔡高情
  13. * @Description响应数据加密
  14. * @Date 13:48 2018/7/25 0025
  15. * @Param
  16. * @return
  17. **/
  18. @Bean
  19. public ResponseBodyWrapFactoryBean getResponseBodyWrap() {
  20. return new ResponseBodyWrapFactoryBean();
  21. }
  22. /**
  23. * @Author 蔡高情
  24. * @Description 接收数据解密
  25. * @Date 13:49 2018/7/25 0025
  26. * @Param []
  27. * @return
  28. **/
  29. @Bean
  30. public RequestBodyWrapFactoryBean getRequestBodyWrap() {
  31. return new RequestBodyWrapFactoryBean();
  32. }
  33. }

常规项目配置xml <bean id=xxx  class=xxx/>

2.填写测试类(web)

  1. package com.caigaoqinng.tech.rest;
  2. import com.caigaoqing.tech.common.annotation.RequestBodyDecrypt;
  3. import com.caigaoqing.tech.common.annotation.ResponseBodyEncrypt;
  4. import com.caigaoqing.tech.common.entity.MapWrapper;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.springframework.web.bind.annotation.PostMapping;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RestController;
  9. import java.util.Map;
  10. /**
  11. * Created by Administrator on 2018/8/17.
  12. */
  13. @Slf4j
  14. @RestController
  15. @RequestMapping("/api/")
  16. public class Test {
  17. /**
  18. * 测试传递 不可以接受get,只能接受post参数 所有get参数用原来的进行解析 get参数不加密传输
  19. * @return
  20. */
  21. @ResponseBodyEncrypt()
  22. @PostMapping("test")
  23. public String getMap(String age,@RequestBodyDecrypt String userName){
  24. log.info(userName);
  25. return userName;
  26. }
  27. /**
  28. * 测试传递 不可以接受get,只能接受post参数 所有get参数用原来的进行解析 get参数不加密传输
  29. * @return
  30. */
  31. @ResponseBodyEncrypt()
  32. @PostMapping("testMap")
  33. public Map getMap(@RequestBodyDecrypt MapWrapper userName){
  34. log.info(userName.toString());
  35. return userName.toMap();
  36. }
  37. }

3加密测试

  1. package com.caigaoqinng.tech;
  2. import com.alibaba.fastjson.JSON;
  3. import com.caigaoqing.tech.util.encrypt.AesCBC;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. /**
  7. * Created by Administrator on 2018/8/17.
  8. */
  9. public class Test {
  10. public static void main(String[] args) throws Exception{
  11. String data= AesCBC.encrypt("123","1234567812345678","1234567812345678");
  12. Map map =new HashMap<>();
  13. map.put("name","caigaoqing");
  14. map.put("age",21);
  15. String dataStr=JSON.toJSON(map).toString();
  16. String data1= AesCBC.encrypt(dataStr,"1234567812345678","1234567812345678");
  17. System.out.println("要请求的数据1 "+data);
  18. System.out.println("要请求的数据2 "+data1);
  19. String result=AesCBC.decrypt(data,"1234567812345678","1234567812345678");
  20. String result1=AesCBC.decrypt(data1,"1234567812345678","1234567812345678");
  21. System.out.println("应该返回的数据1 "+result);
  22. System.out.println("应该返回的数据2 "+result1);
  23. }
  24. }

4.postman测试发送加密数据,返回加密数据

5.结果


 

著作权归作者所有,转载请标志作者。2018/08/17

 

上面应该是接受参数 解密的 

代码应该没有问题的,具体查看码云:

https://gitee.com/CaiGaoQing/open-api-demo