`
sharp-fcc
  • 浏览: 106064 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

北软实训之二

阅读更多

在北软实训这里,我完成了第一个自己手动完成的模块,权限管理模块,揭开了权限管理的神秘面纱。想想权限管理,既在意料之外,又在情理之中。

1.       首先,在用户登录的时候将ID放入session之中。

由于其他组员使用ajax进行交互的所以把id值返回,document.login.userID.value=result; 将在主界面之中将,userID加入其中。

2.       在页面上应用ognl表达式@com.bjsoft.oa.action.AclAction@hasPermission(#session.userID,'ORG','UPDATE') 调用这个action的静态方法 –hasPermission 这个方法会返回一个bool值,通过对这个bool值的判断,可以决定模块是否应该显示出来。

在action中,由于是静态方法,在调用的这个方法的时候,不会初始化这个类,所以里面有些在spring配置的工具类就不会被实例化,所以我们得手工的到spring的applicationContext中去加载这个类,首先,获取web工程的上下文,WebApplicationContext ctx=WebApplicationContextUtils.getWebApplicationContext(ServletActionContext.getServletContext()) 然后通过ctx.getBean("aclService") 来加载这个需要的类。

3.       然后往下调,调用到dao层,根据用户ID,模块英文缩写,还有相应的操作(CRUD)来判断

a)         通过模块缩写,查找到模块的ID

b)         以用户类型查找权限记录,如果有对这个模块的记录的话,直接返回,如果没有的话,到下一步。

c)         找到用户所对应的角色,通过角色找到角色所拥有的权限,取出对应模块操作的字段,返回是否具有相应的操作。

 

这里有个小技巧,看是否有对应模块的操作,是用一个0~15的数字存在数据库中,取出来之后将他化为4位二进制数,代表了四个操作(CRUD),想要哪一位就跟那一位进行&操作,看得到的数是否为0,有点像linux中查看用户权限的操作,比如ls –l 列出的用户所具有的权限,就是读取系统中的一个文件的文件信息,是一个二进制文件,通过&操作将对应的位取出来,判断是否具有权限。

分享到:
评论

相关推荐

    北软实训jsp(Hibernate框架技术训练)实例

    我自己的实训材料,给大家分享,Hibernate框架技术训练

    毕设&课设&项目&实训-软工课程的简易基础网页设计.zip

    可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,...

    毕设&课设&项目&实训-基于C++实现的一个光栅化软渲染器.zip

    可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,...

    毕设&课设&项目&实训-基于ESP8266制作的软路由监视器.zip

    所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!...

    毕设&课设&项目&实训-软院2017级java课程期末大作业:拉帮结派沙雕音游.zip

    可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,...

    毕设&课设&项目&实训-利用体感摄像头对人体坐姿进行自动检测和矫正的软硬件结合项目。利用摄像头获取得到人体骨架信.zip

    可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,...

    C++实训项目.zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备

    Java实训项目.zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。

    毕设&课设&项目&实训-基于51单片机(STC89C52)和指纹识别模块(AS608)的指纹锁项目的全部软硬件资料.zip

    可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,...

    c++个人实训项目.zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备

    毕设&课设&项目&实训-《软硬结合——从零打造物联网》 基于JS的物联网教程。.zip

    所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!...

    C#实训项目 五子棋游戏.zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备

    C++实训项目(Qt).zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备

    2013年C++实训五子棋项目.zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。

    Python 实训项目 - GUI 网上书城.zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。

    python实训项目-豆瓣电影数据统计分析.zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。

    实训车牌识别系统 ,基于QT 算法是SVM.zip

    软件开发设计:PHP、QT、...云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。

    C语言综合专题学期实训 -- 小区物业管理系统.zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备

    这是一个实训项目,关于C#的学生信息管理系统,.zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备

    web实训(TP+DWZ+PHP+MYSQL)火车订票管理系统.zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。

Global site tag (gtag.js) - Google Analytics