Class DomainManager

  • All Implemented Interfaces:
    RoleManager

    public class DomainManager
    extends java.lang.Object
    implements RoleManager
    • Constructor Summary

      Constructors 
      Constructor Description
      DomainManager​(int maxHierarchyLevel)  
      DomainManager​(int maxHierarchyLevel, java.util.function.BiPredicate<java.lang.String,​java.lang.String> matchingFunc, java.util.function.BiPredicate<java.lang.String,​java.lang.String> domainMatchingFunc)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addDomainMatchingFunc​(java.lang.String name, java.util.function.BiPredicate<java.lang.String,​java.lang.String> domainMatchingFunc)  
      void addLink​(java.lang.String name1, java.lang.String name2, java.lang.String... domain)
      addLink adds the inheritance link between two roles.
      void addMatchingFunc​(java.lang.String name, java.util.function.BiPredicate<java.lang.String,​java.lang.String> matchingFunc)  
      void clear()
      Clear clears all stored data and resets the role manager to the initial state.
      void deleteLink​(java.lang.String name1, java.lang.String name2, java.lang.String... domain)
      deleteLink deletes the inheritance link between two roles.
      private java.lang.String domainName​(java.lang.String... domain)  
      private DefaultRoleManager getRoleManager​(java.lang.String domain, boolean store)  
      java.util.List<java.lang.String> getRoles​(java.lang.String name, java.lang.String... domain)
      getRoles gets the roles that a user inherits.
      java.util.List<java.lang.String> getUsers​(java.lang.String name, java.lang.String... domain)
      getUsers gets the users that inherits a role.
      boolean hasLink​(java.lang.String name1, java.lang.String name2, java.lang.String... domain)
      hasLink determines whether a link exists between two roles.
      private boolean match​(java.lang.String str, java.lang.String pattern)  
      void printRoles()
      printRoles prints all the roles to log.
      private void rebuild()
      rebuild clears the map of RoleManagers
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • maxHierarchyLevel

        private int maxHierarchyLevel
      • matchingFunc

        private java.util.function.BiPredicate<java.lang.String,​java.lang.String> matchingFunc
      • domainMatchingFunc

        private java.util.function.BiPredicate<java.lang.String,​java.lang.String> domainMatchingFunc
      • domainMatchingFuncCache

        private SyncedLRUCache<java.lang.String,​java.lang.Boolean> domainMatchingFuncCache
    • Constructor Detail

      • DomainManager

        public DomainManager​(int maxHierarchyLevel)
      • DomainManager

        public DomainManager​(int maxHierarchyLevel,
                             java.util.function.BiPredicate<java.lang.String,​java.lang.String> matchingFunc,
                             java.util.function.BiPredicate<java.lang.String,​java.lang.String> domainMatchingFunc)
    • Method Detail

      • addMatchingFunc

        public void addMatchingFunc​(java.lang.String name,
                                    java.util.function.BiPredicate<java.lang.String,​java.lang.String> matchingFunc)
      • addDomainMatchingFunc

        public void addDomainMatchingFunc​(java.lang.String name,
                                          java.util.function.BiPredicate<java.lang.String,​java.lang.String> domainMatchingFunc)
      • rebuild

        private void rebuild()
        rebuild clears the map of RoleManagers
      • domainName

        private java.lang.String domainName​(java.lang.String... domain)
      • getRoleManager

        private DefaultRoleManager getRoleManager​(java.lang.String domain,
                                                  boolean store)
      • match

        private boolean match​(java.lang.String str,
                              java.lang.String pattern)
      • clear

        public void clear()
        Description copied from interface: RoleManager
        Clear clears all stored data and resets the role manager to the initial state.
        Specified by:
        clear in interface RoleManager
      • addLink

        public void addLink​(java.lang.String name1,
                            java.lang.String name2,
                            java.lang.String... domain)
        Description copied from interface: RoleManager
        addLink adds the inheritance link between two roles. role: name1 and role: name2. domain is a prefix to the roles.
        Specified by:
        addLink in interface RoleManager
        Parameters:
        name1 - the first role (or user).
        name2 - the second role.
        domain - the domain the roles belong to.
      • deleteLink

        public void deleteLink​(java.lang.String name1,
                               java.lang.String name2,
                               java.lang.String... domain)
        Description copied from interface: RoleManager
        deleteLink deletes the inheritance link between two roles. role: name1 and role: name2. domain is a prefix to the roles.
        Specified by:
        deleteLink in interface RoleManager
        Parameters:
        name1 - the first role (or user).
        name2 - the second role.
        domain - the domain the roles belong to.
      • hasLink

        public boolean hasLink​(java.lang.String name1,
                               java.lang.String name2,
                               java.lang.String... domain)
        Description copied from interface: RoleManager
        hasLink determines whether a link exists between two roles. role: name1 inherits role: name2. domain is a prefix to the roles.
        Specified by:
        hasLink in interface RoleManager
        Parameters:
        name1 - the first role (or a user).
        name2 - the second role.
        domain - the domain the roles belong to.
        Returns:
        whether name1 inherits name2 (name1 has role name2).
      • getRoles

        public java.util.List<java.lang.String> getRoles​(java.lang.String name,
                                                         java.lang.String... domain)
        Description copied from interface: RoleManager
        getRoles gets the roles that a user inherits. domain is a prefix to the roles.
        Specified by:
        getRoles in interface RoleManager
        Parameters:
        name - the user (or a role).
        domain - the domain the roles belong to.
        Returns:
        the roles.
      • getUsers

        public java.util.List<java.lang.String> getUsers​(java.lang.String name,
                                                         java.lang.String... domain)
        Description copied from interface: RoleManager
        getUsers gets the users that inherits a role.
        Specified by:
        getUsers in interface RoleManager
        Parameters:
        name - the role.
        domain - is a prefix to the users (can be used for other purposes).
        Returns:
        the users.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • printRoles

        public void printRoles()
        Description copied from interface: RoleManager
        printRoles prints all the roles to log.
        Specified by:
        printRoles in interface RoleManager