ログイン時に「複数のプリンシパルが見つかりました」エラーが表示される場合には、以下の手順に従ってトラブルシューティングを行ってください。
次の例のような例外が発生します。
00000014 exception 1 com.ibm.ws.wim.registry.util.UniqueIdBridge getUniqueUserId
CWWIM4538E 'wimadmin' プリンシパル名で複数のプリンシパルが見つかりました。
00000014 exception 1com.ibm.ws.wim.registry.util.UniqueIdBridge
getUniqueUserIdcom.ibm.websphere.wim.exception.EntityNotFoundException:
CWWIM4538E 'wimadmin' プリンシパル名で複数のプリンシパルが見つかりました。
at com.ibm.ws.wim.registry.util.UniqueIdBridge.getUniqueUserId(UniqueIdBridge.java:168)
この例では、Virtual member manager トレースに、同じプリンシパル名 wimadmin を持つエンティティーが 2 つあり、これのエンティティーが 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 では、レルムで同じユーザー ID を複数回使用することはできません。例えば、異なる組織構造の場合でも、異なる LDAP ディレクトリー内に同じユーザー ID を使用することはできません。したがって、ユーザー ID は複数のリポジトリーにわたって固有でなければなりません。
ファイル・リポジトリーと LDAP リポジトリーに、同じ名前 (wimadmin) を持つ 1 次管理ユーザーが存在しているとします。この場合は、WebSphere Application Server 管理コンソールで、次の手順に従ってファイル・リポジトリーから重複する項目を削除してください。
これで、各リポジトリーに含まれている primaryAdminID は固有の ID になります。