打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
idap
userphoto

2013.10.25

关注
刚进入公司,发现公司采用ldap对用户进行管理,今天就先从这个入手了。加油加油!!!
LDAP, X.500, and directory services密切相关。
一、ldap是什么?
   ldap是ietf的标准栈协议,是light directionary access protrol的简称;
   ldap的底层协议是x.500即dap,ldap负责的通信协议层是tcp/ip层,能够完成查询、修改、删除、添加功能。
二、名词解释
   dn:distinguished name唯一性标识名
   cn:common name
   c:country
   o:organization
   ou:organization unit
   dc:Domain Component
   以上简称可以在schema文件中找到,用的时候查看就行。
三、建立链接
    public static String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory"; //驱动
public static String MY_HOST = "ldap://localhost:389"; //主机地址和端口
public static String MY_SEARCHBASE = "o=tcl,c=cn"; //基点入口
public static String MY_FILTER= "(mail=test@hotmail.com)"; //过滤条件
public static String MGR_DN="cn=manager,o=tcl,c=cn"; //用户名
public static String MGR_PW="secret"; //密码
         public static DirContext createDirContext()
{
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,INITCTX);
env.put(Context.PROVIDER_URL,MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION,"simple");
         //使用简单认证来认证用户
env.put(Context.SECURITY_PRINCIPAL,MGR_DN);
env.put(Context.SECURITY_CREDENTIALS,MGR_PW);
DirContext ctx = new InitialDirContext(env); 
         return ctx
}
四、添加新的数据。
    public static void addEntry(DirContext context,String dn) throws NamingException {   
         Attributes attrs = new BasicAttributes();  
    attrs.put("sn","amy lee");
    attrs.put("cn", "AmyLee");
    attrs.put("telephoneNumber", "+1 408 555 0033");  
    attrs.put("userPassword", "redqueen".getBytes());  
    Attribute objclass = new BasicAttribute("objectClass");  
    objclass.add("person");  
    attrs.put(objclass); //指定schema为person,否则cn属性无法识别;
    context.createSubcontext(dn, attrs);//dn是要加入的新数据的完整唯一性标识;
}
五、查询数据
   public static void query()
{
         SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration results = ctx.search(MY_SEARCHBASE,MY_FILTER,constraints);

//打印查询结果
while (results != null && results.hasMore()){}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
JNDI 学习
LDAP入门
java ldap
LDAP快速入门
5319 - 博览 - JAVA中使用LDAP进行用户认证
关于LDAP的一个java编程实例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服