首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自举PropertySource序

自举PropertySource序
EN

Stack Overflow用户
提问于 2016-04-02 01:06:33
回答 1查看 2.1K关注 0票数 6

我们有一个春靴应用程序,在这个应用程序中,我们使用尤里卡来发现弹簧云Config和检索配置。我们正在集成保险库来注入安全/敏感的信息,并且在参数的加载和解析方面遇到了问题。我们作为Vault客户端使用的项目是跳马-弹簧-启动-启动,只要我们不通过eureka与配置服务器一起使用它,它就能工作得很好。

具体而言,Eureka访问URL包含从Vault检索的参数/凭据。启用所有组件后,当DiscoveryClient试图访问参数尚未填充/替换的URL时,尤里卡请求将失败。

( Example: http://${user}:${pass}..... )

试图指定@Order和

@AutoConfigureBefore({EurekaClientAutoConfiguration.class, DiscoveryClientConfigServiceAutoConfiguration.class})

在跳马弹簧启动的VaultBootstrapConfiguration似乎没有任何影响。我认为这个问题与处理PropertySources的顺序有关,但我无法在尤里卡之前成功地注入Vault的PropertySource。我们如何指示自定义/Vault PropertySourceLocator逻辑在DiscoveryClient和配置服务器访问之前执行?

更新

我们使用的是春云版本的Angel.SR6.

我已经按照建议将@Order(Ordered.HIGHEST_PRECEDENCE)注释添加到VaultPropertySourceLocator中,但是参数解析仍然不起作用。在启用了Spring调试日志之后,我相信Vault PropertySource确实存在,但出于某种原因没有被使用。我已经修改了代码,以便VaultConfiguration实现SmartLifecycle并排序(使用order=0和phase=Integer.MIN_VALUE),这可能会影响事物。我将不得不做更多的调试,试图隔离正在发生的事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-11 16:13:51

我解决了我的问题。我尝试了几种不同的方法,包括Spring和LTW,它们没有试图过早地实例化这些方面,以便在尤里卡的VaultPropertySource调用之前就可以使用。

我的工作解决方案包括:

为了在Eureka bean之前实例化Vault bean,配置将开始实例化:

  • @Ordered或在VaultPropertySourceLocator中实现PriorityOrdered。我的VaultPropertySourceLocator还包括实现SmartLifecycle,因为我看到了不确定的输出,部分Eureka实例化有时发生在Vault bean之前。我的订单是Ordered.HIGHEST_PRECEDENCE,相位是Integer.MIN_VALUE

VaultPropertySource注册为PropertySource,用于在发生尤里卡bean/配置连接时解析参数:

  • 将环境引用传递给自注册在环境的VaultPropertySource列表中的PropertySources,当Eureka在实例化和展开/解析EurekaClientConfigBean属性期间实例化和设置serviceUrl属性时,环境引用就在那里。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36368085

复制
相关文章

相似问题

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