首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ateoas中更改主机名

如何在ateoas中更改主机名
EN

Stack Overflow用户
提问于 2020-10-23 20:12:43
回答 1查看 505关注 0票数 1

我试图修改Hateoas中链接的主机名,但它并不是直接向前看。对于如何修改它以替换主机名,有什么想法吗?

代码语言:javascript
复制
HalModelBuilder builder = HalModelBuilder.halModelOf(resource)
        .link(linkTo(methodOn(BaseController.class).method1(...))
            .withSelfRel())
        .preview(new SummaryResource(...))
        .forLink(
            linkTo(
                methodOn(RefController.class).method2(...)
                .withRel("blah"));

更新:

我试图用以下代码替换主机名:

代码语言:javascript
复制
HalModelBuilder builder = HalModelBuilder.halModelOf(resource)
        .link(
            Link.of(
                apiGatewayUrl +
                    linkTo(methodOn(BaseController.class).method1(...)).toUri().getPath())
                .withSelfRel())
        .preview(new SummaryResource(...))
        .forLink(
            Link.of(
                apiGatewayUrl +
                    linkTo(methodOn(RefController.class).method2(...)).toUri().getPath())
                .withRel("blah"));

尝试使用.toUricomponentBuilder()替换主机名,但是url构建不正确。因此,选择将gatewayUrl与生成的hateoas连接起来。

EN

回答 1

Stack Overflow用户

发布于 2020-10-24 11:18:11

似乎你在网关后面使用了Spring。如果网关正确设置x-forwarded-*头,如果使用Spring,则根据弹簧启动文件设置一个属性server.forward-headers-strategy = framework。然后ServletWebServerFactoryAutoConfiguration为您创建一个ForwardedHeaderFilter bean。

代码语言:javascript
复制
@Bean
@ConditionalOnMissingFilterBean(ForwardedHeaderFilter.class)
@ConditionalOnProperty(value = "server.forward-headers-strategy", havingValue = "framework")
public FilterRegistrationBean<ForwardedHeaderFilter> forwardedHeaderFilter() {
    ForwardedHeaderFilter filter = new ForwardedHeaderFilter();
    FilterRegistrationBean<ForwardedHeaderFilter> registration = new FilterRegistrationBean<>(filter);
    registration.setDispatcherTypes(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.ERROR);
    registration.setOrder(Ordered.HIGHEST_PRECEDENCE);
    return registration;
}

然后Spring生成具有与网关外相同的基本URI (主机名、端口、路径)的链接。见Spring HATEOAS文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64506722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档