使用RDBMS自定义isUserInRole实现

时间:2012-02-25 14:12:43

标签: security java-ee glassfish jacc

我正在使用Glassfish 3.1.1作为我的应用服务器开发Java EE 6应用程序。我正在使用声明式和编程式安全性。我在部署描述符中定义了几个角色,并定义了所有安全约束。

我正在使用JDBCReal,现在我已将其更改为LDAPRealm。所以我想在不依赖LDAP组的情况下管理用户组映射。换句话说,我想对LDAP进行身份验证,但是使用RDBM进行授权,询问当前用户是否属于X组。

我认为有一种方法可以“覆盖”isUserInRole方法。在搜索时我听说过像JACC这样的东西,我发现有一些方法可以将自定义JACC提供程序或类似内容插入到应用程序服务器中,但我找不到任何自定义JACC实现,我不知道如何这样做(或事件,如果它会工作..)

1 个答案:

答案 0 :(得分:0)

根据Working with Realms, Users, Groups, and Roles,领域是“用于识别Web应用程序的有效用户的用户和组的完整数据库”。领域定义了凭证集和角色。

然后,Glassfish还登录模块,这些模块定义了用户的身份验证方式,例如使用用户名/密码,证书等。实际上,只支持用户名/密码链接。

因此,根据我的理解,您需要实现混合LDAP / JDBC领域。以下是sample code的自定义登录模块和领域。您可以看到我的类似answer