Azure 服务总线 - 令牌颁发者无效

问题描述 投票:0回答:1

我正在尝试创建一个简单的 SpringBoot 应用程序来接收来自服务总线的消息,但是当我尝试连接 DefaultAzureCredentialBuilder 时,我收到此错误:

Failed to create receive link test_cd989b_1701894453220
status-code: 401, status-description: InvalidIssuer: Token issuer is invalid. 
TrackingId:fbfe2a23-dec8-4d1f-b695-4ce9548b8c9a_G31, SystemTracker:NoSystemTracker, 
Timestamp:2023-12-06T20:27:37, errorContext[NAMESPACE: -. ERROR CONTEXT: N/A, PATH: $cbs, REFERENCE_ID: 
cbs:receiver, LINK_CREDIT: 0]

这是我正在使用的代码:

 public ServiceBusReceiverAsyncClient getSBAsyncClient() {
    ServiceBusReceiverAsyncClient asyncReceiver = new ServiceBusClientBuilder()
            .credential("-", credential)
            .receiver()
            .disableAutoComplete()
            .queueName("test")
            .buildAsyncClient();

    Disposable subscription = asyncReceiver.receiveMessages()
            .flatMap(message -> {
                System.out.printf("Received Seq #: %s%n", message.getSequenceNumber());
                System.out.printf("Contents of message as string: %s%n", message.getBody());

                // Explicitly settle the message using complete, abandon, defer, dead-letter, etc.
                return asyncReceiver.complete(message);

            })
            .subscribe(unused -> {
                    }, error -> System.out.println("Error occurred: " + error),
                    () -> System.out.println("Receiving complete."));

    return asyncReceiver;
}
java spring azure token azureservicebus
1个回答
0
投票

您是否尝试过显式定义环境变量 AZURE_TENANT_ID、AZURE_CLIENT_ID 和 AZURE_CLIENT_SECRET。 DefaultAzureCredentialBuilder 尝试各种身份验证源来尝试找到有效的配置,包括来自 IDE 和平台密钥存储的配置。

© www.soinside.com 2019 - 2024. All rights reserved.