面试被问到权限问题,不知道回答得对不对

qaz114158 2010-04-23 02:34:53
先说明我开发经验不是很足,只做过几个小项目,前两天又去面试,见面啥都不说先给了4张卷子,看了下还好都会,一个多

小时做完卷子让我在那等了10分钟就跟我谈。

其中谈到一个问题是:问我怎么进行权限控制的,就是比如说不同权限的用户进入到这个系统的同一个页面看到的功能按钮应该是不一样的,问我是怎么做的。
我没做过那种权限控制的东西,于是我回答:让每个用户有一个不同的权限字段,登录系统的时候在session里放入该权限字段,然后在表示层对功能按钮或输入域进行session验证,让这些功能对不同权限用户显示可见或不可见。

我想知道我这样回答到底行不行?
...全文
549 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mars_Ma_OK 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qinfeng891030 的回复:]
权限控制对应的有四张表:用户表,权限表,角色表,然后就是权限与角色关联表。
你要理解表和表之间的对应关系!
[/Quote]

支持!!!
abo1234567 2010-04-28
  • 打赏
  • 举报
回复
设计四张表,权限表,角色表,用户表,角色权限 表。其中用户表和角色表有外键关联(多对多),角色和权限也是(多对多)外键关联。角色和权限表式是一对一关系。将登入用户信息获取相应的URL,页面中可以通过读取表中的URL字段来显示菜单。
ugxxx 2010-04-27
  • 打赏
  • 举报
回复
或者 可以自定義一個 jstl 標籤.. 專幹 "同一个页面看到的功能按钮应该是不一样的" .. 至於 如何實現就是 ClassTag 裏面的問題了..
yearnqiao 2010-04-27
  • 打赏
  • 举报
回复
我做过这种控制到具体的增删改操作的权限
不过方法有点复杂,
主要使用int的二进制数据的后面四位代表CRUD四种操作
然后进行授权或控制
方法是用的这种,不过具体实现有点麻烦

并且在用户 角色 模块 还有用户和角色的中间表的基础上新添加了一个
控制访问列表ACl表
xiaorubj001 2010-04-27
  • 打赏
  • 举报
回复
权限属于基础框架一部分,在db中控制比较好
SambaGao 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 guliangliang 的回复:]

两个表就可以了啊,用户表,权限表
在用户表中添加外键关系,多对一的关系。
前台通过标签控制,这样比较容易实现。
你的思路大致是对的啊,没问题,按照你的思路也可以实现的啊
不管怎么样,能实现,就是最终目的啊
呵呵
[/Quote]

这是一个通用的办法。。
  • 打赏
  • 举报
回复
看看Spring Security3的例子
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 quxiaoyong 的回复:]
I think you can use JSTL to do it.

just like

Java code

<c:choose>
<c:when test="${user.role.name=="general"}"
General role user's function codes..
</c:when>
<c:when test="...">
.......
……
[/Quote]

在页面上判断太肤浅了。。。
skywillow 2010-04-27
  • 打赏
  • 举报
回复
简单来说就是一个RBAC
用自定义标签控制用户所能看到的按钮和信息
我是小烨 2010-04-26
  • 打赏
  • 举报
回复
楼上经典,如果加个权限,那不是要加班N个小时。。。
欢乐极客 2010-04-26
  • 打赏
  • 举报
回复
I think you can use JSTL to do it.

just like

<c:choose>
<c:when test="${user.role.name=="general"}"
General role user's function codes..
</c:when>
<c:when test="...">
.......
</c:when>
<c:otherwise>
.....
</c:otherwise>
</c:choose>


艾瑞儿 2010-04-26
  • 打赏
  • 举报
回复
两个表就可以了啊,用户表,权限表
在用户表中添加外键关系,多对一的关系。
前台通过标签控制,这样比较容易实现。
你的思路大致是对的啊,没问题,按照你的思路也可以实现的啊
不管怎么样,能实现,就是最终目的啊
呵呵
shore1111 2010-04-26
  • 打赏
  • 举报
回复
LZ说得有道理,最好是通过表示层的标签控制,通过控制层在页面设计上会比较麻烦
cn_hym 2010-04-23
  • 打赏
  • 举报
回复
用户表、角色表、菜单表
用户角色关系表
角色菜单关系表
javaee_ssh 2010-04-23
  • 打赏
  • 举报
回复
建议你去学学SpirngSide中(Spring Security)的权限验证,在SpringSide的网站上有样例和大量文档
http://springside.org.cn/
cgcavalier518 2010-04-23
  • 打赏
  • 举报
回复
从表里面取出该用户的权限字段,放入SESSION,页面加载的时候,通过CSS进行控制显示与否就可以了吧
Josh 2010-04-23
  • 打赏
  • 举报
回复
去看下jaas
keeya0416 2010-04-23
  • 打赏
  • 举报
回复
在表示层验证么
控制层验证是不是比较好

可能我想的不深
qinfeng891030 2010-04-23
  • 打赏
  • 举报
回复
权限控制对应的有四张表:用户表,权限表,角色表,然后就是权限与角色关联表。
你要理解表和表之间的对应关系!
reui 2010-04-23
  • 打赏
  • 举报
回复
用户,角色,权限,菜单
思路应该是这样的吧
之前好像看过类似的文章。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧