1 package org
.argeo
.osgi
.useradmin
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Base64
;
6 import java
.util
.SortedMap
;
8 import javax
.naming
.NamingEnumeration
;
9 import javax
.naming
.directory
.Attribute
;
10 import javax
.naming
.directory
.Attributes
;
11 import javax
.naming
.ldap
.LdapName
;
13 import org
.argeo
.naming
.LdapAttrs
;
14 import org
.argeo
.naming
.LdifParser
;
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
));
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());
41 assert 1 == users
.size();
42 assert rootDn
.equals(new LdapName(users
.get(0)));