Diversas Entradas com o Mesmo Nome do Principal

Siga estas etapas para resolver o problema quando o erro “diversos principais foram localizados” for exibido durante o login.

Problema

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"/>

Solução

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.

  1. Efetue login com um ID de usuário válido. Um ID de usuário será válido se existir nesse repositório e não houver entrada duplicada para ele.
  2. Crie um ID de usuário no repositório de arquivo chamado wimadmin2.
  3. Use a página Funções de usuário administrativo para incluir o ID do usuário, wimadmin2, na função de administrador do WebSphere Application Server.
  4. Use a página de configuração Repositórios Associados para incluir o repositório LDAP e a entrada de base na região.
  5. Reinicie o servidor.
  6. Efetue login no WebSphere Application Server com o ID do usuário, wimadmin2.
  7. Use a página Gerenciar Usuários para excluir o ID do usuário denominado wimadmin do repositório de arquivo.
  8. Efetue logout.
  9. Efetue login com o ID do usuário wimadmin do repositório LDAP.

Cada repositório agora tem um primaryAdminID exclusivo.



Termos de uso | Feedback