DataEase 下载下来之后,发现无法访问knife4j的文档。通过一步一步debug发现是官方有一个beanName为deDocFilter的类拦截导致的。这里总结下解决方案:

  1. 继承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;
    }
    }
  2. WhitelistUtils 中match方法的结尾添加knife4j白名单,才可以访问knife4j的文档。
1
|| StringUtils.startsWithAny(requestURI, "/v3");

之后基本就能访问knife4j的文档了,yml中基础的kne4j配置的配置可以参考knife4j官方文档