Установить ACL контейнера в Openstack Swift не работает

Поэтому я попытался установить ACL для контейнера в Openstack Swift с использованием Openstack4J, позволив пользователю с именем testeight в проекте администратора читать и писать в контейнере, перечислив его код проекта: идентификатор пользователя в коде. Я предполагал, что другой пользователь в проекте не сможет загрузить или загрузить файл, но когда я попытался войти в систему с учетной записью другого пользователя, все еще возможно загрузить файл. Также, когда я пытался использовать openrc и войти в систему как разрешенный пользователь, он не позволяет загрузить файл.

Вот мой код до сих пор

package openstack;

import java.util.Map;

import org.openstack4j.api.OSClient.OSClientV2;
import org.openstack4j.api.OSClient.OSClientV3;
import org.openstack4j.model.common.Identifier;
import org.openstack4j.model.storage.object.SwiftAccount;
import org.openstack4j.model.storage.object.options.CreateUpdateContainerOptions;
import org.openstack4j.openstack.OSFactory;

public class OpenstackKeystone {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        OSClientV2 os = initKeystone2();
        SwiftAccount acc = os.objectStorage().account().get();

//      os.objectStorage().containers().create("testContainer3");
        os.objectStorage().containers().update("testContainer3", CreateUpdateContainerOptions.create().accessRead("59707fae738347f6aba75d2e30a6b5fb:21d80478bac540faa58441c01baf9fad"));
        os.objectStorage().containers().update("testContainer3", CreateUpdateContainerOptions.create().accessWrite("59707fae738347f6aba75d2e30a6b5fb:21d80478bac540faa58441c01baf9fad"));

        Map<String, String> a =  os.objectStorage().containers().getMetadata("testContainer3");

        for(Map.Entry<String, String> s : a.entrySet()) {
            System.out.println(s.getKey() +" : "+s.getValue());
        }

    }

    public static OSClientV3 initKeystone() {
        OSClientV3 os = OSFactory.builderV3().endpoint("http://192.168.89.162:5000/v3").credentials("admin", "secret", Identifier.byId("default")).scopeToProject(Identifier.byId("b63fe9db4e9741099c88e115b333f9c1"))
                .authenticate();

        return os;


    }
    public static OSClientV2 initKeystone2() {
        OSClientV2 os = OSFactory.builderV2().endpoint("http://192.168.89.122:5000/v2.0").credentials("testfive", "123").tenantName("testuser").authenticate();

        return os;

    }

}

0 ответов

Другие вопросы по тегам