此问题与以下问题有关: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 Service Bus进行身份验证。但是,我没有发现this example in 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密钥。甚至可以使用configureWithWrapAuthentication方法使用SAS完成此操作吗?有没有关于此方法的参数的任何其他信息,我可以用来完成此任务?
谢谢
答案 0 :(得分:3)
SAS服务总线可能会在未来的Java SDK中添加。目前,.NET授权和SAS连接字符串仅受.NET客户端库支持。