2013-05-21 26 views
0

我想使用ApacheDS LDAP对用户进行身份验证,然后将其与我的worklight服务器(liberty配置文件)集成。 为此,我使用http endpoint元素后面的代码修改了server.xml。使用Ldap的worklight服务器身份验证

<ldapRegistry id=”ldap” > 
    realm=”LdapRegistry” 
    host=”localhost” 
    port=”10389” 
    ignoreCase=”true” 
    baseDN=”dc=partition1,dc=com” 
    bindDN=”uid=admin,ou=system” 
    userFilter=”(&(uid=%v)(objectclass=inetOrgPerson))” 
    bindPassword=”secret” 
    ldapType="ApacheDS 2.0.0" 
    </ldapRegistry> 

在authenticationconfig.xml

 "<securityTests> 
    <customSecurityTest name="LDAPSecurityTest"> 
     <test isInternalUserID="true" realm="LDAPRealm"/> 
    </customSecurityTest> 

    <customSecurityTest name="LDAPSecurityTestForWLConsole"> 
     <test isInternalUserID="true" realm="WorklightConsole"/> 
    </customSecurityTest> 
</securityTests> 

<realms> 
    <realm loginModule="LDAPLoginModule" name="LDAPRealm"> 
      <className>com.worklight.UsernamePasswordJSONAuthenticator</className> 
    </realm> 

    <realm loginModule="StrongDummy" name="SampleAppRealm"> 
     <className>com.worklight.core.auth.ext.FormBasedAuthenticator</className> 
    </realm> 

    <realm loginModule="LDAPLoginModule" name="WorklightConsole"> 
     <className>com.worklight.core.auth.ext.FormBasedAuthenticator</className> 
     <onLoginUrl>/console</onLoginUrl> 
    </realm> 
</realms> 

<loginModules> 
    <loginModule name="LDAPLoginModule"> 
     <className>com.worklight.LDAPLoginModule</className> 
     <parameter name="ldapHost" value="ldap://localhost:10389"/> 
     <parameter name="ldapDomain" value="localhost:10389"/> 
     <parameter name="searchBase" value="dc=partition1,dc=com"/> 

     <!-- 
      In case credentials are successfully validated check user's memberOf property for this string. 
      Can be used to check whether user belongs to specific LDAP unit or group. 
      Leave value empty to skip this check. 
      --> 


    </loginModule> 

    <loginModule name="StrongDummy"> 
     <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className> 
    </loginModule> 

    <loginModule name="requireLogin"> 
<className>com.worklight.core.auth.ext.SingleIdentityLoginModule</className> 
    </loginModule> 
</loginModules> 
    </tns:loginConfiguration> 

工作灯服务器控制台停止工作。 遵循ibm站点的LDAP登录模块和配置为liberty配置文件的支持中心。 请帮忙

回答

0

我注意到你的LDAP conf使用了两种不同类型的引号 - “和”,可能是原因吗?试着将它们全部改为“。

+0

是的,我做到了,还是出错....我检查了日志,它说有一个与我的用户过滤器行我试图改变该行 user2402589

0

第一点:我认为LDAP类型“ApacheDS 2.0.0”不正确。
支持的类型有:

  • 定制
  • 的IBM Lotus Domino的Novell eDirectory
  • IBM Tivoli目录服务器
  • Sun Java系统目录服务器
  • 网景目录服务器
    1. 的Microsoft Active Directory
    2. IBM SecureWay Directory Server

    所以当然必须使用自定义。第二点:您必须添加userIdMap="*:uid"
    因此,尝试用:

    <ldapRegistry id=”ldap” > 
        realm=”LdapRegistry” 
        host=”localhost” 
        port=”10389” 
        ignoreCase=”true” 
        baseDN=”dc=partition1,dc=com” 
        bindDN=”uid=admin,ou=system” 
        userFilter=”(&amp;(uid=%v)(objectclass=inetOrgPerson))” 
        userIdMap="*:uid" 
        bindPassword=”secret” 
        ldapType="Custom" 
    </ldapRegistry>