Class ImmutableACL

  • All Implemented Interfaces:
    javax.jcr.security.AccessControlList, javax.jcr.security.AccessControlPolicy, org.apache.jackrabbit.api.security.JackrabbitAccessControlList, org.apache.jackrabbit.api.security.JackrabbitAccessControlPolicy

    public class ImmutableACL
    extends AbstractAccessControlList
    An implementation of the JackrabbitAccessControlList interface that only allows for reading. The write methods throw an AccessControlException.
    • Constructor Detail

      • ImmutableACL

        public ImmutableACL​(@Nullable
                            @Nullable String oakPath,
                            @NotNull
                            @NotNull List<? extends org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry> entries,
                            @NotNull
                            @NotNull RestrictionProvider restrictionProvider,
                            @NotNull
                            @NotNull org.apache.jackrabbit.oak.namepath.NamePathMapper namePathMapper)
        Construct a new ImmutableACL
        Parameters:
        oakPath - The Oak path of this policy or null.
        entries - The access control entries contained in this policy.
        restrictionProvider - The restriction provider.
        namePathMapper - The NamePathMapper used for conversion.
      • ImmutableACL

        public ImmutableACL​(@NotNull
                            @NotNull AbstractAccessControlList accessControlList)
        Construct a new ImmutableACL from the given AbstractAccessControlList.
        Parameters:
        accessControlList - The base list
    • Method Detail

      • removeAccessControlEntry

        public void removeAccessControlEntry​(javax.jcr.security.AccessControlEntry ace)
                                      throws javax.jcr.security.AccessControlException
        Throws:
        javax.jcr.security.AccessControlException
      • addEntry

        public boolean addEntry​(@NotNull
                                @NotNull Principal principal,
                                @NotNull
                                @NotNull javax.jcr.security.Privilege[] privileges,
                                boolean isAllow,
                                @Nullable
                                @Nullable Map<String,​javax.jcr.Value> restrictions)
                         throws javax.jcr.security.AccessControlException
        Specified by:
        addEntry in interface org.apache.jackrabbit.api.security.JackrabbitAccessControlList
        Overrides:
        addEntry in class AbstractAccessControlList
        Throws:
        javax.jcr.security.AccessControlException
      • addEntry

        public boolean addEntry​(@NotNull
                                @NotNull Principal principal,
                                @NotNull
                                @NotNull javax.jcr.security.Privilege[] privileges,
                                boolean isAllow,
                                @Nullable
                                @Nullable Map<String,​javax.jcr.Value> restrictions,
                                @Nullable
                                @Nullable Map<String,​javax.jcr.Value[]> mvRestrictions)
                         throws javax.jcr.security.AccessControlException
        Throws:
        javax.jcr.security.AccessControlException
      • orderBefore

        public void orderBefore​(@NotNull
                                @NotNull javax.jcr.security.AccessControlEntry srcEntry,
                                @Nullable
                                @Nullable javax.jcr.security.AccessControlEntry destEntry)
                         throws javax.jcr.security.AccessControlException
        Throws:
        javax.jcr.security.AccessControlException
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object