Springfox swagger-ui.html 无法推断基本 URL - 由缺少 cookie 引起

新手上路,请多包涵

我们在 API 网关后面有我们的 Spring Boot 服务。使用 Springfox 的早期版本 - 2.1.2,我们在加载 swagger-ui.html 页面时没有问题。这适用于 Spring Boot 1.4.3.RELEASE。从那时起,我们已经升级到 Boot 1.5.7,并将 Springfox 升级到 2.8.0。

现在,如果我们加载页面,我们会收到一个带有以下长消息的警告框。

无法推断基本网址。这在使用动态 servlet 注册或 API 位于 API 网关后面时很常见。基本 url 是提供所有 swagger 资源的根。例如,如果 api 在 http://example.org/api/v2/api-docs 上可用,那么基本 url 是 http://example.org/api/ 。请手动输入位置

我在网上搜索了一些提示,但这些情况似乎不适用于我们。一方面,如果我只是简单地恢复版本,它就会通过同一个 API 网关重新开始工作。

跟踪流量,.html 页面对三个 XHR 资源的调用似乎引起了问题。这些从我们的 API 网关返回 401。他们返回 401 的原因是因为 cookie 没有传递。

这三个调用是:

如果我将这些 URL 作为纯浏览器请求加载 - 它们可以工作 - 因为发送了 cookie。

我怀疑CORS是否适用,因为HTML是从与swagger JSON和实际服务调用相同的地址提供的。

知道为什么会发生这种情况吗?有人遇到过类似的问题吗?解决方法的建议?提前非常感谢。

原文由 Arnab Gupta 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 871
1 个回答

添加安全配置——以下为身份验证而跳过的 URL::

 private static final String[] AUTH_WHITELIST = {
        "/swagger-resources/**",
        "/swagger-ui.html",
        "/v2/api-docs",
        "/webjars/**"
};

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers(AUTH_WHITELIST);
}

原文由 panksy2k 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题