首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

JAVA(ssh2框架)+Flex兑现权限控制方案分析

2012-08-21 
JAVA(ssh2框架)+Flex实现权限控制方案分析?目前项目使用的是Struts2+Hibernate+Spring的架构模式,目前已经

JAVA(ssh2框架)+Flex实现权限控制方案分析

?

目前项目使用的是Struts2+Hibernate+Spring的架构模式,目前已经有一套针对SSH2的权限系统,运行良好。但是项目有了新需求:在目前系统的基础上使用Flex逐步取代JSP,在取代JSP过程中可能存在Flex与JSP并存的情况,所以权限系统需要进行修改。

【SSH2权限系统的实现机制】

权限控制分为页面和后台两块:不同类型用户的帐号分配的访问权限是不同的,用户使用帐号登录系统以后,在页面中只能看到拥有权限的页面,并且如果用户通过浏览器直接输入链接地址,后台会判断该用户是否拥有该权限,如果没有则拒绝用户的请求。比如有个人信息管理和交易管理两个模块,管理员给用户A创建了一个帐号,并且给该帐号分配了可访问“个人信息管理”模块的权限,那么用户A登录系统后就只能看到“个人信息管理”的页面,“交易管理”页面是看不到的。那么用户可能知道访问“个人信息管理”的路径,可以在浏览器中输入请求地址,这时后台spring aop截获请求,然后判断该用户是否拥有该模块的访问权限,如果没有则抛出“没有权限”的错误消息,再通过拦截器控制直接返回到页面。

页面实现权限控制的方式比较简单:登录成功后将该用户拥有的所有权限放入session中,用户访问JSP页面时,从session中取得权限,然后在onload事件中遍历页面标签与session中的权限比对,判断标签是否有效,如果无效就不显示或者设为disable,如果有效则显示给用户。

后台实现权限控制使用了拦截器和AOP等机制:AOP过滤访问权限,无权限则抛出异常;拦截器捕获异常,最后返回相应错误消息到页面。

Spring AOP在用户访问Action某方法之前验证该用户是否拥有访问该方法的权限,如果可访问则放行,否则抛出无权限的自定义异常,随后Struts2拦截器会捕获异常,并且把“无访问权限”的错误消息发送的页面。

?

remote.addEventListener(FaultEvent.FAULT,error_);private function error_(event:FaultEvent):void{Alert.show(event.toString());}
?优劣分析:? ? 方案一:[优]可以沿用现今的SSH2权限系统?? [缺]Action需要重新定制,运行效率相对慢。

?

? ? 方案二:[优]运行效率快??? [缺]如何与struts2混用(即有的使用jsp、有的使用flex)可能存在jsp请求后台时出现超过两次的权限校验的情况(两套AOP),业务层代码可能需要重构。 1 楼 xqchuan 2012-06-26   [/b]塔顶载[b]

热点排行