一种是只显示用户拥有的权限对应的菜单,这样,他没有的权限就看不到,无法操作
但我想在用户做提交动作时,在判断一下,我目前的打算是,比如:
某用户具有执行“写入数据”的权限,数据库表里对应此用户权限有个字段记录着“Insert”字符串表示他具有写入权限,然后“写入数据模块”里面定义一个常量就是“Insert”,用户执行提交,进入此模块,用数据库里的“Insert”和常量“Insert”作比较,如果匹配,表示具有权限,这样可以吗?或者有什么更恰当的方法
但我想在用户做提交动作时,在判断一下,我目前的打算是,比如:
某用户具有执行“写入数据”的权限,数据库表里对应此用户权限有个字段记录着“Insert”字符串表示他具有写入权限,然后“写入数据模块”里面定义一个常量就是“Insert”,用户执行提交,进入此模块,用数据库里的“Insert”和常量“Insert”作比较,如果匹配,表示具有权限,这样可以吗?或者有什么更恰当的方法
解决方案 »
- struts2的启动问题
- webservice 视频 郑成桥最新录制 想看的进
- 用过FusionCharts v3 的朋友帮忙看下
- 有哪位学过ExtJS的高人可以帮我解决一下extjs里关于GridPanel的问题
- getWebApplicationContext().getBean("xxx");
- java类调用问题
- Jboss3.2.6下能发布Hibernate应用 移植Jboss4.0.0下却提示:/hibernate.cfg.xml not found~~在线等
- 使用poi如何如何读写excel的公式,高手帮忙呀,高分回报!!
- resin谁用过,告诉我javabean放在什么地方,是不是要自己建一个文件夹,再resin配置文件里指定,
- 吐血申购:谁有关于用java编写的邮件服务系统的设计文档或原代码????!!!!
- 关于PowerDesigner的使用
- 动态生成页面 保存数据问题! 急急
先把这处值找出来,再分割,有哪个就拥有哪个权限就完了。
longValue支持64个1,每个1可以代表一种一种权限,在数据库里可以存储成数值。
BigInteger rightInteger = BigInteger.valueOf(sRightValue);
//测试第2个权限位是否正确
boolean bHasRight = rightInteger.testBit(1); ....
做其他逻辑,楼主可以进行下封装
2.如果是struts 框架 可使用拦截器(struts 1.x版本 使用过滤器),然后采用 代码识别方案也是可以,但是
有另一种更规范的作法 就是 在拦截请求的时候 判断客户端请求的路径,然后根据路径去判断权限,这个控制可以细粒度,而且规范性好。但是前提是 设计要谨慎。
3.采用 spring权限框架,其内在 也是预先拦截请求,然后根据配置路径去过滤。
根据路径判断,是不是把namespace+actionName作为权限判断,如果用户权限里拥有此路径,就表示有权限