【发布时间】:2015-02-12 11:38:59
【问题描述】:
使用 openam 12.0.0.0 发现 openam 存在一个问题,使用 api 检索当前登录的组信息
"/json/users/username/?_fields=ismemberof"
场景:
我曾尝试通过从 openam 控制台添加用户属性“ismemberof”来使用此 api。
在我使用 restapi "/json/users/username/?_fields=ismemberof" 检索当前登录用户的组信息之后
返回给我这个:
curl --header"iPlanetDirectoryPro:AQIC5wM2LY4SfczExeheltxgjSN7wrCR5XhfEGF5kj6t6C4.*AAJTSQACMDEAAlNLABQtMzQ0NzM3MDc3MzE1MjMwNjEwOQ..*" http://openam.server:8080/openam/json/users/indrani?_fields=ismemberof
输出:
{"ismemberof":["cn=grp1,ou=groups,o=openam","cn=grp2,ou=groups,o=openam"]}
一段时间后,我从 grp1 中删除了我的用户并从 openam 控制台保存 即,现在当前用户只有一个组,即 grp2
再次使用 curl 命令获取当前用户的组列表:
curl --header"iPlanetDirectoryPro:AQIC5wM2LY4SfczExeheltxgjSN7wrCR5XhfEGF5kj6t6C4.*AAJTSQACMDEAAlNLABQtMzQ0NzM3MDc3MzE1MjMwNjEwOQ..*" http://openam.server:8080/openam/json/users/indrani?_fields=ismemberof
输出:
{"ismemberof":["cn=grp1,ou=groups,o=openam","cn=grp2,ou=groups,o=openam"]}
问题是它对两组的反应相同, 即使当前用户只有一组。即它给出了旧的响应
如果我重新启动 openam 服务器,这个问题就解决了,我会得到预期的结果。
{"ismemberof":["cn=grp2,ou=groups,o=openam"]}
不需要重启 openam server 即可获得原始响应。
当我使用活动目录工作室连接到我的 LDAP 数据存储时,我可以看到针对 ismemberof 的用户更新的值是一个虚拟属性,但是当我点击 curl 响应时,只有旧的缓存一个。
【问题讨论】:
标签: openam