无法使用最新的 OpenStack 验证 Swift ContextBuilder
Can't Get Authenticate Swift ContextBuilder with Latest OpenStack
我已经安装了最新的 OpenStack,我正在使用 Java 和 jclouds SDK 与 OpenStack 交互 Swift,在我使用的 OpenStack 环境中,身份 API版本是/identity/v3/
,Swift API版本是v1/
,我的代码是:
blobContext = ContextBuilder.newBuilder(PROVIDER)
.credentials(username, apiKey)
.endpoint(EndPoint)
.overrides(multipartProperties)
//.buildApi(RegionScopedBlobStoreContext.class);
.buildView(RegionScopedBlobStoreContext.class);
String blobRegion = blobContext.getConfiguredRegions().iterator().next();
所以在行 String 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,重要的是我的身份服务 Project-scoped 不是域范围(参考this link)
swift API 是:http://devstack.####.com:#####/v1/
我正在使用最新的 jclouds API
而且我相信这个问题会出现在所有的ContextBuilder中,所以我有没有办法解决这个问题?
谢谢
要针对新的 OpenStack 环境(运行 Keystone v3)使用 jclouds,您必须使用 jclouds >= 2.1.0 并使用适当的 Keystone 属性配置 ContextBuilder,如下所述:
https://jclouds.apache.org/blog/2018/01/16/keystone-v3/
我已经安装了最新的 OpenStack,我正在使用 Java 和 jclouds SDK 与 OpenStack 交互 Swift,在我使用的 OpenStack 环境中,身份 API版本是/identity/v3/
,Swift API版本是v1/
,我的代码是:
blobContext = ContextBuilder.newBuilder(PROVIDER)
.credentials(username, apiKey)
.endpoint(EndPoint)
.overrides(multipartProperties)
//.buildApi(RegionScopedBlobStoreContext.class);
.buildView(RegionScopedBlobStoreContext.class);
String blobRegion = blobContext.getConfiguredRegions().iterator().next();
所以在行 String 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,重要的是我的身份服务 Project-scoped 不是域范围(参考this link)
swift API 是:http://devstack.####.com:#####/v1/
我正在使用最新的 jclouds API
而且我相信这个问题会出现在所有的ContextBuilder中,所以我有没有办法解决这个问题?
谢谢
要针对新的 OpenStack 环境(运行 Keystone v3)使用 jclouds,您必须使用 jclouds >= 2.1.0 并使用适当的 Keystone 属性配置 ContextBuilder,如下所述: https://jclouds.apache.org/blog/2018/01/16/keystone-v3/