小编Mat*_*son的帖子

Apache Camel Rest DSL CORS 选项

我正在尝试根据休息调用的路径实现自定义选项响应。

例如我有:

rest("/employee/login").id("employee-login-options")
                .verb("options").route()
                .setHeader("Access-Control-Allow-Origin", constant("https://example.com"))
                .setHeader("Access-Control-Allow-Credentials", constant(true))
                .setHeader("Access-Control-Allow-Methods", constant("GET, HEAD, POST, PUT, DELETE, OPTIONS"))
                .setHeader("Access-Control-Allow-Headers", constant("Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, Authorization"))
                .setHeader("Allow", constant("GET, HEAD, POST, PUT, DELETE, OPTIONS"));

rest("/login").id("login-options")
        .verb("options").route()
        .setHeader("Access-Control-Allow-Origin", constant("*"))
        .setHeader("Access-Control-Allow-Methods", constant("GET, HEAD, POST, PUT, DELETE, OPTIONS"))
        .setHeader("Access-Control-Allow-Headers", constant("Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers"))
        .setHeader("Allow", constant("GET, HEAD, POST, PUT, DELETE, OPTIONS"));
Run Code Online (Sandbox Code Playgroud)

因此,一条路由允许凭据并具有特定域,另一条路由则使用通配符进行响应。

我遇到的问题是他们都没有被调用。我可以看到客户端发出 OPTIONS 请求,但它没有命中我的路线。

我已经配置了我的其余配置,如下所示:

restConfiguration()
                .component("jetty")
                .scheme(JETTY_SCHEME)
                .port(JETTY_PORT);
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

restConfiguration()
        .component("jetty")
        .scheme(JETTY_SCHEME)
        .port(JETTY_PORT)
        .enableCORS(true)
        .corsAllowCredentials(true)
        .corsHeaderProperty("Access-Control-Allow-Origin","https://hello.3en.codes")
        .corsHeaderProperty("Access-Control-Allow-Headers","Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, Authorization");
Run Code Online (Sandbox Code Playgroud)

但是,这仅适用于一条路线,并且我无法在每个路线的基础上覆盖标头 …

rest apache-camel

3
推荐指数
1
解决办法
6857
查看次数

标签 统计

apache-camel ×1

rest ×1