brofe512 2008-11-27 17:51
浏览 263
已采纳

一个关于权限控制的问题

 

假设,现在有个 保险公司的在线投单系统

 

里面有两个角色:系统管理员、投单员。

 

这两个角色都拥有:查询保单信息的权限(而这个权限可能就是一个显示查询结果的JSP页面)。

 

现在的问题是:

 

           当拥有“系统管理员”角色的用户登录系统后,他可以查看所有系统用户的投单信息。当拥有“投单员”角色的用

 

户登录系统后,他就只能查看他自己的投单信息,其他用户投的单他是无权查看的。

 

           当出现这种需求的时候,大家有什么好的解决方案,希望拿出来和我分享分享。

       

前段时间学习了一下Acegi, 它可以通过对URL、业务方法、领域对象实施安全访问控制。而我觉得当我要实现文章中所描述的权限控制时,难免会出现硬编码或重复的查询功能却根据不通的角色实现多次或结构大体相似的JSP页面也会因角色的不同而重复出现。

  • 写回答

3条回答 默认 最新

  • iteye_19016 2008-11-28 19:12
    关注

    可以使用“过滤器”,比如按你的业务需求可以分为 系统管理员过滤器 投单员过滤器

    所谓的过滤器,其实就是 一条事先生成好的多条件查询语句。你可以单独的把这些 生成好的组合条件语句 存到数据库.

    然后再把这些 “过滤器”赋给 管理员 或 投单员!
    当管理员 或 投单员 登陆的时候,就把这些过滤器迭代出来作为导航。

    还有一点,也就是这写事先生成好的 语句,是以伪代码的形式。

    比如 N用户点同一个导航过滤器 看到的是自己的信息,那么就有这样一种算法
    例:
    select * from tabName id = $s.id$ and ......这个伪代码 $s.id$ s表示可以从 session空间中获得 后面的id 就是key值(用户信息不就放在session中么)这里只是举个例子 伪代码怎么定义根据你自己的需求来定义

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

报告相同问题?

悬赏问题

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