Не удается получить аутентификацию Swift ContextBuilder с последним OpenStack - PullRequest
0 голосов
/ 26 апреля 2018

Я установил последнюю версию 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 not Domain-Scoped (см. эту ссылку ) и быстрый API это: http://devstack.####.com:#####/v1/ и я использую последнюю версию jclouds API

и я верю, что эта проблема появится во всех ContextBuilders, так что я могу решить эту проблему?

Спасибо

1 Ответ

0 голосов
/ 26 апреля 2018

Чтобы использовать jclouds в новых средах OpenStack (работает Keystone v3), вы должны использовать jclouds> = 2.1.0 и настроить ContextBuilder с соответствующими свойствами Keystone, как подробно описано здесь: https://jclouds.apache.org/blog/2018/01/16/keystone-v3/

...