「java模块权限」java用户权限框架
今天给各位分享java模块权限的知识,其中也会对java用户权限框架进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
怎样用java 管理SVN用户和权限
其实最简单的方法就是使用角色和用户两级管理
首先建立角色:分为管理员和普通用户等,管理员用来管理系统的后台,而普通用户就是注册用户,可以实现浏览商品、管理个人信息等操作!
其次为用户分配角色,实现分配使用系统模块的权限。
角色权限的分配通过一张数据库权限表来实现。把系统的功能模块的使用权限设置为表的字段,然后为每个角色分配权限,1代表有权限,0代表无权限。可以设置一个辅助字段为是否登录,通过该字段判断用户是否可以修改个人信息。
java如何做权限管理
首先介绍下思路:
1、用户表 user;
2、角色表 role;
3、菜单 menu;
4、角色菜单权限表 role_menu;
5、用户菜单权限表 user_menu;
如图:
根据用户角色取出该角色所有权限,并对用户进行权限分配;注意菜单的按钮(新增、删除、修改)权限是放在中间表(user_menu)中的;
1、新增用户时,是要根据用户角色进行分配权限的 一定记得批量添加;批量、批量、批量,重要的事情说三遍,不要查询角色权限,然后for循环,这样效率太低了;
SQL如下:
INSERT INTO sys_user_menu(UserId, MenuId, DelPower, UpdPower, InsPower, ViewPower)
SELECT #{userId} UserId, MenuId, 1 DelPower, 1 UpdPower, 1 InsPower, 1 ViewPower FROM sys_role_menu WHERE RoelId = #{roleId}
updPower 默认都是有的 所以都是1,这样根据角色查询出权限直接添加,响应时间大大提升;
2、修改用户角色也要记得重新分配用户权限哦!这个不能忘,可以用上面的方法;
业务方法:
如果角色没有修改,是不用重新分配权限的,所有userRole 重置为 null,如果角色修改则删除原权限,重新进行分配;
3、最后要优化的就是根据用户查询权限的时候啦,我最开始是这样做的,查询角色权限,用户权限,返回到前端,前端进行处理;结果就是很卡 基本上要三到四秒,
解决方案,一步到位;一个查询返回全部数据。
如下SQL:
SELECT menu.MenuId id, ParentId pid, MenuName text,
(SELECT COUNT(1) FROM sys_user_menu WHERE UserId = #{userId} AND MenuId = sm.MenuId) isShow,
(SELECT CONCAT(
(CASE WHEN smenu.InsPower = 1 THEN 1 ELSE 0 END), ',',
(CASE WHEN smenu.DelPower = 1 THEN 1 ELSE 0 END), ',',
(CASE WHEN smenu.UpdPower = 1 THEN 1 ELSE 0 END), ',',
(CASE WHEN smenu.ViewPower = 1 THEN 1 ELSE 0 END))
FROM sys_user_menu smenu WHERE smenu.UserId = #{userId}
AND smenu.MenuId = sm.MenuId) MenuInfo
FROM sys_role_menu sm INNER JOIN sys_menu menu on sm.MenuId = menu.MenuId
WHERE RoelId = #{roleId}
首先根据 角色ID查询出权限,然后子查询用户是否有该权限,有返回1 木用返回 0;
最后按钮权限 我是直接拼接成字符串,分别对应 添加、删除、修改、查看 1 有该按钮 0 没有该按钮;
优化后 不管是添加、修改用户,加载用户权限都能控制在 1~2 秒;
java默认权限相当于什么权限
Java中默认权限为包权限。若是类声明为默认权限,则同一个包下的类都可以访问到该类,并可以实例化该类(当然如果这个类不具有实例化的能力除外,比如该类没有提供public的构造函数);若是成员变量或成员方法声明为默认权限,则其是包级可见,同一个包内的类可以访问到这个属性或方法。
Java权限有四个,分别为public,protected,默认,private,其开放程度依次降低
public可供所有类访问
private只能类本身内部的方法可以访问
protected继承可见
java中怎么设置文件权限?
import java.io.IOException;/××只能给当前用户赋予对该文件的权限,调用createNewFile()方法默认的权限是644.\x0d\x0a×/public class FilePermission{public static void main( String[] args ){try {File file = new File("/home/test3.txt");\x0d\x0aif (file.createNewFile()){\x0d\x0aSystem.out.println("File is created!");\x0d\x0a//Runtime.getRuntime().exec("chmod 777 /home/test3.txt");\x0d\x0afile.setExecutable(true);//设置可执行权限\x0d\x0afile.setReadable(true);//设置可读权限\x0d\x0afile.setWritable(true);//设置可写权限\x0d\x0aSystem.out.println("is execute allow : " + file.canExecute());\x0d\x0aSystem.out.println("is read allow : " + file.canRead());\x0d\x0aSystem.out.println("is write allow : " + file.canWrite());}else{System.out.println("File already exists.");}
java 中怎么做权限系统的控制和分配?
下面是一个java的web权限管理模块的应用与实现。
先介绍数据模型和应用界面,后继对实现细节做选择性阐述。
数据表关系如下:
该图标明了登陆用户、角色、部门(机构)、用户组、角色和模块功能之间的关系。为方便起见,所有表都只保留必要字段。
在本系统设计中,如下概念有着相对特殊的含义。
一、用户(user): 系统的使用者。
二、部门(org):体现了用户的行政关系,
三、组(group) :是某相同职能的用户的集合,可以和用户一样与角色产生关联。设置组的目的是为了方便用户的角色分配,减少用户与角色的直接对应关系。用户的角色可以是其组角色和其直接分配的角色之合集。限于作者的时间和精力,组功能在该系统中没有具体的实现。
四、角色(role):角色对应着某些功能(function)的集合,被分配一个角色意味着有权执行这些功能。角色表中的字段"functions"记录相关的功能id,id之间用逗号隔开。
五、功能(function):系统的一个或者多个执行准入。
java模块权限的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java用户权限框架、java模块权限的信息别忘了在本站进行查找喔。
发布于:2022-11-28,除非注明,否则均为
原创文章,转载请注明出处。