我使用以下代码提出LDAP请求。
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldap.getServer());
env.put(Context.SECURITY_AUTHENTICATION,"simple");
env.put(Context.SECURITY_PRINCIPAL,dn);
env.put(Context.SECURITY_CREDENTIALS,ldapPassword);
if(ssl){
env.put(Context.SECURITY_PROTOCOL, "ssl");
env.put(Context.REFERRAL, "ignore");
//System.setProperty("javax.net.ssl.trustStore",ldap.getTrustStore());
//System.setProperty("javax.net.ssl.trustStorePassword",ldap.getTrustStorePassword());
}
LdapContext ctx = new InitialLdapContext(env, null);
问题是,第一个请求大约需要60秒。所有进一步的请求<1秒!
我看到了一条帖子,指出我应该换行
env.put(Context.REFERRAL, "follow"); to env.put(Context.REFERRAL, "ignore");
这不能解决问题。
我发现以下一行是问题所在-这是60秒的延迟!
LdapContext ctx = new InitialLdapContext(env, null);
任何建议将不胜感激。