最后我只能在filter里面强行给它限制死了~~~

public class SwaggerFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain) throws IOException, ServletException {
        if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) {
            HttpServletRequest httpRequest = (HttpServletRequest) request;
            HttpServletResponse httpResponse = (HttpServletResponse) response;

            // 检查请求的URL是否为/2/api-docs
            if (httpRequest.getRequestURI().contains("/v2/api-docs")) {
                // 禁止请求,返回403 Forbidden状态码
                httpResponse.sendError(HttpServletResponse.SC_FORBIDDEN, "Access to /v2/api-docs is forbidden");
                return; // 不继续调用chain.doFilter()
            }
        }

        // 如果不是/v2/api-docs,则继续处理请求
        chain.doFilter(request, response);
    }
}

@Configuration
public class SwaggerFilterConfiguration {
    /**
     * 配置跨站攻击过滤器
     */
    @Bean
    public FilterRegistrationBean swaggerFilterRegistrationBean() {
        FilterRegistrationBean filterRegistration = 
            new FilterRegistrationBean(new SwaggerFilter());
        filterRegistration.addUrlPatterns("/v2/api-docs");
        filterRegistration.setOrder(1);
        return filterRegistration;
    }
}

---------------------------------------------------------------------------------------------------------------------------

下面的方法我最后还是失败了,最终决定在shiroConfig里(这个方法本地有效,放到生产竟然也没效果!)

filterChainDefinitionMap.put("/v2/**", "authc");

--------------------------------------------------------------------------------------------------------------------------

knife4j.enable为false时,knife4j后面其他的配置无效,knife4j.enable和knife4j.basic.enable为true时,production true时即便输入密码也无法看到(但有时候存在bug可以直接看到,但马上又看不到了,生产环境实测,这个需要通过springfox.documentation的配置来进一步控制),production为false时输入密码才可以看到

knife4j:

  #一定要把true打开,否则配置的production、springfox.documentation配置会失效!!!
  enable: true
  #开启生产环境屏蔽
  production: true
  basic:
    enable: true
    username: jeecg
    password: jeecg1314
springfox:(这个才是拦截/v2/api-docs这个接口的)
  documentation:
    enabled: false
    swagger-ui:
      enabled: false

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐