escout

代码、心情

常用链接

统计

SOA相关

我参与的团队

最新评论

#

jad--java反编译

下午上网的时候看到jad,以前曾经看到过这个,据说是速度非常快的java反编译器,这一段正好在用一个代码生成插件Modelstry,有一个文件命名部分不符合java规范的bug,但没有代码也不好改,一直想自己修改一下,就下载来看看咯
   花了一些时间,执行 jad -o -r -sjava -dsrc Modelstry/**/*.class,反编译了modelstry.jar,再自己重建成eclipse的工程,呵呵,反编译的效果真的超强的, 只有一类几乎一样的错误,但是很容易就改好了,再重新打包成jar,放到plugin目录下,经过几次调试,哈哈,原来郁闷了我很久的变量命名问题,终于自己动手搞定了,庆祝一下;-P

posted @ 2006-05-03 21:48 绿色使者、绿色心情 阅读(1625) | 评论 (2)编辑 收藏

Accelerate SOA:In action!

在四月的最后一天,网上报名好了,我们的Accelerate SOA今后开始全力运作啦!

soa in action,our accelerate SOA!!

posted @ 2006-04-30 21:48 绿色使者、绿色心情 阅读(219) | 评论 (0)编辑 收藏

基于RBAC的权限模型

权限模型

把权限模型划分为页面访问控制权限和数据权限 ( 商业逻辑权限 ) 。其中,页面访问控制权限主要在于控制页面是否可以被访问,比如,管理员可以访问权限设置页面。数据权限主要是指是否有操作某个数据的权限,比如说组织机构中的部分问题,一个部门应该只看到本部门的数据,这就是数据权限,这个应该在业务逻辑中控制,而不是页面中。

本权限模型专注于页面访问控制,不涉及数据操作权限。使用用户、角色、资源和操作来控制实际的页面访问。同时,区别于一般的页面权限模型,本模型采用细粒度的权限控制,可以控制到页面的具体操作,很不是整个页面不加区分。所以,这样就可以在一个页面放置多个操作,方便于用户,同时又不失安全性。

考虑到权限在实际中很少变动,使用数据库的冗余设计,还有数据缓存等来提高效率。

 

用户: User

       Id name

用户角色表( 1 对多):

       Id userID roleID

角色 : Role

       Id name description defaultPage (系统初始化时,使用的登陆页?)

权限 (Role-Resource-Operation) Authority

       Id role resource resourceURL (为效率考虑采用的冗余,等同 Resource 中的 url ,在实际验证中将使用该 url 来验证)、 operationID operationName (为效率考虑,采用冗余,等同 Operation 中的 name ,实际验证中使用该操作名称来做验证)

资源: Resource

       Id name description url

操作: Operation

       Id name( 一般应改为英文,对应方法的名字 ) description

 

BaseAction 中应该有一个 getMethodAuthMap (),得到方法和可用操作的映射。如果映射中找不到,则直接使用该方法名当作操作名称。如果方法映射找到了,但是为空,这意味着该方法对于任何用户都是可以访问的,不要求验证。子类可以继承和覆盖该方法,来实现特殊的权限逻辑。

 

权限操作应该允许复制已有的权限来生成新的权限。

在前端控制器中设置已有的对于某个资源的操作,放到 hashtable 中,比如 auth 。对于页面,使用表达式语言 EL 来限制实际的逻辑,比如如下要求对于当前页面要有 delete 权限:

       <c:if test=”auth.delete”>

       </c:if>

同时,在整体页面中,使用 struts dispathAction 来做分发, url 形如 url?method=delete 在执行该方法之前,首先检查当前页面的这个权限 delete ,如果可以,则导向到正确的页面,否则导向到 accessDenied.do 页面(注意,该页面比较特殊,对于任何用户都应该是可以访问的,也就是前面的 getMethodAuthMap 返回为 NULL

 

posted @ 2006-04-30 17:27 绿色使者、绿色心情 阅读(997) | 评论 (0)编辑 收藏

JAAS的配置

   以前一直没有弄明白 jaas 如何配置,看了 jaoso 这个论坛的源码,还有这个http://www.linuxaid.com.cn/forum/showdoc.jsp?l=1&i=53549上面的代码等等,以为一定要在 jre_home /lib/security / java.security 文件中配置,就很疑惑这样不是很受限制么,刚刚看了 JAAS: 灵活的 Java 安全机制 总算搞清楚了,可以通过配置系统属性 java.security.auth.login.config 来指定 jaas 模块的配置文件


   配置文件可以被任意命名,并且可以被放在任何位置。
JAAS 框架通过使用 java.securty.auth.long.config 属性来确定配置文件的位置。例如当你的应用程序是 JaasTest ,配置文件是当前目录下的 jaas.config ,你需要在命令行中输入: java -Djava.security.auth.login.config=jass.config JavaTest

   不过这样还是比较麻烦,看jetspeed2源码的时候,发现比较好的一个方法
System.setProperty("java.security.auth.login.config", loginConfigUrl.toString());
   这样,配置文件就可以直接在程序中指定了,当移植到部署环境中,就不用再自己配置一遍了



posted @ 2006-04-30 16:59 绿色使者、绿色心情 阅读(533) | 评论 (0)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4