【技术/方案摘要】——权限功能的实现(SSH)
2017-02-18 10:22
232 查看
在做OA系统时,发现一个比较重要且比较难的功能——权限管理,相信也是以后工作中比较常用的模块,故以此博客记录。
一、权限模块主要功能:
1、超级用户拥有所有权限功能,普通用户通过超级用户分配对应权限;
2、普通用户如果通过url来访问自身不具备的权限,则无权进入,返回提示页面;
二、权限模块的实现:
1、使用自定义类进行初始化数据,利用Hibernate的Session保存权限实体类的关联关系(上下级),使用自定义类来初始化数据的好处在于,利用了Hibernate的跨数据库特征,而不用针对不同数据库使用不同SQL添加数据);
2、定义监听器(Listener),在服务器初始化时,将所有权限读取并置于application域中,便于前端取值显示;
3、通过判断登录用户(session中)的权限,来显示对应的权限列表,使用<s:if>判断,并且在用户中增加判断权限的方法;
4、通过判断登录用户(session中)的权限,来显示对应的权限超链接,此处由于使用了struts2的自定义标签<s:a> ,暂定最优办法为修改该标签的源码,修改自定义标签库主要关注: doStartTag() 和doEndTag() ,标签类中的逻辑: 经过对用户的判定,来决定该超链接是否显示,return super.doEndTag() 或者 return EVAL_PAGE;
5、拦截每个action请求,判断用户是否有权限访问,定义拦截器(Intercepetor),在拦截器类中判断用户权限,拥有权限则放行;
注意点:在某些请求,例如登录和注销,该权限为公有权限,非特有权限,故需要判断拦截的action,躲开登录action(或判断是否为数据库中既定权限),否则会出现登录/注销无权限的问题;
一、权限模块主要功能:
1、超级用户拥有所有权限功能,普通用户通过超级用户分配对应权限;
2、普通用户如果通过url来访问自身不具备的权限,则无权进入,返回提示页面;
二、权限模块的实现:
1、使用自定义类进行初始化数据,利用Hibernate的Session保存权限实体类的关联关系(上下级),使用自定义类来初始化数据的好处在于,利用了Hibernate的跨数据库特征,而不用针对不同数据库使用不同SQL添加数据);
2、定义监听器(Listener),在服务器初始化时,将所有权限读取并置于application域中,便于前端取值显示;
3、通过判断登录用户(session中)的权限,来显示对应的权限列表,使用<s:if>判断,并且在用户中增加判断权限的方法;
4、通过判断登录用户(session中)的权限,来显示对应的权限超链接,此处由于使用了struts2的自定义标签<s:a> ,暂定最优办法为修改该标签的源码,修改自定义标签库主要关注: doStartTag() 和doEndTag() ,标签类中的逻辑: 经过对用户的判定,来决定该超链接是否显示,return super.doEndTag() 或者 return EVAL_PAGE;
5、拦截每个action请求,判断用户是否有权限访问,定义拦截器(Intercepetor),在拦截器类中判断用户权限,拥有权限则放行;
注意点:在某些请求,例如登录和注销,该权限为公有权限,非特有权限,故需要判断拦截的action,躲开登录action(或判断是否为数据库中既定权限),否则会出现登录/注销无权限的问题;
相关文章推荐
- 【数据存储全方案,详解 持久化技术】实现记住密码功能
- 探究问题:ssh+extjs 权限角色用户功能的实现
- 非root account执行root 权限功能 实现方案
- my35.net:仿兰亭集势产品标签功能方案及技术实现
- ant scp ssh 实现自动depoly 功能
- 让Android程序获得系统的权限,实现关机重启,静默安装等功能
- 【SSH网上商城项目实战08】查询和删除商品类别功能的实现
- 【MFC】利用单一对话框内的分页技术实现向导功能(转)
- 使用tomcat8.0.36实现的websocket技术,实现向单个以及全部用户实时推送消息的功能
- 详解基于vue-router的动态权限控制实现方案
- shiro框架---关于用户登录和权限验证功能的实现步骤(四)
- C# ASP.NET 最常用的通用权限的3个方法例子展示(每个功能一行代码实现)
- shiro框架---关于用户登录和权限验证功能的实现步骤(五)
- 【mfc】利用单一对话框内的分页技术实现向导功能
- 【SSH网上商城项目实战17】购物车基本功能的实现
- 三种方案实现日志记录功能
- 漫谈权限系统之技术策略以及基于RBAC的实现
- 高并发的核心技术-幂等的实现方案(转)
- 求类似豆瓣网类似功能的图书价格对比实现方案或者demon.谢谢。
- 基于开源技术的上网行为管理实现方案