を使用して、Spring Cloud Configを検出し、設定を取得するアプリケーションはSpring-Bootです。 Vaultを統合して安全/機密情報を注入し、パラメータの読み込みと解決に問題が発生しています。 Vaultクライアントとして使用しているプロジェクトはvault-spring-boot-starterであり、ユーレカ経由でconfig-serverと一緒に使用していない限り有効です。bootstrap PropertySource ordering
具体的には、ユーレカのアクセスURLには、Vaultから取得されるパラメータ/認証情報が含まれています。すべてのコンポーネントが有効になっていると、DiscoveryClientがパラメータがまだ入力/置換されていないURLにアクセスしようとすると、Eurekaリクエストが失敗します。 @Orderとボールトスプリング・ブート・スターターのVaultBootstrapConfigurationで
@AutoConfigureBefore({EurekaClientAutoConfiguration.class, DiscoveryClientConfigServiceAutoConfiguration.class})
を指定しようとすると
(Example: http://${user}:${pass}.....)
どんな影響を与えていないようです。私は問題がPropertySourcesが処理される順序に関連していると信じていますが、私はVaultのPropertySourceをEurekaより先に注入することができません。 DiscoveryClientおよび構成サーバーへのアクセスの前にカスタム/ボールトPropertySourceLocatorロジックを実行するように指示する方法を教えてください。
更新
我々は、ばねのクラウド版Angel.SR6を使用しています。
@Order(Ordered.HIGHEST_PRECEDENCE)注釈をVaultPropertySourceLocatorに追加しましたが、パラメータ解決はまだ機能しません。 Springのデバッグロギングを有効にすると、Vault PropertySourceは実際にそこにあると思われますが、何らかの理由で使用されていません。 VaultConfigurationがSmartLifecycleとOrdered(order = 0、phase = Integer.MIN_VALUE)を実装するようにコードを修正しました。私は何が起こっているのかを分離しようとするために、より多くのデバッグをしなければならないでしょう。
使用しているスプリングクラウドのバージョンは何ですか? – spencergibb
コードを見ると、おそらくhttps://github.com/markramach/vault-spring-boot-starter/blob/master/src/main/java/com/flyover/boot/vaultで '@ Order'が必要になります/config/VaultPropertySourceLocator.java – spencergibb
つまり、 'PropertySourceLocator'はスプリングの順序付けメカニズムをサポートしています。 – spencergibb