高分敬达人--关于ldap的问题

exitzhang 2003-09-04 11:52:34
菜鸟请教各位达人:我想利用windows 2000作为ldap server实现用户管理,可是直接从中取出来的用户的attributes中没有userPassword,据说windows的password放在一个sam数据库中。我现在无法进行用户验证,请问:如何在java程序中实现这种用户验证?高分相送!
...全文
25 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shining_ljr 2003-12-23
  • 打赏
  • 举报
回复
mark
ltf_ty 2003-11-28
  • 打赏
  • 举报
回复
Mark
exitzhang 2003-09-05
  • 打赏
  • 举报
回复
诸位有连接LDAPServer的源码吗?可否给小弟一份。我现在用的Novell的LDAP包,太复杂了,我想自己重写一下。在此谢过了!

zhanglei@gei.com.cn
cbhyk 2003-09-05
  • 打赏
  • 举报
回复
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);
}
}
exitzhang 2003-09-04
  • 打赏
  • 举报
回复
自己顶
exitzhang 2003-09-04
  • 打赏
  • 举报
回复
什么叫重新设置密码?
exitzhang 2003-09-04
  • 打赏
  • 举报
回复
win2000的activity directory采用的什么加密机制呢?我看到一个说法说他的password只能write不能read,是不是这个道理呢?
ticlej 2003-09-04
  • 打赏
  • 举报
回复
那就要看你的ldap采用什么加密机制罗,如果是不能反向的,则只能用用输入的用户名和密码登陆看是否成功,这种方式.否则你只能采用重新设置密码来实现。很多加密算法都是不能被反向的。
exitzhang 2003-09-04
  • 打赏
  • 举报
回复
我到想到了一个办法,用输入的用户名和密码登陆看是否成功,不过这种方法好像有点龌龊。
selfboss 2003-09-04
  • 打赏
  • 举报
回复
up

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧