目前,我使用用户和密码作为ldap的连接凭据(以便在此AD上搜索)。
我的代码看起来像这样:
env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ...);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, ...);
env.put(Context.SECURITY_CREDENTIALS, ...);
env.put("com.sun.jndi.ldap.connect.timeout", ...);
try {
ctx = new InitialLdapContext(env, null);
}
catch (NamingException e) {
System.out.println("error")
}
我想更改这段代码,这样它就不会使用user+password作为LDAP的凭据。我希望它使用NTLM进行身份验证。
我该怎么做呢?你能举个例子吗?
发布于 2013-12-21 02:32:03
https://sourceforge.net/projects/javaldapntlmbind/
该解决方案使用Samba.orgJCIF Java库来处理UnboundID。由于使用了JCIF,它是独立于平台的,不需要在Windows上运行。
发布于 2012-08-13 18:05:19
不可能,JGSS不支持NTLM作为SASL机制。将Kerberos (GSS-API)与SASL一起使用。
https://stackoverflow.com/questions/11932031
复制相似问题