Java 无法使用最新的OpenStack获取身份验证Swift ContextBuilder
我已经安装了最新的OpenStack,我正在使用Java和jclouds SDK与OpenStack Swift进行交互,在我使用的OpenStack环境中,identity API版本为/identity/v3/,Swift API版本为v1/,我的代码是:Java 无法使用最新的OpenStack获取身份验证Swift ContextBuilder,java,openstack-swift,jclouds,Java,Openstack Swift,Jclouds,我已经安装了最新的OpenStack,我正在使用Java和jclouds SDK与OpenStack Swift进行交互,在我使用的OpenStack环境中,identity API版本为/identity/v3/,Swift API版本为v1/,我的代码是: blobContext = ContextBuilder.newBuilder(PROVIDER) .credentials(username, apiKey) .endpoint(EndPoint)
blobContext = ContextBuilder.newBuilder(PROVIDER)
.credentials(username, apiKey)
.endpoint(EndPoint)
.overrides(multipartProperties)
//.buildApi(RegionScopedBlobStoreContext.class);
.buildView(RegionScopedBlobStoreContext.class);
String blobRegion = blobContext.getConfiguredRegions().iterator().next();
因此,在行字符串blobRegion=blobContext.getConfiguredRegions.iterator.next;我得到一个例外:
request: POST http://devstack.####.com:#####/v1/tokens HTTP/1.1 [Sensitive data in payload, use jclouds.wire.log.sensitive override to enable logging this data.] failed with response: HTTP/1.1 401 Unauthorized
这段代码在过去很有用,但在过去我没有使用最新的OpenStack,重要的是我的标识服务是项目范围的,而不是域范围的
而swift API是:http://devstack..com:/v1/
我正在使用最新的jcloudsapi
我相信这个问题会出现在所有的ContextBuilder中,那么我能解决这个问题吗
感谢要在运行Keystone v3的新OpenStack环境中使用jclouds,您必须使用jclouds>=2.1.0,并使用适当的Keystone属性配置ContextBuilder,如下所述: