此问题与: Using Azure Service Bus in java - 上一个问题有关使用ACS连接信息获取 ServiceBusContract。
我的问题有所不同,因为我试图使用从 Azure 门户获得的SAS连接信息来执行此操作 - 例如类似于以下内容的 SAS 信息:
NAME RootManageSharedAccessKey
连接字符串端点=sb://jasper.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=x/H5HHhht00H5hH5pHHHhhHh5hHhH5HhHhhhLh5hhHH5=
是否有另一种类似于 configureWithWrapAuthentication 的方法可用于从 SAS 信息中获取 ServiceBusContract?
Windows Azure SDK 2.0 版本(2013 年 4 月)可以使用共享访问签名 (SAS) 身份验证或通过 Windows Azure Active Directory 访问控制对 Windows Azure 服务总线进行身份验证。但是,我发现C# 中的这个示例对我的情况没有帮助,因为我想在 Java 代码中执行此操作,并且因为我从 Azure 门户获取 SAS 连接。
编辑:
我相信这个问题是主题性的,不应关闭,因为回答了类似的 SO 问题(上面引用了)。该问题已解决,因为方法 configureWithWrapAuthentication 使用的参数已更改,并且没有记录。
使用该答案,我创建了一个服务总线命名空间,并成功地使用从门户获得的默认ACS连接信息以编程方式创建了一个 ServiceBusContract ,如下所示:
String namespace = "jasper";
String issuer = "owner";
String key = "<acs key obtained from portal>";
String serviceBusRootUri = ".servicebus.windows.net";
String wrapRootUri = “-sb.accesscontrol.windows.net/WRAPv0.9”;
Configuration config =
ServiceBusConfiguration.configureWithWrapAuthentication(
namespace,
issuer,
key,
serviceBusRootUri,
wrapRootUri);
ServiceBusContract service = ServiceBusService.create(config);
该门户提供两组连接信息:1) 一组可用于使用 ACS 配置命名空间,以及 2) 标记为SAS(共享访问签名)的备用组(密钥和名称)。
我的问题是如何或是否可以使用门户显示的SAS密钥和端点以编程方式连接到我的服务总线命名空间。上面的代码无法使用 SAS 密钥。这甚至可以使用 SAS 使用 configureWithWrapAuthentication 方法来完成吗?是否有任何其他关于此方法参数的信息可用于完成此操作?
谢谢你