]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifParserTest.java
Reorder perspectives in CMS DevOps.
[lgpl/argeo-commons.git] / org.argeo.enterprise / ext / test / org / argeo / osgi / useradmin / LdifParserTest.java
1 package org.argeo.osgi.useradmin;
2
3 import java.util.ArrayList;
4 import java.util.Base64;
5 import java.util.List;
6 import java.util.SortedMap;
7
8 import javax.naming.NamingEnumeration;
9 import javax.naming.directory.Attribute;
10 import javax.naming.directory.Attributes;
11 import javax.naming.ldap.LdapName;
12
13 import org.argeo.naming.LdapAttrs;
14 import org.argeo.naming.LdifParser;
15
16 /** {@link LdifParser} tests. */
17 public class LdifParserTest implements BasicTestConstants {
18 public void testBasicLdif() throws Exception {
19 LdifParser ldifParser = new LdifParser();
20 SortedMap<LdapName, Attributes> res = ldifParser.read(getClass().getResourceAsStream("basic.ldif"));
21 LdapName rootDn = new LdapName(ROOT_USER_DN);
22 Attributes rootAttributes = res.get(rootDn);
23 assert rootAttributes != null;
24 assert "Superuser".equals(rootAttributes.get(LdapAttrs.description.name()).get());
25 byte[] rawPwEntry = (byte[]) rootAttributes.get(LdapAttrs.userPassword.name()).get();
26 assert "{SHA}ieSV55Qc+eQOaYDRSha/AjzNTJE=".contentEquals(new String(rawPwEntry));
27 byte[] hashedPassword = DigestUtils.sha1("demo".getBytes());
28 assert ("{SHA}" + Base64.getEncoder().encodeToString(hashedPassword)).equals(new String(rawPwEntry));
29
30 LdapName adminDn = new LdapName(ADMIN_GROUP_DN);
31 Attributes adminAttributes = res.get(adminDn);
32 assert adminAttributes != null;
33 Attribute memberAttribute = adminAttributes.get(LdapAttrs.member.name());
34 assert memberAttribute != null;
35 NamingEnumeration<?> members = memberAttribute.getAll();
36 List<String> users = new ArrayList<String>();
37 while (members.hasMore()) {
38 Object value = members.next();
39 users.add(value.toString());
40 }
41 assert 1 == users.size();
42 assert rootDn.equals(new LdapName(users.get(0)));
43 }
44 }