学习目标
【掌握】zuul网关实现接口数据解密
【掌握】zuul网关将解密后的数据进行转发
文章目录
一 测试用例EncryptTest编写
1.1 在src/test/java文件夹下创建测试用例EncryptTest
- 在EncryptTest 编写加密方法genEncryptDataByPubKey用于RSA加密
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = EncryptApplication.class)
public class EncryptTest {
@Autowired
private RsaService rsaService;
@Before
public void before() throws Exception{
}
@After
public void after() throws Exception {
}
//加密方法
@Test
public void genEncryptDataByPubKey() {
String data = "{\"title\":\"java\"}"; //用于拦截该json数据
try {
String encData = rsaService.RSAEncryptDataPEM(data, RsaKeys.getServerPubKey());
System.out.println("data: " + data);
System.out.println("encData: " + encData);
} catch (Exception e) {
e.printStackTrace();
}
}
}
二 配置zuul网关的过滤器
2.1 在com.Tony.encrypt包下新建filters包
package com.Tony.encrypt.filter;
/**
* @author AntonTony
* @version 1.0
* @GitHub https://github.com/AntonTony
*/
@Component
public class RSARequestFilter extends ZuulFilter {
@Override
public String filterType() {
//过滤器在什么环境执行,解密操作需要在转发之前执行
return FilterConstants.PRE_TYPE;
}
@Override
public int filterOrder() {
//设置过滤器执行顺序
return FilterConstants.PRE_DECORATION_FILTER_ORDER +1 ;
}
@Override
public boolean shouldFilter(