Interface MembershipCache

All Known Implementing Classes:
DefaultMembershipCache

public interface MembershipCache
  • Method Details

    • isUserDirectMember

      boolean isUserDirectMember(long directoryId, String userName, String groupName, Supplier<Iterable<String>> groupMembershipSupplier)
      Returns true if the groupName is in the cached list of parents of the user, false if groupName is not in the list.
      Parameters:
      groupMembershipSupplier - a Supplier of group names for the user, if not already present in the cache
      Since:
      7.3
    • isGroupDirectMember

      boolean isGroupDirectMember(long directoryId, String childGroupName, String parentGroupName, Supplier<Iterable<String>> groupMembershipSupplier)
      Returns true if the parentGroupName is in the cached list of parents of the child group, false if parentGroupName is not in the list,.
      Parameters:
      groupMembershipSupplier - a Supplier of parent group names for the group, if not already present in the cache
      Since:
      7.3
    • getGroupsForUser

      List<String> getGroupsForUser(long directoryId, String userName, Supplier<List<String>> valueSupplier)
      Returns the list of groups names which the named user is a member of in the specified directory.
      Parameters:
      valueSupplier - a Supplier of group names for the user, if not already present in the cache
      Since:
      7.3
    • getGroupsForGroup

      @Deprecated List<String> getGroupsForGroup(long directoryId, String groupName)
      Returns the list of groups names which the named group is a member of in the specified directory. or null if there is no cached list.
    • getGroupsForGroup

      List<String> getGroupsForGroup(long directoryId, String groupName, Supplier<List<String>> valueSupplier)
      Returns the list of groups names which the named group is a member of in the specified directory.
      Parameters:
      valueSupplier - a Supplier of the parent groups of the child group, if not already present in the cache.
      Since:
      7.3
    • removeUserGroupMemberships

      void removeUserGroupMemberships(long directoryId, String userName)
      Removes any cached list of user names which are members of the named group in the specified directory. Does nothing if there is no corresponding entry in the cache.
    • removeGroupGroupMemberships

      void removeGroupGroupMemberships(long directoryId, String groupName)
      Removes any cached list of group names which are members of the named group in the specified directory. Does nothing if there is no corresponding entry in the cache.
    • removeAllUserMemberships

      void removeAllUserMemberships(long directoryId, String userName)
      Removes any entries in the cache which contain the userName in the specified directory.

      This can be a slow operation if the cache is large. This is a trade-off of the cache design, which is optimised for fast retrieval of all parent groups of a user or group.

      Removes any GROUPS_FOR_USER entry in this cache if it contains this group.

    • removeAllGroupMemberships

      void removeAllGroupMemberships(long directoryId, String groupName)
      Removes any entries in the cache which contain the groupName in the specified directory.

      This can be a slow operation if the cache is large. This is a trade-off of the cache design, which is optimised for fast retrieval of all parent groups of a user or group.

      Removes any GROUPS_FOR_GROUP entry in this cache for the passed in group. Removes any GROUPS_FOR_USER entry in this cache if it contains this group.

    • removeAllDirectoryMemberships

      void removeAllDirectoryMemberships(long directoryId)
      Removes any entries in the cache which relate to the specified directory.

      This can be a slow operation if the cache is large. This is a trade-off of the cache design, which is optimised for fast retrieval of all parent groups of a user or group.