DataEase 下载下来之后,发现无法访问knife4j的文档。通过一步一步debug发现是官方有一个beanName为deDocFilter的类拦截导致的。这里总结下解决方案:
- 继承InstantiationAwareBeanPostProcessor 重写postProcessAfterInitialization方法,在bean初始化之后,把 deDocFilter 禁用。
1
2
3
4
5
6
7
8
9
10
11
12
13@Component
public class FilterDisableBeanPostProcessor implements InstantiationAwareBeanPostProcessor {
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) {
if (bean instanceof FilterRegistrationBean<?> filterReg) {
if ("deDocFilter".equals(filterReg.getFilterName())) {
filterReg.setEnabled(false);
}
}
return bean;
}
} - WhitelistUtils 中match方法的结尾添加knife4j白名单,才可以访问knife4j的文档。
1 | || StringUtils.startsWithAny(requestURI, "/v3"); |
之后基本就能访问knife4j的文档了,yml中基础的kne4j配置的配置可以参考knife4j官方文档