权限系统是自已实现好还是利用容器安全管理实现好

最近在研究tomcat时,了解到servlet容器可以用users /roles 再加上在web.xml中配置访问安全角色控制,以前我都是自已编程来判断的,
倒底用容器来管理好呢,还是自已编码好,请有经验的大侠给些建议,理由是什么

这主要看你是安全权限是处于哪个等级的:系统级、应用级。如果系统的级的安全管理。当然要采用容器本身的安全机制。但是对于应用级的。是自己定制。对于用户而言,他们是操作着你所开发的应用级的安全机制。而系统级的安全机制从广义上讲维护着你的整个中间系统的安全。这是我自己的一点理解。请各位不惜指教。

容器实现好,可重用性强,特别是JAAS,J2EE容器都支持。
这样你不必每套系统再开发一套权限系统,我现在就是这样,我的权限系统已经作为一个组件框架,可以在具体项目中Plug-in!

你好,Banq

前段时间在设计模式中呆了三个星期,多谢你的指点,现在准备开辟第二战场到这里。由于近三年没有再接触J2EE那套东西了,该忘记的也早就忘记了。现在准备重新开始,但我发现Java一日千里,现在压力比较大。

OK,言贵正传, 我的想法与Link的一样,利用容器安全管理实现是系统级的。很难在实际应用中细化到用户。其实这和microsoft 的MTS中的COM组件是一个道理。

不知你上面的贴子是不是只是说系统级的权限?

实际上用户级的权限控制,如果就3层应用的来讲应该是指中间应用服务器对最终用户的读、写企业数据仓库的安全控制。采用组和操作员的两个最基本的单位。实际上和win2000的安全概念是一致的。但是如何保证用户级的权限控制的安全呢?这就要采用容器的安全机制,基于j2ee的安全定义。这就是所谓的系统级安全。实际上这两组相符相承才能真正做到在实际3层架构的应用中安全定制的通用性。目前,我整在一个项目中实施这样的想法。

首先,感谢大侠的指点。
我个人有些赞同link的观点,容器管理安全性应该是系统级安全,我在思考用容器管理安全和具体业务结合时,感觉相当复杂。
如果一个组件完成一个独立的业务,把这个组件部署成某角色可访问,倒是可以简单的控制权限,但是实际的业务往往要求对象级的权限。还是要得到用户名,然后编码实现对象级的权限控制,我自已感到容器管理的权限很难在不同的业务系统中通用。只能达到粗粒度的权限。可往往实际的业务系统都要求细粒度权限。这样一来总感觉容器管理的安全性有一些力不从心,有时就觉得还不如废弃不用。
如果我将二者结合的话,我在组件内部如何取得用户名或角色,用容器提供的API吗?如果这样的话,在不同容器中进行部署时不是一样要改代码吗?不是达不到j2ee的容器无关性吗?

您说您已经实现了权限组件,真的很通用吗?能再详细一点说说吗?我真的好迷惑啊。

具体到实际应用,应用级的用户认证,是单独实现好呢,还是充分利用容器级的安全认证呢,要登陆两次?大侠是如何处理的。