木叶下521 2013-08-16 23:23
浏览 867
已采纳

JSP用户权限和界面显示

我设计有三个表:User、Role、Action和两张中间表User_Role 、Role_Action。User表存放用户信息;Role表存放不同类型用户,比如:超级管理员,一般用户等;Action表存放操作,不如:增加一般用户,删除一般用户等。User_Role 三个字段:id,user_id,Role_id;Role_Action也是三个字段:id,role_id,action_id。

现在问题是:我想要根据不同用户类型显示不同页面,最重要的地方是,根据不同类型用户页面显示不同元素,比如按钮的显示与隐藏,菜单项的显示与隐藏。

在网上查询之后,有些网友说用过滤器,我对这个一点也不熟悉;也有些说用HTML的display:none,我觉得这个不安全。有没有比较完美的方式,各位大侠给指点指点,有源码、实例什么的最好啦!

  • 写回答

7条回答 默认 最新

  • jinbingchuan 2013-08-17 13:51
    关注

    其实你的权限是有问题的,不应该显示或者是隐藏,而是根据每个人得角色去数据库查询这个人到底有多少操作,不应该把所有的都查询出来进行隐藏。
    一般是在用户登录的时候把这些操作放到session里,在前台展示这个用户的所有操作,但是为了安全考虑,比如,某个人可能没有某个操作权限,而恰好另外一个人有这个操作权限,这个时候若是他看到那个人得地址直接在浏览器里输入或者是其他方式进行访问服务器,若是没有进行限制的话,那他就可以成功操作了。
    那我们有什么办法可以阻止呢?最简单就是过滤器filter,这就是为什么你看到别人会提使用过滤器,因为它可以对每次提交的操作进行拦截,若是在过滤器里判断有权限则放行,若是不符合,则会跳转到某个页面告诉用户你没有这个操作权限

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器