使用Tomcat的外部LDAP JNDI连接

时间:2014-10-08 04:51:37

标签: tomcat ldap jndi

我想知道如何使用TOMCAT中的JNDI配置连接外部LDAP。

我的代码就像

try {
    InitialContext iniCtx = new InitialContext();
    ctx = (LdapContext) iniCtx.lookup("external/ldap/worker");
    //System.out.println("LDAP Context initialized::"+ctx);
    if(ctx!=null) {
        urlProvider=ctx.getEnvironment().get("java.naming.provider.url").toString();
    } 

} catch (NamingException ne) {                        
    throw new NamingException(ne.toString());
} 

Tomcat中的My Context.xml具有以下条目

<Resource 
  useDataSourceFactory="true"
  name="external/ldap/worker"
  auth="Container"
  type="com.sun.jndi.ldap.LdapCtxFactory"
  java.naming.factory.initial="com.sun.jndi.ldap.LdapCtxFactory"
  java.naming.provider.url="ldap://corpt605.corporate.***.***:13891"
  java.naming.security.authentication="simple"
  java.naming.security.principal="uid=cpasysuser,ou=******,o=***.com"
  java.naming.security.credentials="*********"
/>

我的web.xml有以下条目

<resource-ref>
    <description>E2k Ldap Datasource example</description>
    <res-ref-name>external/ldap/worker</res-ref-name>
    <res-type>com.sun.jndi.ldap.LdapCtxFactory</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

当我使用这个JNDI数据源时,我得到以下错误:

  

2014年10月8日10:12:03,394错误waveset.ge.commons.LdapJndiConnection_CDI:52 - getLdapCntxt ::在Ldap上下文查找期间发生错误javax.naming.NameNotFoundException:名称[external / ldap / worker]未绑定在此上下文中。无法找到[外部]。

有什么问题?

0 个答案:

没有答案