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.String
DEFAULT_DOMAIN
private java.util.function.BiPredicate<java.lang.String,java.lang.String>
domainMatchingFunc
private SyncedLRUCache<java.lang.String,java.lang.Boolean>
domainMatchingFuncCache
private java.util.function.BiPredicate<java.lang.String,java.lang.String>
matchingFunc
private int
maxHierarchyLevel
private 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 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 RoleManagersjava.lang.String
toString()
-
-
-
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:RoleManager
Clear clears all stored data and resets the role manager to the initial state.- Specified by:
clear
in interfaceRoleManager
-
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 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: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 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: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 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:RoleManager
getRoles gets the roles that a user inherits. domain is a prefix to the roles.- Specified by:
getRoles
in 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:RoleManager
getUsers gets the users that inherits a role.- Specified by:
getUsers
in 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:
toString
in classjava.lang.Object
-
printRoles
public void printRoles()
Description copied from interface:RoleManager
printRoles prints all the roles to log.- Specified by:
printRoles
in interfaceRoleManager
-
-