我正在使用 OpenAM 9.5.2 对应用程序上的用户进行身份验证。身份验证运行良好,但我在从最终应用程序中获取用户成员身份时遇到问题。
我在 openam 中定义了组“somegroup”并将我的用户添加到该组中。现在在我的应用程序中,我想测试经过身份验证的用户是否是该组的成员。如果我正在测试它:
request.isUserInRole("somegroup");
我得到false
结果。实际上,我必须测试
request.isUserInRole("id=somegroup,ou=group,dc=opensso,dc=java,dc=net");
为了得到true
回应。
我知道可以在 sso 代理配置中定义一个特权属性映射列表来映射id=somegroup,ou=group,dc=opensso,dc=java,dc=net
,somegroup
但它不适合我的情况,因为角色和组存储在外部数据库中。在 sso agent conf 中定义数据库中的角色和映射并不方便。
所以我的问题是:有没有办法让 openam 使用“短”(即somegroup
)组名而不是它的长通用 id?