2017-10-29 5 views
0

私はLDAPを使用してユーザーを認証するようにWebsphere Libertyを設定しました。セキュリティトレースを有効にしました -wimモデルメッセージのトレースログにLibertyログインエラーがあります - ClassCastExceptionエンティティとLoginAccount

com.ibm.ws.security。 = all:com.ibm.ws.webcontainer.security。 = all:com.ibm.oauth。 = all:com.ibm.wsspi.security.oauth20。 = all:com.ibm.ws.transport.http。 = all:org.apache.http.client。 = Iは、WebSphere Liberty v17.0.0.3webProfile-7.0javaMail-1.5ldapRegistry-3.0localConnector-1.0で有効に機能リストを以下しているすべての

ただし、セキュリティで保護されたコンテンツがエラーHTTP 401(認証されていない)で失敗しています。 トレースファイルでは、LDAPがログインしたユーザーデータを返すことができます。 COM:com.ibm.wsspi.security.wim.model.LoginAccount とjava.lang.ClassCastExceptionと互換性がない

com.ibm.wsspi.security.wim.model.Entity - が、WebSphere Libertyはエラーで失敗しています.ibm.wsspi.security.wim.model.Entityは、com.ibm.wsspi.security.wim.model.LoginAccountと互換性がありません。 (com.ibm.ws.security.wim.registry.util.SecurityNameBridge.getUserSecurityName(SecurityNameBridge.java)) :203) at com.ibm.ws.security.wim.registry.WIMUserRegistry.getUserSecurityName(WIMUserRegistry.java:316) (com.ibm.ws.security.authentication.internal.jaas.modules.ServerCommonLoginModule.getSecurityName(ServerCommonLoginModule .java:104)

このエラーが設定に問題がある場合は、お手伝いしてください。

+0

server.xmlにuserSecurityNameMappingが設定されていますか? – Ryan

+0

私はldapRegistryタグを \t - >着信ユーザーIDをldap属性でマップするためにidsFiltersが定義されています –

答えて

0

使用しているレジストリの設定を修正しても問題は解決しました。私はLDAPレジストリーを使用していて、LDAPサーバー・タイプをTivoliと言いました。これは、Libertyで予想されるクラスと一致しないLDAPから返されるSubjectクラスの問題を引き起こしていました。 LDAPサービスタイプをCustomに変更すると、このエラーは解決されました。以下はserver.xmlで使用したLDAPレジストリのタグです

<ldapRegistry baseDN="ou=xxxxxxxx,o=xxxxxx" host="xxxxxxxxxxxxxxx" id="xxxxxxxxxxx" ldapType="Custom" port="636" realm="xx" recursiveSearch="true" sslEnabled="true" sslRef="sslrepo1"> 
    <customFilters userFilter="(&amp;(mail=%v)(objectclass=ePerson))" userIdMap="*:mail"/> 
</ldapRegistry> 
関連する問題