【问题标题】:Enable CORS in vespa在 vespa 中启用 CORS
【发布时间】:2018-12-17 07:29:11
【问题描述】:

如何在 vespa 中启用 CORS?我想将我的 API 部署到招摇 UI,但由于 vespa 中禁用了 CORS,我无法执行此操作。有什么方法可以在 vespa 中启用 CORS,或者我应该如何在 swagger 中使用 API 来使用它?请帮忙。

【问题讨论】:

    标签: vespa


    【解决方案1】:

    Vespa 没有内置 CORS 支持。您必须自己将 CORS 逻辑实现为 JDisc 安全过滤器(http-server-and-filters.htmlservices-http.html#filter)。

    Vespa source code 包含一组可用作灵感的 CORS 过滤器。 您可以在技术上使用它们,但它们不是公共 API,将来可以更改/删除。

    您将需要两个过滤器:

    • 处理 CORS 预检 HTTP 请求的请求过滤器
    • 将 CORS 标头附加到 HTTP 响应的响应过滤器

    请注意,如果请求过滤器返回响应,则不会调用响应过滤器。因此,应用程序中的任何其他 JDisc 过滤器在返回响应时都必须包含 CORS 标头。

    请参阅http-server-and-filters.html#set-up-filter-chains,了解如何配置请求/响应过滤器链。

    【讨论】:

    • 我正在创建我的自定义 RequestFilter 和 ResponseFilter。我应该在哪里放置这些类?我应该在哪里创建目录组件?
    • 我无法使用上面的链接找到我应该在哪里创建组件目录。我在应用程序包中创建了 components 目录,我们在其中保存了 search 和 searchDefitions 目录。现在我的组件目录,我应该创建 src/main/java/com/yahoo/demo/CustomRequestFilter 还是直接保留 CustomRequestFilter 类?根据文档,我应该在哪里创建工件 id 过滤器捆绑包?
    • Java 组件可以放在包内的任何Java 包中。您将在 vespa-engine/sample-apps 存储库中找到有关如何使用自定义组件创建捆绑包的示例(例如 github.com/vespa-engine/sample-apps/tree/master/…)。
    猜你喜欢
    • 2017-01-23
    • 2020-02-18
    • 2013-06-12
    • 2013-01-06
    • 2020-02-18
    • 2015-06-15
    • 2019-01-01
    • 2015-01-09
    相关资源
    最近更新 更多