Siga estas etapas para resolver o problema quando o erro “diversos principais foram localizados” for exibido durante o login.
Uma exceção semelhante ao seguinte exemplo ocorre:
00000014 exception 1 com.ibm.ws.wim.registry.util.UniqueIdBridge getUniqueUserId
CWWIM4538E Diversos principais foram localizados para o nome do principal 'wimadmin'.
00000014 exception 1com.ibm.ws.wim.registry.util.UniqueIdBridge
getUniqueUserIdcom.ibm.websphere.wim.exception.EntityNotFoundException:
CWWIM4538E Diversos principais foram localizados para o nome do principal 'wimadmin'.
at com.ibm.ws.wim.registry.util.UniqueIdBridge.getUniqueUserId(UniqueIdBridge.java:168)
Nesse exemplo, o rastreio do gerenciador de membro virtual mostra que há duas entidades com o mesmo nome do principal, wimadmin, que foram retornadas pela API search(). Isso faz com que a exceção ocorra.
uniqueName="uid=wimadmin,o=defaultWIMFileBasedRealm"
uniqueName="CN=wimadmin,OU=US,DC=COM
Além disso, nesse exemplo, o mesmo nome é designado a primaryAdminId no arquivo security.xml, conforme mostrado aqui. Isso faz com que a exceção “diversos principais” ocorra durante o login. O exemplo a seguir está dividido em diversas linhas para fins de ilustração somente.
<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"/>
O gerenciador de membro virtual não permite que você use o mesmo ID do usuário mais de uma vez em uma região. Por exemplo, não é possível ter o mesmo ID do usuário em diretórios LDAP diferentes, mesmo em estruturas organizacionais diferentes. Assim, o ID do usuário deve ser exclusivo entre os diferentes repositórios.
Considere um cenário onde o usuário admin principal com o mesmo nome wimadmin existe em um repositório de arquivo e em um repositório LDAP. Use o console administrativo do WebSphere Application Server e siga estas etapas para remover a entrada duplicada do repositório de arquivo.
Cada repositório agora tem um primaryAdminID exclusivo.