📄 ldap.js
字号:
if (res.error != 0 || res.msgs.length != 1) { println("Could not find (cn=ldaptest2computer) at servicePrincipalName;range=10-40"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0]["servicePrincipalName;range=10-*"].length == 20);// var pos_11 = res.msgs[0]["servicePrincipalName;range=10-*"][18]; var attrs = new Array("servicePrincipalName;range=11-40"); var res = ldb.search("(cn=ldaptest2computer))", base_dn, ldb.SCOPE_SUBTREE, attrs); if (res.error != 0 || res.msgs.length != 1) { println("Could not find (cn=ldaptest2computer) at servicePrincipalName;range=10-*"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0]["servicePrincipalName;range=11-*"].length == 19);// println(res.msgs[0]["servicePrincipalName;range=11-*"][18]);// println(pos_11);// assert((res.msgs[0]["servicePrincipalName;range=11-*"][18]) == pos_11); var attrs = new Array("servicePrincipalName;range=11-15"); var res = ldb.search("(cn=ldaptest2computer))", base_dn, ldb.SCOPE_SUBTREE, attrs); if (res.error != 0 || res.msgs.length != 1) { println("Could not find (cn=ldaptest2computer) at servicePrincipalName;range=11-15"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0]["servicePrincipalName;range=11-15"].length == 5);// assert(res.msgs[0]["servicePrincipalName;range=11-15"][4] == pos_11); var attrs = new Array("servicePrincipalName"); var res = ldb.search("(cn=ldaptest2computer))", base_dn, ldb.SCOPE_SUBTREE, attrs); if (res.error != 0 || res.msgs.length != 1) { println("Could not find (cn=ldaptest2computer) at servicePrincipalName"); assert(res.error == 0); assert(res.msgs.length == 1); }// println(res.msgs[0]["servicePrincipalName"][18]);// println(pos_11); assert(res.msgs[0]["servicePrincipalName"].length == 30);// assert(res.msgs[0]["servicePrincipalName"][18] == pos_11); ok = ldb.add("dn: cn=ldaptestuser2,cn=useRs," + base_dn + "objectClass: personobjectClass: usercn: LDAPtestUSER2givenname: testysn: ldap user2"); if (ok.error != 0) { ok = ldb.del("cn=ldaptestuser2,cn=users," + base_dn); if (ok.error != 0) { println(ok.errstr); assert(ok.error == 0); } ok = ldb.add("dn: cn=ldaptestuser2,cn=useRs," + base_dn + "objectClass: personobjectClass: usercn: LDAPtestUSER2givenname: testysn: ldap user2"); if (ok.error != 0) { println(ok.errstr); assert(ok.error == 0); } } println("Testing Ambigious Name Resolution");// Testing ldb.search for (&(anr=ldap testy)(objectClass=user)) var res = ldb.search("(&(anr=ldap testy)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 3) { println("Could not find (&(anr=ldap testy)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 3); }// Testing ldb.search for (&(anr=testy ldap)(objectClass=user)) var res = ldb.search("(&(anr=testy ldap)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 2) { println("Found only " + res.msgs.length + " for (&(anr=testy ldap)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 2); } var res = ldb.search("(&(anr=testy ldap)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 2) { println("Found only " + res.msgs.length + " for (&(anr=\"testy ldap\")(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 2); }// Testing ldb.search for (&(anr=ldap)(objectClass=user)) var res = ldb.search("(&(anr=ldap)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 4) { println("Found only " + res.msgs.length + " for (&(anr=ldap)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 4); } // Testing ldb.search for (&(anr==ldap)(objectClass=user)) var res = ldb.search("(&(anr==ldap)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 1) { println("Found only " + res.msgs.length + " for (&(anr=ldap)(objectClass=user))"); println("Could not find (&(anr==ldap)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0].dn == ("CN=ldaptestuser,CN=Users," + base_dn)); assert(res.msgs[0].cn == "ldaptestuser"); assert(res.msgs[0].name == "ldaptestuser");// Testing ldb.search for (&(anr=testy)(objectClass=user)) var res = ldb.search("(&(anr=testy)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 2) { println("Found only " + res.msgs.length + " for (&(anr=testy)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 2); }// Testing ldb.search for (&(anr=ldap testy)(objectClass=user)) var res = ldb.search("(&(anr=testy ldap)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 2) { println("Found only " + res.msgs.length + " for (&(anr=ldap testy)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 2); }// Testing ldb.search for (&(anr==ldap testy)(objectClass=user)) var res = ldb.search("(&(anr==testy ldap)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 1) { println("Found only " + res.msgs.length + " for (&(anr==ldap testy)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0].dn == ("CN=ldaptestuser,CN=Users," + base_dn)); assert(res.msgs[0].cn == "ldaptestuser"); assert(res.msgs[0].name == "ldaptestuser");// Testing ldb.search for (&(anr==testy ldap)(objectClass=user)) var res = ldb.search("(&(anr==testy ldap)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 1) { println("Could not find (&(anr==testy ldap)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0].dn == ("CN=ldaptestuser,CN=Users," + base_dn)); assert(res.msgs[0].cn == "ldaptestuser"); assert(res.msgs[0].name == "ldaptestuser"); // Testing ldb.search for (&(anr=testy ldap user)(objectClass=user)) var res = ldb.search("(&(anr=testy ldap user)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 1) { println("Could not find (&(anr=testy ldap user)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0].dn == ("CN=ldaptestuser2,CN=Users," + base_dn)); assert(res.msgs[0].cn == "ldaptestuser2"); assert(res.msgs[0].name == "ldaptestuser2"); // Testing ldb.search for (&(anr==testy ldap user2)(objectClass=user)) var res = ldb.search("(&(anr==testy ldap user2)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 1) { println("Could not find (&(anr==testy ldap user2)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0].dn == ("CN=ldaptestuser2,CN=Users," + base_dn)); assert(res.msgs[0].cn == "ldaptestuser2"); assert(res.msgs[0].name == "ldaptestuser2"); // Testing ldb.search for (&(anr==ldap user2)(objectClass=user)) var res = ldb.search("(&(anr==ldap user2)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 1) { println("Could not find (&(anr==ldap user2)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0].dn == ("CN=ldaptestuser2,CN=Users," + base_dn)); assert(res.msgs[0].cn == "ldaptestuser2"); assert(res.msgs[0].name == "ldaptestuser2"); // Testing ldb.search for (&(anr==not ldap user2)(objectClass=user)) var res = ldb.search("(&(anr==not ldap user2)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 0) { println("Must not find (&(anr==not ldap user2)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 0); } // Testing ldb.search for (&(anr=not ldap user2)(objectClass=user)) var res = ldb.search("(&(anr=not ldap user2)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 0) { println("Must not find (&(anr=not ldap user2)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 0); } println("Testing Group Modifies"); ok = ldb.modify("dn: cn=ldaptestgroup,cn=users," + base_dn + "changetype: modifyadd: membermember: cn=ldaptestuser2,cn=users," + base_dn + "member: cn=ldaptestcomputer,cn=computers," + base_dn + ""); if (ok.error != 0) { println(ok.errstr); assert(ok.error == 0); } ok = ldb.del("cn=ldaptestuser3,cn=users," + base_dn); println("Testing adding non-existent user to a group"); ok = ldb.modify("dn: cn=ldaptestgroup,cn=users," + base_dn + "changetype: modifyadd: membermember: cn=ldaptestuser3,cn=users," + base_dn + ""); if (ok.error != 32) { /* LDAP_NO_SUCH_OBJECT */ println(ok.errstr); assert(ok.error == 32); } println("Testing Renames"); ok = ldb.rename("cn=ldaptestuser2,cn=users," + base_dn, "cn=ldaptestuser3,cn=users," + base_dn); if (ok.error != 0) { println("Could not rename cn=ldaptestuser2,cn=users," + base_dn + " into cn=ldaptestuser3,cn=users," + base_dn + ": " + ok.errstr); assert(ok.error == 0); } ok = ldb.rename("cn=ldaptestuser3,cn=users," + base_dn, "cn=ldaptestuser3,cn=users," + base_dn); if (ok.error != 0) { println("Could not rename cn=ldaptestuser3,cn=users," + base_dn + " onto itself: " + ok.errstr); assert(ok.error == 0); } ok = ldb.rename("cn=ldaptestuser3,cn=users," + base_dn, "cn=ldaptestUSER3,cn=users," + base_dn); if (ok.error != 0) { println("Could not rename cn=ldaptestuser3,cn=users," + base_dn + " into cn=ldaptestUSER3,cn=users," + base_dn + ": " + ok.errstr); assert(ok.error == 0); } println("Testing ldb.search for (&(cn=ldaptestuser3)(objectClass=user))"); var res = ldb.search("(&(cn=ldaptestuser3)(objectClass=user))"); if (res.error != 0 || res.msgs.length != 1) { println("Could not find (&(cn=ldaptestuser3)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0].dn == ("CN=ldaptestUSER3,CN=Users," + base_dn)); assert(res.msgs[0].cn == "ldaptestUSER3"); assert(res.msgs[0].name == "ldaptestUSER3"); println("Testing ldb.search for (&(&(cn=ldaptestuser3)(userAccountControl=*))(objectClass=user))"); var res = ldb.search("(&(&(cn=ldaptestuser3)(userAccountControl=*))(objectClass=user))"); if (res.error != 0 || res.msgs.length != 1) { println("Could not find (&(cn=ldaptestuser3)(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0].dn == ("CN=ldaptestUSER3,CN=Users," + base_dn)); assert(res.msgs[0].cn == "ldaptestUSER3"); assert(res.msgs[0].name == "ldaptestUSER3"); println("Testing ldb.search for (&(&(cn=ldaptestuser3)(userAccountControl=546))(objectClass=user))"); var res = ldb.search("(&(&(cn=ldaptestuser3)(userAccountControl=546))(objectClass=user))"); if (res.error != 0 || res.msgs.length != 1) { println("Could not find (&(&(cn=ldaptestuser3)(userAccountControl=546))(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0].dn == ("CN=ldaptestUSER3,CN=Users," + base_dn)); assert(res.msgs[0].cn == "ldaptestUSER3"); assert(res.msgs[0].name == "ldaptestUSER3"); println("Testing ldb.search for (&(&(cn=ldaptestuser3)(userAccountControl=547))(objectClass=user))"); var res = ldb.search("(&(&(cn=ldaptestuser3)(userAccountControl=547))(objectClass=user))"); if (res.error != 0 || res.msgs.length != 0) { println("Should not find (&(&(cn=ldaptestuser3)(userAccountControl=547))(objectClass=user))"); assert(res.error == 0); assert(res.msgs.length == 0); }// This is a Samba special, and does not exist in real AD// println("Testing ldb.search for (dn=CN=ldaptestUSER3,CN=Users," + base_dn + ")");// var res = ldb.search("(dn=CN=ldaptestUSER3,CN=Users," + base_dn + ")");// if (res.error != 0 || res.msgs.length != 1) {// println("Could not find (dn=CN=ldaptestUSER3,CN=Users," + base_dn + ")");// assert(res.error == 0);// assert(res.msgs.length == 1);// }// assert(res.msgs[0].dn == ("CN=ldaptestUSER3,CN=Users," + base_dn));// assert(res.msgs[0].cn == "ldaptestUSER3");// assert(res.msgs[0].name == "ldaptestUSER3"); println("Testing ldb.search for (distinguishedName=CN=ldaptestUSER3,CN=Users," + base_dn + ")"); var res = ldb.search("(distinguishedName=CN=ldaptestUSER3,CN=Users," + base_dn + ")"); if (res.error != 0 || res.msgs.length != 1) { println("Could not find (dn=CN=ldaptestUSER3,CN=Users," + base_dn + ")"); assert(res.error == 0); assert(res.msgs.length == 1); } assert(res.msgs[0].dn == ("CN=ldaptestUSER3,CN=Users," + base_dn)); assert(res.msgs[0].cn == "ldaptestUSER3"); assert(res.msgs[0].name == "ldaptestUSER3"); // ensure we cannot add it again ok = ldb.add("dn: cn=ldaptestuser3,cn=userS," + base_dn + "objectClass: personobjectClass: usercn: LDAPtestUSER3");//LDB_ERR_ENTRY_ALREADY_EXISTS if (ok.error != 68) { println("expected error LDB_ERR_ENTRY_ALREADY_EXISTS, got: " + ok.errstr); assert(ok.error == 68); } // rename back ok = ldb.rename("cn=ldaptestuser3,cn=users," + base_dn, "cn=ldaptestuser2,cn=users," + base_dn); if (ok.error != 0) { println(ok.errstr); assert(ok.error == 0); } // ensure we cannnot rename it twice ok = ldb.rename("cn=ldaptestuser3,cn=users," + base_dn, "cn=ldaptestuser2,cn=users," + base_dn);//LDB_ERR_NO_SUCH_OBJECT assert(ok.error == 32); // ensure can now use that name ok = ldb.add("dn: cn=ldaptestuser3,cn=users," + base_dn + "objectClass: personobjectClass: usercn: LDAPtestUSER3"); // ensure we now cannnot rename ok = ldb.rename("cn=ldaptestuser2,cn=users," + base_dn, "cn=ldaptestuser3,cn=users," + base_dn);//LDB_ERR_ENTRY_ALREADY_EXISTS if (ok.error != 68) { println("expected error LDB_ERR_ENTRY_ALREADY_EXISTS, got: " + ok.errstr); assert(ok.error == 68); } assert(ok.error == 68); ok = ldb.rename("cn=ldaptestuser3,cn=users," + base_dn, "cn=ldaptestuser3,cn=configuration," + base_dn); if (ok.error != 71 && ok.error != 64) { println("expected error LDB_ERR_ENTRY_ALREADY_EXISTS or LDAP_NAMING_VIOLATION, got: " + ok.errstr); assert(ok.error == 71 || ok.error == 64); } assert(ok.error == 71 || ok.error == 64); ok = ldb.rename("cn=ldaptestuser3,cn=users," + base_dn, "cn=ldaptestuser5,cn=users," + base_dn); if (ok.error != 0) { println(ok.errstr); assert(ok.error == 0); } ok = ldb.del("cn=ldaptestuser5,cn=users," + base_dn); ok = ldb.del("cn=ldaptestgroup2,cn=users," + base_dn); ok = ldb.rename("cn=ldaptestgroup,cn=users," + base_dn, "cn=ldaptestgroup2,cn=users," + base_dn); if (ok.error != 0) { println(ok.errstr); assert(ok.error == 0); } println("Testing subtree Renames"); ok = ldb.add("dn: cn=ldaptestcontainer," + base_dn + "objectClass: container"); ok = ldb.add("dn: CN=ldaptestuser4,CN=ldaptestcontainer," + base_dn + "objectClass: personobjectClass: usercn: LDAPtestUSER4");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -