X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2FSingleUserContentRepository.java;h=b9b940f051ac56fbeeb9166cd03f6a851cc0f4b8;hb=ac54bae7278d8653a0ae85749a9da8e3886991c7;hp=09efa72740c2118f0d6251301badcf316e577407;hpb=7bffd729114825a915700bad58be5bd54a3b866a;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/acr/SingleUserContentRepository.java b/org.argeo.cms/src/org/argeo/cms/acr/SingleUserContentRepository.java index 09efa7274..b9b940f05 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/SingleUserContentRepository.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/SingleUserContentRepository.java @@ -4,14 +4,17 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Locale; import java.util.Objects; +import java.util.UUID; import javax.security.auth.Subject; import javax.security.auth.x500.X500Principal; import org.argeo.api.acr.ContentSession; +import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.acr.spi.ProvidedRepository; +import org.argeo.api.uuid.MacAddressUuidFactory; +import org.argeo.api.uuid.UuidFactory; import org.argeo.cms.acr.fs.FsContentProvider; -import org.argeo.util.naming.LdapAttrs; /** * A standalone {@link ProvidedRepository} with a single {@link Subject} (which @@ -21,6 +24,10 @@ public class SingleUserContentRepository extends AbstractContentRepository { private final Subject subject; private final Locale locale; + private UUID uuid; + + private UuidFactory uuidFactory = new MacAddressUuidFactory(); + // the single session private CmsContentSession contentSession; @@ -34,6 +41,9 @@ public class SingleUserContentRepository extends AbstractContentRepository { this.subject = subject; this.locale = locale; + + // TODO use an UUID factory + this.uuid = UUID.randomUUID(); } @Override @@ -45,7 +55,7 @@ public class SingleUserContentRepository extends AbstractContentRepository { initRootContentProvider(null); if (contentSession != null) throw new IllegalStateException("Repository is already started, stop it first."); - contentSession = new CmsContentSession(this, subject, locale); + contentSession = new CmsContentSession(this, uuid, subject, locale, uuidFactory); } @Override @@ -70,13 +80,13 @@ public class SingleUserContentRepository extends AbstractContentRepository { @Override protected CmsContentSession newSystemSession() { - return new CmsContentSession(this, subject, Locale.getDefault()); + return new CmsContentSession(this, uuid, subject, Locale.getDefault(), uuidFactory); } public static void main(String... args) { Path homePath = Paths.get(System.getProperty("user.home")); String username = System.getProperty("user.name"); - X500Principal principal = new X500Principal(LdapAttrs.uid + "=" + username + ",dc=localhost"); + X500Principal principal = new X500Principal(LdapAttr.uid + "=" + username + ",dc=localhost"); Subject subject = new Subject(); subject.getPrincipals().add(principal);