0

我已将 Websphere Liberty 配置为使用 LDAP 对用户进行身份验证。我已启用安全跟踪 -

com.ibm.ws.security。=全部:com.ibm.ws.webcontainer.security。=全部:com.ibm.oauth。=全部:com.ibm.wsspi.security.oauth20。=全部:com.ibm.ws.transport.http。=全部:org.apache.http.client。=全部

我在 WebSphere Liberty v17.0.0.3webProfile-7.0javaMail-1.5ldapRegistry-3.0中启用了以下功能列表localConnector-1.0

但是,安全内容因错误HTTP 401 (Unauthenticated)而失败。在跟踪文件中,我可以看到 LDAP 能够返回登录的用户数据。但是 WebSphere Liberty 因错误而失败 -

com.ibm.wsspi.security.wim.model.Entity 与 com.ibm.wsspi.security.wim.model.LoginAccount java.lang.ClassCastException 不兼容:com.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) 在 com.ibm.ws.security.wim.registry。 WIMUserRegistry.getUserSecurityName(WIMUserRegistry.java:316) 在 com.ibm.ws.security.authentication.internal.jaas.modules.ServerCommonLoginModule.getSecurityName(ServerCommonLoginModule.java:104)

如果此错误是由于任何配置问题引起的,请帮助指导。

4

1 回答 1

0

更正所用注册表的配置后,问题得到解决。我正在使用 LDAP 注册表,并提到 LDAP 服务器类型为 Tivoli。这导致从 LDAP 返回的主题类中的问题与 Liberty 中的预期类不匹配。一旦我将 LDAP 服务类型更改为自定义,这个错误就得到了解决。下面是我在 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>
于 2017-10-31T15:26:08.700 回答