高分敬达人--关于ldap的问题
菜鸟请教各位达人:我想利用windows 2000作为ldap server实现用户管理,可是直接从中取出来的用户的attributes中没有userPassword,据说windows的password放在一个sam数据库中。我现在无法进行用户验证,请问:如何在java程序中实现这种用户验证?高分相送! 问题点数:100、回复次数:10Top
1 楼exitzhang(exit)回复于 2003-09-04 12:40:42 得分 0
自己顶Top
2 楼selfboss(黃海)回复于 2003-09-04 13:39:00 得分 10
upTop
3 楼exitzhang(exit)回复于 2003-09-04 13:45:02 得分 0
我到想到了一个办法,用输入的用户名和密码登陆看是否成功,不过这种方法好像有点龌龊。Top
4 楼ticlej(ticlej)回复于 2003-09-04 15:06:02 得分 20
那就要看你的ldap采用什么加密机制罗,如果是不能反向的,则只能用用输入的用户名和密码登陆看是否成功,这种方式.否则你只能采用重新设置密码来实现。很多加密算法都是不能被反向的。Top
5 楼exitzhang(exit)回复于 2003-09-04 16:24:09 得分 0
win2000的activity directory采用的什么加密机制呢?我看到一个说法说他的password只能write不能read,是不是这个道理呢?Top
6 楼exitzhang(exit)回复于 2003-09-04 16:52:28 得分 0
什么叫重新设置密码?Top
7 楼exitzhang(exit)回复于 2003-09-05 09:54:15 得分 0
诸位有连接LDAPServer的源码吗?可否给小弟一份。我现在用的Novell的LDAP包,太复杂了,我想自己重写一下。在此谢过了!
zhanglei@gei.com.cnTop
8 楼cbhyk()回复于 2003-09-05 14:01:01 得分 70
win2000的密码是不可读的,用以下代码进行用户验证
import java.util.Hashtable;
import javax.naming.AuthenticationException;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
public class ActiveDirectoryConntct1
{
public static void main(String[] args)
{
String user="testuser";
String password="password";
String domain="test.com";
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://192.168.6.13:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, user + "@" + domain);
env.put(Context.SECURITY_CREDENTIALS, password);
DirContext ctx = null;
try
{
ctx = new InitialDirContext(env);
System.out.println("验证通过");
}
catch(AuthenticationException e)
{
System.out.println("账号或密码错误");
}
catch(Exception e)
{
e.printStackTrace();
}
if(ctx != null)
{
try
{
ctx.close();
}
catch (NamingException e)
{
e.printStackTrace();
}
}
System.exit(0);
}
}
Top
9 楼ltf_ty(兔八哥)回复于 2003-11-28 17:35:37 得分 0
MarkTop
10 楼shining_ljr(老荣)回复于 2003-12-23 12:28:37 得分 0
markTop




