登录过程中显示“找到多个主体”错误时遵循这些步骤进行故障诊断。
发生类似于以下示例的异常:
00000014 exception 1 com.ibm.ws.wim.registry.util.UniqueIdBridge getUniqueUserId
CWWIM4538E Multiple principals were found for the 'wimadmin' principal name.
00000014 exception 1com.ibm.ws.wim.registry.util.UniqueIdBridge
getUniqueUserIdcom.ibm.websphere.wim.exception.EntityNotFoundException:
CWWIM4538E Multiple principals were found for the 'wimadmin' principal name.
at com.ibm.ws.wim.registry.util.UniqueIdBridge.getUniqueUserId(UniqueIdBridge.java:168)
在此示例中,virtual member manager 跟踪显示两个具有相同主体名称 wimadmin 的实体,这两个实体由 search() API 返回。这会引发异常。
uniqueName="uid=wimadmin,o=defaultWIMFileBasedRealm"
uniqueName="CN=wimadmin,OU=US,DC=COM
因此,在此示例中,为 security.xml 文件中的 primaryAdminId 分配相同名称,如下所示。这将在登录过程中引发“多个主体”异常。以下示例分解为多行,仅用于阐述。
<userRegistries
xmi:type="security:WIMUserRegistry"
xmi:id="WIMUserRegistry_1"
serverId="wimadmin"
serverPassword="{xor}****************"
realm="WIMREALM"
ignoreCase="true"
useRegistryServerId="false"
primaryAdminId="wimadmin"
registryClassName="com.ibm.ws.wim.registry.WIMUserRegistry"/>
Virtual member manager 不允许在领域中多次使用相同用户标识。例如,在不同 LDAP 目录中不能具有相同用户标识,即使是在不同组织结构下。因此,不同存储库中用户标识必须唯一。
考虑具有相同名称 wimadmin 的主管理用户存在于文件存储库和 LDAP 存储库中的情境。使用 WebSphere Application Server 管理控制台并遵循以下步骤从文件存储库移除重复条目。
目前每个存储库具有唯一 primaryAdminID。