环境说明:
1 使用软件 IBM portal6.1 + itds6.1;
2 itds使用了自定义的scheme文件,portal仍然使用cn=users下面的用户条目,用户的对象类不再是inetOrgPerson,使用了自定义的exUser。如图所示:
问题描述
应用程序向ldap中增加ldap用户条目后,在portal的管理控台,用户管理模块下面不能显示新增的用户信息。
现象分析
在portal的安装过程中,需要迁移portal用户数据到itds,其中在wkplc.properties文件中会配置用户的检索条件,配置信息如下:
# Entity type PersonAccount
# The search filter that you want to use to search the entity type.
# VMM uses this filter as an addition during search requests in your environment
# The syntax is like a standard LDAP searchfilter like (objectclass=inetorgperson)
# In general this value can be left blank
standalone.ldap.et.personaccount.searchFilter=objectclass=inetOrgPerson
# One or more object classes (separated by ';') for the entity type.
# Please check this value with the objectclass used in your LDAP for type User
standalone.ldap.et.personaccount.objectClasses=inetorgperson
由于这里指定的搜索条件是 objectclass=inetOrgPerson,很明显对于自定义的exUser,在portal检索用户时不会搜索到新增的用户。
问题解决:
方法1 重新迁移ldap,由于操作繁琐,不可取。
方法2 修改配置文件wimconfig.xml中关于ldap部分的配置。
- 配置文件路径:
/opt/IBM/WebSphere/wp_profile/config/cells/porta/wim/config/wimconfig.xml
修改前:
<config:ldapEntityTypes name="PersonAccount" searchFilter="objectclass=inetOrgPerson">
<config:objectClasses>inetorgperson</config:objectClasses>
<config:searchBases>cn=users,o=excellence</config:searchBases>
</config:ldapEntityTypes>
- 修改后:
<config:ldapEntityTypes name="PersonAccount" searchFilter="">
<config:objectClasses>exUser</config:objectClasses>
<config:objectClasses>inetorgperson</config:objectClasses>
<config:searchBases>cn=users,o=excellence</config:searchBases>
</config:ldapEntityTypes>
或者
<config:ldapEntityTypes name="PersonAccount" searchFilter="(&(uid=%v)(|(objectclass=exUser)(objectclass=inetOrgPerson)))">
<config:objectClasses>exUser</config:objectClasses>
<config:objectClasses>inetorgperson</config:objectClasses>
<config:searchBases>cn=users,o=excellence</config:searchBases>
</config:ldapEntityTypes>
- 修改配置后,重启portal服务器,配置生效。