一种是只显示用户拥有的权限对应的菜单,这样,他没有的权限就看不到,无法操作
但我想在用户做提交动作时,在判断一下,我目前的打算是,比如:
某用户具有执行“写入数据”的权限,数据库表里对应此用户权限有个字段记录着“Insert”字符串表示他具有写入权限,然后“写入数据模块”里面定义一个常量就是“Insert”,用户执行提交,进入此模块,用数据库里的“Insert”和常量“Insert”作比较,如果匹配,表示具有权限,这样可以吗?或者有什么更恰当的方法

解决方案 »

  1.   

    如果技术不是很牛的话就用这种方法吧 数据库字段的值为 insert,update,delete,select 
    先把这处值找出来,再分割,有哪个就拥有哪个权限就完了。
      

  2.   

    建几张表,如role,right,user。他们的关系是一个user多个role,一个role多个right,具体怎么做看你自己的咯。这可以是一种权限设置的思路
      

  3.   

    对于这样的要求我觉得你还是用spring的aop进行方法拦截吧
      

  4.   

    这种设计不是太好,可以考虑长整型来做,longValue。
    longValue支持64个1,每个1可以代表一种一种权限,在数据库里可以存储成数值。
      

  5.   

    String sRightValue="11001100...0011"; //0或者1代表是否有这个权限
    BigInteger rightInteger = BigInteger.valueOf(sRightValue);
    //测试第2个权限位是否正确
    boolean bHasRight = rightInteger.testBit(1); ....
    做其他逻辑,楼主可以进行下封装
      

  6.   

    1.早期的设计方案:针对每一个要执行的动作做一个 代码识别,代码识别关联在每一个用户的权限表。其中代码识别可使用 10001 或是 insert,update 这种字符串 作为代码识别。
    2.如果是struts 框架 可使用拦截器(struts 1.x版本 使用过滤器),然后采用 代码识别方案也是可以,但是
    有另一种更规范的作法 就是 在拦截请求的时候 判断客户端请求的路径,然后根据路径去判断权限,这个控制可以细粒度,而且规范性好。但是前提是 设计要谨慎。
    3.采用 spring权限框架,其内在 也是预先拦截请求,然后根据配置路径去过滤。
      

  7.   


    根据路径判断,是不是把namespace+actionName作为权限判断,如果用户权限里拥有此路径,就表示有权限
      

  8.   

    struts的filter里面的interceptor就就能实现你的要求了,action里面的方法完全由你自己来控制,你高兴用户能干什么,他就能干什么。所以建议楼主去学学struts。
      

  9.   

    用filter吧,在filter中做权限判断,决定该用户是否可以调用某action