2

我需要找到并选择一个具有以下功能的框架来支持需要广泛的 Java 中的 Web 应用程序开发

具有自定义角色的用户管理,具有定义和管理这些权限的权限。轻松管理支持与 LDAP / ADFS / CAS 功能集成 多租户支持 顶级实体支持以及多租户,例如每个筒仓/租户可以有多个项目

我们选择 GWT 作为客户端开发框架。

我们需要能够根据最终用户的权限/角色(多个)限制对最终用户可见的操作

框架/方法/模式的任何建议都会有所帮助。

我们打算构建两个版本来支持 RDBMS 和无 SQL 数据库。

是否有现成的管理门户可与我的应用程序一起提供?

4

2 回答 2

0

SpringSecurity 和 Apache Shiro 是两个很好的起点,它们与 LDAP / CAS ... 等有很好的集成。

Spring Security 有一个 ACL 模块,我发现它对我的应用程序毫无用处,因为我有一些非常复杂的安全要求。所以我最终推出了我自己的基于 RBAC http://en.wikipedia.org/wiki/Role-based_access_control的授权框架,推出自己的授权框架并不难,但你真的需要决定你的安全范例类型想要使用基于 MAC/DAC/RBAC/ACL/属性的访问控制。

至于 RDBMS 与无 SQL,如果您自己动手,我认为这不应该是一个问题。就我而言,我正在使用 postgres 并将我的所有权限存储在那里。我还需要多租户,因此对于我系统中的每家公司,我都会创建一个授权对象并将其缓存。Authorizer 和它所依赖的所有对象都是真正的不可变对象,并且具有数据结构可以在大多数情况下超快速地回答安全问题 O(1) 最坏情况 O(n)

我发现 google Guava 库非常方便用于缓存和内置的许多不可变数据结构。

Spring Security 没有用于管理权限的内置门户,我不了解 Apache shiro。

于 2012-08-01T08:55:11.383 回答
0

由于我们在这里发生了同样的事情,我建议您使用 Spring Security 框架。您可以将其配置为动态分配角色和资源。

虽然 Spring Security 没有任何管理权限的入口,但您可以通过使用一些简单的过滤器和自定义一些类来拥有它。

于 2012-08-01T09:21:29.757 回答