import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class PermissionManager {
private Map<String, Set<String>> userRoles = new HashMap<>();
private Map<String, Set<String>> rolePermissions = new HashMap<>();
public void addUser(String user) {
userRoles.put(user, new HashSet<>());
}
public void addRole(String role) {
rolePermissions.put(role, new HashSet<>());
}
public void assignRoleToUser(String user, String role) {
Set<String> roles = userRoles.get(user);
if (roles != null) {
roles.add(role);
}
}
public void addPermissionToRole(String role, String permission) {
Set<String> permissions = rolePermissions.get(role);
if (permissions != null) {
permissions.add(permission);
}
}
public boolean hasPermission(String user, String permission) {
Set<String> roles = userRoles.get(user);
if (roles == null) {
return false;
}
for (String role : roles) {
Set<String> permissions = rolePermissions.get(role);
if (permissions != null && permissions.contains(permission)) {
return true;
}
}
return false;
}
public static void main(String[] args) {
PermissionManager pm = new PermissionManager();
pm.addUser("Alice");
pm.addUser("Bob");
pm.addRole("admin");
pm.addRole("user");
pm.assignRoleToUser("Alice", "admin");
pm.assignRoleToUser("Bob", "user");
pm.addPermissionToRole("admin", "read");
pm.addPermissionToRole("admin", "write");
pm.addPermissionToRole("user", "read");
System.out.println("Alice has read permission: " + pm.hasPermission("Alice", "read")); // true
System.out.println("Alice has write permission: " + pm.hasPermission("Alice", "write")); // true
System.out.println("Bob has read permission: " + pm.hasPermission("Bob", "read")); // true
System.out.println("Bob has write permission: " + pm.hasPermission("Bob", "write")); // false
}
}
这个示例中,我们创建了一个PermissionManager
类,用于管理用户、角色和权限,我们使用两个HashMap
来存储用户的角色和角色的权限。addUser
和addRole
方法分别用于添加用户和角色。assignRoleToUser
方法用于将角色分配给用户,addPermissionToRole
方法用于将权限添加到角色。hasPermission
方法用于检查用户是否具有特定权限。
以上就是关于“java权限管理源码”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!