当前位置: 首页 > 知识库问答 >
问题:

使用SAS通过Java访问Azure Service Bus

仰翰采
2023-03-14

这个问题与:在java中使用Azure Service Bus相关-之前的一个问题涉及使用ACS连接信息获取ServiceBusContract。

我的问题不同,因为我试图使用从Azure门户获取的SAS连接信息来实现这一点,例如类似于以下内容的SAS信息:

名称RootManageSharedAccessKey

CONNECTION STRING Endpoint=sb://jasper.servicebus.windows.net/; SharedAccessKeyName=RootManageSharedAccessKey; SharedAccessKey=x/H5HHhht00H5hH5pHHHhhHh5hH5HhHhHHHHH5=

是否有另一种类似于configureWithWrapAuthentication的方法可用于从SAS信息获取ServiceBusContract?

Windows Azure SDK 2.0版本(2013年4月)可以使用共享访问签名(SAS)身份验证或通过Windows Azure Active Directory访问控制对Windows Azure服务总线进行身份验证。然而,我发现C语言中的这个示例对我的情况没有帮助,因为我想用Java代码来实现这一点,并且因为我从Azure门户获取SAS连接。

编辑:

我认为这个问题是关于主题的,不应该因为回答了一个类似的SO问题(如上所述)而关闭该问题得以解决,因为configureWithWrapAuthentication方法使用的参数已更改,并且没有记录在案。

使用该答案,我创建了一个service bus命名空间,并成功地使用从门户获得的默认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键和endpoint以编程方式连接到我的service bus命名空间。上述代码无法使用SAS密钥。甚至可以使用configureWithWrapAuthentication方法对SAS执行此操作吗?是否有其他关于此方法参数的信息可用于完成此操作?

谢谢你们

共有1个答案

姚海
2023-03-14

SAS for service bus可能会添加到未来的Java SDK中。此时,SAS授权和SAS连接字符串仅受支持。NET客户端库。

 类似资料:
  • 问题内容: 我正在寻找一种在Java App(使用JDBC)中打开Access MDB文件的方法。 快速的Google搜索建议我为此需要JDBC-ODBC Bridge。 这是否意味着我需要配置要在其上运行应用程序的每个系统,以便为要打开的MDB提供ODBC DSN? 还有一个问题(因为我以前从未使用过ODBC):通信是通过某种套接字(以客户机/服务器方式)还是通过方法/函数调用(例如嵌入Derb

  • 我对谷歌应用编程接口非常陌生,我有麻烦了。我留档谷歌照片APIJava,然后我在谷歌API控制台创建OAuth凭据并下载它(credentials.json文件)。之后,我试图访问谷歌照片。这里是代码从留档: 但是我不明白如何创建凭据对象,将其传递给FixedCreentialsProvider.create()方法 你能给我一些解释/链接吗?

  • 要 动态获取一个对象方法的信息,首先需要通过下列方法之一创建一个 类型的对象或者数组。 getMethods() getMethods(String name,Class<?> …parameterTypes) getDeclaredMethods() getDeclaredMethods(String name,Class<?>...parameterTypes) 如果是访问指定的构造方法,需要

  • 如果我在端口80上的有一个mongo。我不能打开这里的任何端口。我如何用Java连接到它? 这不起作用: 30sec后的例外情况: 在server.com/dbname上连接时出错:等待与ReadPreferenceServerSelector{ReadPreference=Primary}匹配得服务器时,在30000 ms后超时.群集状态的客户端视图为{type=unknown,servers=

  • 问题内容: 我有一个页面,该页面向中的URL 发出JSONP ajax请求(使用jQuery的功能)。我以为(阅读:假定),其中的资源可以在服务器端访问该域中设置的任何cookie,但事实并非如此? 专门执行ajax调用以访问特定的cookie,进行一些数据操作并返回以cookie值为键的丰富信息集。原始域无法直接访问cookie值,因此我认为ajax请求将保持我需要的状态。 我会忽略关于Cook

  • 问题内容: 这是一个测试类: 这是我的输出: 我缺少通过反射使注释可见的什么? 我是否仅需要检查它们的存在就需要注释处理器? 问题答案: 为了在运行时访问注释,它需要具有运行时的保留策略。 否则,注释将被丢弃,并且JVM无法识别它们。 有关更多信息,请参见此处。