社区
Java EE
帖子详情
SSH 权限管理 我想知道 大概是什么思路!
Azrael99999
2009-08-31 04:22:46
如果 我想 让 一个系统
分 三级 用户 超级管理员
管理员 和 普通 用户
超级管理员能对 管理员 ,普通用户 进行 添删改查
管理员 能对 普通用户 进行 添删改查
用户 只能 查询
大概 就这样
怎么完成这样 的 权限管理 。。。
...全文
2992
16
打赏
收藏
SSH 权限管理 我想知道 大概是什么思路!
如果 我想 让 一个系统 分 三级 用户 超级管理员 管理员 和 普通 用户 超级管理员能对 管理员 ,普通用户 进行 添删改查 管理员 能对 普通用户 进行 添删改查 用户 只能 查询 大概 就这样 怎么完成这样 的 权限管理 。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
smalldear
2011-01-04
打赏
举报
回复
啊 崩溃啊我现在也要做个这样的权限 一点思路都没有 来学习了 看着大家说的思路 感觉也有了点思路但是具体实现却不知道从那里下手- -
曹西
2010-11-15
打赏
举报
回复
用ssh怎么实现权限啊,三张表之间都是多对多吗?
nojave
2009-10-15
打赏
举报
回复
-- Create table
-- 功能表,这里可以放页面
create table SYS_FUNCTION
(
FUNC_ID VARCHAR(20) not null,
FUNC_NAME VARCHAR(20),
FUNC_FATHER_ID VARCHAR(20),
FUNC_DESC VARCHAR(100),
FUNC_REMARK VARCHAR(255),
FUNC_DISABLE_datetime datetime,
FUNC_CREATE_BY VARCHAR(20),
FUNC_CREATE_datetime datetime,
FUNC_UPdatetime_BY VARCHAR(20),
FUNC_UPdatetime_datetime datetime
)
-- Create table
-- 群组功能表,存放群组可以访问的页面
create table SYS_GROUP_FUNC
(
GROUP_ID VARCHAR(20) not null,
FUNC_ID VARCHAR(20) not null,
GROUP_FUNC_REMARK VARCHAR(255),
GROUP_FUNC_CREATE_BY VARCHAR(20),
GROUP_FUNC_CREATE_datetime datetime,
GROUP_FUNC_UPdatetime_BY VARCHAR(20),
GROUP_FUNC_UPdatetime_datetime datetime
)
最后通过sql 语句串起来,可以得到一个用户属于哪个群组,这个群组又有访问哪些页面的权限,这样这个用户访问页面的权限就确定了.
nojave
2009-10-15
打赏
举报
回复
我给几个table你吧,跟imasmallbird的设计是一样的
-- Create table
--用户表,存放用户信息
create table SYS_USR
(
USR_ID VARCHAR(20) not null,
USR_NAME VARCHAR(20),
USR_PWD VARCHAR(30),
USR_PWD_QUESTION VARCHAR(100),
USR_PWD_ANSWER VARCHAR(100),
USR_REMARK VARCHAR(255),
USR_DISABLE_DATE DATEtime,
USR_EMAIL VARCHAR(50) not null,
USR_CREATE_BY VARCHAR(20),
USR_CREATE_DATE DATEtime,
USR_UPDATE_BY VARCHAR(20),
USR_UPDATE_DATE DATEtime
)
-- Create table
--群组表,存放群组信息
create table SYS_GROUP
(
GROUP_ID VARCHAR(20) not null,
GROUP_NAME VARCHAR(50) not null,
GROUP_REMARK VARCHAR(255),
GROUP_CREATE_BY VARCHAR(20),
GROUP_CREATE_datetime datetime,
GROUP_UPdatetime_BY VARCHAR(20),
GROUP_UPdatetime_datetime datetime,
GROUP_DISABLE_datetime datetime
)
-- Create table
--用户群组表,存放哪些用户属于哪个群组
create table SYS_USR_GROUP
(
USR_ID VARCHAR(20) not null,
GROUP_ID VARCHAR(20) not null,
USR_GROUP_REMARK VARCHAR(255),
USR_GROUP_CREATE_BY VARCHAR(20),
USR_GROUPCREATE_datetime datetime,
USR_GROUPUPdatetime_BY VARCHAR(20),
USR_GROUPUPdatetime_datetime datetime
)
Azrael99999
2009-08-31
打赏
举报
回复
[Quote=引用 11 楼 imasmallbird 的回复:]
以这种形式设计,你可以想要有多少种角色就有多少种,你可以控制一个用户可以访问这两个菜单项,而不能访问另外的URL,等等·~
[/Quote]
你比较 大牛
我 可能 数据库 不太好
对你的话 是 理解 了些
但 实际 操作 起来
对我难度 比较大
我还是 自己 再看看 比较好
imasmallbird
2009-08-31
打赏
举报
回复
以这种形式设计,你可以想要有多少种角色就有多少种,你可以控制一个用户可以访问这两个菜单项,而不能访问另外的URL,等等·~
imasmallbird
2009-08-31
打赏
举报
回复
没有实例就是想的,这么说吧,你的目的就是想划分出级别来,而这个级别是在你登陆的时候就体现出来的,那么你登陆的时候肯定是要通过查询来获得你当前用户的权限,这个权限的制定是在什么时候呢?那肯定是有人给予他的。
最高级的超级管理员,没人给他怎么办,只好在系统初始化的时候就在用户表中建立这么一个用户,所以用户表是肯定要有的(其实你之前的登陆也是要用到这张表的),但是怎么来知道这个用户有那些权限呢??
那就一定要有一个关联,这样由于权限是多项的而用户表中对一个用户存放多个权限是十分不好的(各尽其职),于是就产生了角色表,让一个用户与一个角色对应就产生了用户角色表,而让一个角色再与很多权限对应就产生了角色权限表,而对于所有的权限当然也要划分成一个权限表,这样对表的设计就完成了,有了表的结构。
而对于之前的用户有那些权限,那么这些权限一定是要在界面上由超级管理员来设定的,也就是由他来创建具有不同权限的角色,在新建立用户,为用户分配相应的角色,从而使不同的人有不同的权限,而之所以要放在session中,是因为你的每一次点击都要判断是否有权限,与其每一次都去查库还不如第一次放入session中,然后用到的时候再取就可以了。
你只能仔细想一下了,没有实例,没办法展示,我就是想出来的
木木水夕
2009-08-31
打赏
举报
回复
做权限我是这样的思路:
1.建立数据库表,里面有5个字段一个事角色的id号,也就是你说的用户 超级管理员
管理员 和 普通用户这些角色的一个标识。
2.当用户登录的时候,能够获得登录用户的id号,相应的也可以获得它的权限值,比方说是超级管理员。
然后根据不同的权限显示不同的功能,假如他是一般管理员,他没有修改用户资料的权限,就让那个按钮变灰,也就是不可用。
3.应该注意这样一个问题,当某个用户没有登录的时候,他直接输入修改用户资料的网址,如http://localhost:8080/project/modify.jsp 不应该显示该页面的内容,也就是说此时应该显示一个页面,提示信息为你还没有登录,我做这个功能时是用filter过滤的。关于filter的用法,你可以网上搜一下很多。
另外想说明的是,你也可以用spring的aop进行权限控制。如果楼主还有什么不明白的话可以给我发邮件,邮箱:smiling_boy@126.com
Azrael99999
2009-08-31
打赏
举报
回复
[Quote=引用 7 楼 imasmallbird 的回复:]
1、库的设计:建立五张表,权限表、用户表、角色表、角色权限表、用户角色表
2、页面的设计:在页面菜单上的权限管理中包括用户管理(用户的增、删、改、查)与角色管理(角色的增、删、改、查).
在系统开始使用时,肯定要用一个默认的系统用户在页面进行配置(也就是在库中存在一个用户,用户具有“超级管理员”角色,这个角色包含这个系统中的所有权限)。
系统在初始化时权限表中包含你的所有的要控制用户显示的项的一个对应值。
首先,先创建你想要的角色,在页面上可以用JS脚本生成一棵树,这棵树的每一个节点就是通过树节点的复选框可以为当前新增的角色选择你想设定的权限,这样你新建一个角色保存时,就会将这个角色的信息存入角色表中,同时将角色与所选的权限的关系放入角色权限表中。
其次,在用户管理项中,新建一个用户,为这个用户选择一个之前建立的角色,这样就可以将其保存到用户表中,同时将用户与角色的关系放到用户角色表中。
3、逻辑设计:当一个用户登陆时,校验用户的身份的时候,若是该用户存在,可以将这个用户所具有的权限查出来(通过用户与角色、角色与权限的对应关系来处理),放入session中(不要怕往session中入东西,不会太多),这样当用户登陆以后,点击每一个可以判断session中有没有这个点击所对应的权限,若是没有就提示“没有权限”,也可以通过直接对用户所具有的权限,在页面的层次上就将功能屏敝,也就是说用户没有的权限,在页面上根本就不显示。
[/Quote]
非常感谢 你的 回答。。。
你这个 说的 好复杂啊 。。。
我不太懂。。。比较深奥
有没有例子 能看一下啊
imasmallbird
2009-08-31
打赏
举报
回复
1、库的设计:建立五张表,权限表、用户表、角色表、角色权限表、用户角色表
2、页面的设计:在页面菜单上的权限管理中包括用户管理(用户的增、删、改、查)与角色管理(角色的增、删、改、查).
在系统开始使用时,肯定要用一个默认的系统用户在页面进行配置(也就是在库中存在一个用户,用户具有“超级管理员”角色,这个角色包含这个系统中的所有权限)。
系统在初始化时
权限表
中包含你的所有的要控制用户显示的项的一个对应值。
首先,先创建你想要的角色,在页面上可以用JS脚本生成一棵树,这棵树的每一个节点就是通过树节点的复选框可以为当前新增的角色选择你想设定的权限,这样你新建一个角色保存时,就会将这个角色的信息存入
角色表
中,同时将角色与所选的权限的关系放入
角色权限表
中。
其次,在用户管理项中,新建一个用户,为这个用户选择一个之前建立的角色,这样就可以将其保存到
用户表
中,同时将用户与角色的关系放到
用户角色表
中。
3、逻辑设计:当一个用户登陆时,校验用户的身份的时候,若是该用户存在,可以将这个用户所具有的权限查出来(通过用户与角色、角色与权限的对应关系来处理),放入session中(不要怕往session中入东西,不会太多),这样当用户登陆以后,点击每一个可以判断session中有没有这个点击所对应的权限,若是没有就提示“没有权限”,也可以通过直接对用户所具有的权限,在页面的层次上就将功能屏敝,也就是说用户没有的权限,在页面上根本就不显示。
Azrael99999
2009-08-31
打赏
举报
回复
我想 的 是 登陆 进去的 同时 你的 权限 就被确定
然后你去 点 一些 你权限的 地方 那个显示页面就出来
权限不够 这种的 页面
你们说的
我不是很理解
我上网 查的 一些也是 新建一张 权限的 表 然后 吧里面的 权限 给用户
但这样 如何 实现 用 什么技术 ?
网上的 技术 很多 。。。我大多看了 都狠迷茫
我 SSH 其他的 一些 功能基本 都 知道 了 也会点
就差这个权限 管理了
feishare
2009-08-31
打赏
举报
回复
你可以三级用户所拥有的权限也分装进去,对特定的用户根据权限
只让他看到特定的模块功能
jackal1983
2009-08-31
打赏
举报
回复
前个项目的权限是单独做在数据库的一个表中,每次打开页面或者操作的时候都读取一下表里的数据,或者直接在其登陆的时候判断一次
a124691997qqcom
2009-08-31
打赏
举报
回复
当然是用Spring 的ACEGI了
Azrael99999
2009-08-31
打赏
举报
回复
我说下 我的 思路吧
我要 登陆的 时候 通过 你的 账号 判断 你是什么权限
然后 旁边的 操作 如果 权限 不够
就显示 你权限不够
最好 超级管理员 还能 吧 一些 权限
加给一些 用户 什么的
whf496267900
2009-08-31
打赏
举报
回复
在登陆页面中设置一个radio,三级就设置三个radio,radio的值设为权限值,页面跳转时根据radio值的不同跳转到不同的管理页面。应该是这样的思路吧
JAVA上百实例源码以及开源项目
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
java源码包---java 源码 大量 实例
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
java源码包2
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
java源码包3
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
java源码包4
设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...
Java EE
67,517
社区成员
225,877
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章