Azure Key Vault秘诀Spring Boot Starter 0.1.5 [英] Azure Key Vault Secrets Spring Boot Starter 0.1.5

查看:220
本文介绍了Azure Key Vault秘诀Spring Boot Starter 0.1.5的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用旧版本的Azure Key Vault Secrets Spring Boot Starter-0.1.5 也是旧版本的spring-boot-starter,如下所示:

I am using older version of Azure Key Vault Secrets Spring Boot Starter -- 0.1.5 Also older version of spring-boot-starter as shown below::

 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.15.RELEASE</version>
  </parent>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web-services</artifactId>
    </dependency>

Azure密钥仓库没有代码更改,在application.properties中,我们添加了以下内容:

There were no code changes for Azure keyvault, In application.properties we added below:

azure.keyvault.uri=<<Keyvault URL>>
azure.client-id=<<Keyvault client Id>>
azure.client-key=<<Keyvault Key>>

现在,我如下升级了Spring boot starter和azure keyvault的版本:

Now I upgraded the versions of Spring boot starter and azure keyvault as below::

 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.3.RELEASE</version>
  </parent>

    <dependency>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-keyvault-secrets-spring-boot-starter</artifactId>
      <version>2.3.3</version>
      <scope>runtime</scope>
    </dependency>

application.properties

azure.keyvault.uri=<<Keyvault URL>>
azure.keyvault.enabled=true
azure.client-id=<<Client-ID>>
azure.client-key=<<Cleint key>>

它失败并显示以下错误,如果我要升级到最新版本,可以请帮我做什么.

Its failing with below Errors, Can you please help what i need to do if i am upgrading to latest version.

13:36:59.270 [main]错误org.springframework.boot.SpringApplication-应用程序运行失败 java.lang.IllegalStateException:无法配置KeyVault属性源 在com.microsoft.azure.keyvault.spring.KeyVaultEnvironmentPostProcessorHelper.addKeyVaultPropertySource(KeyVaultEnvironmentPostProcessorHelper.java:110)处 在com.microsoft.azure.keyvault.spring.KeyVaultEnvironmentPostProcessor.postProcessEnvironment(KeyVaultEnvironmentPostProcessor.java:47) 在org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:200) 在org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:188) 在org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) 在org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) 在org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) 在org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127) 在org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:80) 在org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)处 在org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:345) 在org.springframework.boot.SpringApplication.run(SpringApplication.java:308) 在org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) 在org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) 在com.honeywell.CaaS.GatewayManagerAPI.webapi.SpringBootMain.main(SpringBootMain.java:47) 原因:java.lang.RuntimeException:最多重试3次.错误详细信息:网络无法访问:连接 在com.azure.core.http.policy.RetryPolicy.lambda $ attemptAsync $ 1(RetryPolicy.java:119) 在Reactor.core.publisher.FluxOnErrorResume $ ResumeSubscriber.onError(FluxOnErrorResume.java:88) 在Reactor.core.publisher.MonoFlatMap $ FlatMapMain.onError(MonoFlatMap.java:165) 在Reactor.core.publisher.MonoFlatMap $ FlatMapMain.onError(MonoFlatMap.java:165) 在Reactor.core.publisher.MonoFlatMap $ FlatMapMain.secondError(MonoFlatMap.java:185) 在Reactor.core.publisher.MonoFlatMap $ FlatMapInner.onError(MonoFlatMap.java:251) 在Reactor.core.publisher.MonoPeekTerminal $ MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:251) 在Reactor.core.publisher.MonoPeekTerminal $ MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:251) 在reactor.core.publisher.FluxPeekFuseable $ PeekFuseableConditionalSubscriber.onError(FluxPeekFuseable.java:545) 在reactor.core.publisher.FluxPeekFuseable $ PeekFuseableConditionalSubscriber.onError(FluxPeekFuseable.java:545) 在reactor.core.publisher.Operators.error(Operators.java:196) 在Reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:134)处 在reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53) 在reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57) 在reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) 在Reactor.core.publisher.MonoFlatMap $ FlatMapMain.onNext(MonoFlatMap.java:150) 在reactor.core.publisher.FluxMapFuseable $ MapFuseableSubscriber.onNext(FluxMapFuseable.java:121) 在reactor.core.publisher.FluxMapFuseable $ MapFuseableSubscriber.onNext(FluxMapFuseable.java:121) 在Reactor.core.publisher.FluxPeekFuseable $ PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:203) 在Reactor.core.publisher.Operators $ MonoSubscriber.complete(Operators.java:1782) 在reactor.core.publisher.MonoSingle $ SingleSubscriber.onComplete(MonoSingle.java:171) 在reactor.core.publisher.Operators $ ScalarSubscription.request(Operators.java:2346) 在Reactor.core.publisher.MonoFlatMapMany $ FlatMapManyMain.onSubscribeInner(MonoFlatMapMany.java:143)处 在reactor.core.publisher.MonoFlatMapMany $ FlatMapManyMain.onNext(MonoFlatMapMany.java:182) 在Reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:99) 在reactor.core.publisher.FluxRetryWhen $ RetryWhenMainSubscriber.onNext(FluxRetryWhen.java:162) 在Reactor.core.publisher.MonoCreate $ DefaultMonoSink.success(MonoCreate.java:156) 在react.netty.http.client.HttpClientConnect $ HttpIOHandlerObserver.onStateChange(HttpClientConnect.java:432) 在react.netty.ReactorNetty $ CompositeConnectionObserver.onStateChange(ReactorNetty.java:518) 在react.netty.resources.PooledConnectionProvider $ DisposableAcquire.onStateChange(PooledConnectionProvider.java:561) 在react.netty.resources.PooledConnectionProvider $ PooledConnection.onStateChange(PooledConnectionProvider.java:448) 在react.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:594) 在react.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:96) 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) 在io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) 在io.netty.channel.CombinedChannelDuplexHandler $ DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) 在io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) 在io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:311) 在io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:425) 在io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) 在io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) 在io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) 在io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1526) 在io.netty.handler.ssl.SslHandler.decodeNonJdkCompatible(SslHandler.java:1287) 在io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1324) 在io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501) 在io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440) 在io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) 在io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) 在io.netty.channel.DefaultChannelPipeline $ HeadContext.channelRead(DefaultChannelPipeline.java:1410) 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) 在io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) 在io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) 在io.netty.channel.nio.AbstractNioByteChannel $ NioByteUnsafe.read(AbstractNioByteChannel.java:163) 在io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714) 在io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) 在io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) 在io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) 在io.netty.util.concurrent.SingleThreadEventExecutor $ 4.run(SingleThreadEventExecutor.java:989) 在io.netty.util.internal.ThreadExecutorMap $ 2.run(ThreadExecutorMap.java:74) 在io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) 在java.lang.Thread.run(Thread.java:748) 由以下原因引起:java.net.SocketException:网络无法访问:connect 在java.net.DualStackPlainSocketImpl.waitForConnect(本机方法) 在java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) 在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 在java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在java.net.Socket.connect(Socket.java:606) 在sun.net.NetworkClient.doConnect(NetworkClient.java:175) 在sun.net.www.http.HttpClient.openServer(HttpClient.java:463) 在sun.net.www.http.HttpClient.openServer(HttpClient.java:558) 在sun.net.www.http.HttpClient.(HttpClient.java:242) 在sun.net.www.http.HttpClient.New(HttpClient.java:339) 在sun.net.www.http.HttpClient.New(HttpClient.java:357) 在sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226) 在sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162) 在sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056) 在sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990) 在com.azure.identity.implementation.IdentityClient.lambda $ checkIMDSAvailable $ 14(IdentityClient.java:463) 在Reactor.core.publisher.MonoCallable.call(MonoCallable.java:91) 在reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:126)

13:36:59.270 [main] ERROR org.springframework.boot.SpringApplication - Application run failed java.lang.IllegalStateException: Failed to configure KeyVault property source at com.microsoft.azure.keyvault.spring.KeyVaultEnvironmentPostProcessorHelper.addKeyVaultPropertySource(KeyVaultEnvironmentPostProcessorHelper.java:110) at com.microsoft.azure.keyvault.spring.KeyVaultEnvironmentPostProcessor.postProcessEnvironment(KeyVaultEnvironmentPostProcessor.java:47) at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:200) at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:188) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127) at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:80) at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53) at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:345) at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) at com.honeywell.CaaS.GatewayManagerAPI.webapi.SpringBootMain.main(SpringBootMain.java:47) Caused by: java.lang.RuntimeException: Max retries 3 times exceeded. Error Details: Network is unreachable: connect at com.azure.core.http.policy.RetryPolicy.lambda$attemptAsync$1(RetryPolicy.java:119) at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:88) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:165) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:165) at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:185) at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:251) at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:251) at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:251) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onError(FluxPeekFuseable.java:545) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onError(FluxPeekFuseable.java:545) at reactor.core.publisher.Operators.error(Operators.java:196) at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:134) at reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53) at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57) at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:121) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:121) at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:203) at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1782) at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:171) at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2346) at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribeInner(MonoFlatMapMany.java:143) at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onNext(MonoFlatMapMany.java:182) at reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:99) at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onNext(FluxRetryWhen.java:162) at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:156) at reactor.netty.http.client.HttpClientConnect$HttpIOHandlerObserver.onStateChange(HttpClientConnect.java:432) at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:518) at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onStateChange(PooledConnectionProvider.java:561) at reactor.netty.resources.PooledConnectionProvider$PooledConnection.onStateChange(PooledConnectionProvider.java:448) at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:594) at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:96) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:311) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:425) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1526) at io.netty.handler.ssl.SslHandler.decodeNonJdkCompatible(SslHandler.java:1287) at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1324) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:748) Caused by: java.net.SocketException: Network is unreachable: connect at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:606) at sun.net.NetworkClient.doConnect(NetworkClient.java:175) at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) at sun.net.www.http.HttpClient.(HttpClient.java:242) at sun.net.www.http.HttpClient.New(HttpClient.java:339) at sun.net.www.http.HttpClient.New(HttpClient.java:357) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1226) at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1162) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1056) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:990) at com.azure.identity.implementation.IdentityClient.lambda$checkIMDSAvailable$14(IdentityClient.java:463) at reactor.core.publisher.MonoCallable.call(MonoCallable.java:91) at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:126)

推荐答案

似乎您错过了application.properties中的属性azure.keyvault.tenant-id.

It seems that you miss the property azure.keyvault.tenant-id in the application.properties.

我已重现此错误 java.lang.IllegalStateException:无法配置KeyVault属性源.参见:

I have reproduced this error java.lang.IllegalStateException: Failed to configure KeyVault property source. See:

在文件中添加azure.keyvault.tenant-id=<your-tenant-id>之后.它的工作原理:

After adding azure.keyvault.tenant-id=<your-tenant-id> in the file. It works:

我指的是样本.要使其正常工作,请确保该应用程序具有获取和列出密钥库访问策略中的机密的权限.

I refer to How to use the Spring Boot Starter for Azure Key Vault and the sample. To let it work, make sure the application has permissions to get and list secrets in access policies of your key vault.

application.properties

azure.keyvault.enabled=true
azure.keyvault.uri=https://{your-azure-keyvault}.vault.azure.net/
azure.keyvault.client-id=put-your-azure-client-id-here
azure.keyvault.client-key=put-your-azure-client-key-here
azure.keyvault.tenant-id=put-your-azure-tenant-id-here

pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <java.version>11</java.version>
    <azure.version>2.3.3</azure.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>azure-spring-boot-bom</artifactId>
            <version>${azure.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

DemoKeyVaultApplication.java

@SpringBootApplication
@RestController
public class DemoKeyVaultApplication implements CommandLineRunner {

   @Value("${test1}")
   private String testSecretName;

   
    public static void main(final String[] args) {
        SpringApplication.run(DemoKeyVaultApplication.class, args);
    }

    public void run(final String... varl) throws Exception {        
        System.out.println("testSecretName stored in Azure Key Vault: " + testSecretName);
    }
}

这篇关于Azure Key Vault秘诀Spring Boot Starter 0.1.5的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆