Package org.casbin.jcasbin.rbac
Class DomainManager
- java.lang.Object
-
- org.casbin.jcasbin.rbac.DomainManager
-
- All Implemented Interfaces:
RoleManager
public class DomainManager extends java.lang.Object implements RoleManager
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringDEFAULT_DOMAINprivate java.util.function.BiPredicate<java.lang.String,java.lang.String>domainMatchingFuncprivate SyncedLRUCache<java.lang.String,java.lang.Boolean>domainMatchingFuncCacheprivate java.util.function.BiPredicate<java.lang.String,java.lang.String>matchingFuncprivate intmaxHierarchyLevelprivate java.util.Map<java.lang.String,DefaultRoleManager>rmMap
-
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 voidaddDomainMatchingFunc(java.lang.String name, java.util.function.BiPredicate<java.lang.String,java.lang.String> domainMatchingFunc)voidaddLink(java.lang.String name1, java.lang.String name2, java.lang.String... domain)addLink adds the inheritance link between two roles.voidaddMatchingFunc(java.lang.String name, java.util.function.BiPredicate<java.lang.String,java.lang.String> matchingFunc)voidclear()Clear clears all stored data and resets the role manager to the initial state.voiddeleteLink(java.lang.String name1, java.lang.String name2, java.lang.String... domain)deleteLink deletes the inheritance link between two roles.private java.lang.StringdomainName(java.lang.String... domain)private DefaultRoleManagergetRoleManager(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.booleanhasLink(java.lang.String name1, java.lang.String name2, java.lang.String... domain)hasLink determines whether a link exists between two roles.private booleanmatch(java.lang.String str, java.lang.String pattern)voidprintRoles()printRoles prints all the roles to log.private voidrebuild()rebuild clears the map of RoleManagersjava.lang.StringtoString()
-
-
-
Field Detail
-
DEFAULT_DOMAIN
private static final java.lang.String DEFAULT_DOMAIN
- See Also:
- Constant Field Values
-
rmMap
private java.util.Map<java.lang.String,DefaultRoleManager> rmMap
-
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:RoleManagerClear clears all stored data and resets the role manager to the initial state.- Specified by:
clearin interfaceRoleManager
-
addLink
public void addLink(java.lang.String name1, java.lang.String name2, java.lang.String... domain)Description copied from interface:RoleManageraddLink adds the inheritance link between two roles. role: name1 and role: name2. domain is a prefix to the roles.- Specified by:
addLinkin interfaceRoleManager- 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:RoleManagerdeleteLink deletes the inheritance link between two roles. role: name1 and role: name2. domain is a prefix to the roles.- Specified by:
deleteLinkin interfaceRoleManager- 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:RoleManagerhasLink determines whether a link exists between two roles. role: name1 inherits role: name2. domain is a prefix to the roles.- Specified by:
hasLinkin interfaceRoleManager- 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:RoleManagergetRoles gets the roles that a user inherits. domain is a prefix to the roles.- Specified by:
getRolesin interfaceRoleManager- 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:RoleManagergetUsers gets the users that inherits a role.- Specified by:
getUsersin interfaceRoleManager- 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:
toStringin classjava.lang.Object
-
printRoles
public void printRoles()
Description copied from interface:RoleManagerprintRoles prints all the roles to log.- Specified by:
printRolesin interfaceRoleManager
-
-