]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.security.core/ext/test/org/argeo/osgi/useradmin/LdifUserAdminTest.java
Work on userAdmin UI:
[lgpl/argeo-commons.git] / org.argeo.security.core / ext / test / org / argeo / osgi / useradmin / LdifUserAdminTest.java
1 package org.argeo.osgi.useradmin;
2
3 import java.util.Arrays;
4 import java.util.List;
5
6 import junit.framework.TestCase;
7
8 import org.apache.commons.codec.binary.Base64;
9 import org.apache.commons.codec.digest.DigestUtils;
10 import org.osgi.service.useradmin.Authorization;
11 import org.osgi.service.useradmin.Group;
12 import org.osgi.service.useradmin.Role;
13 import org.osgi.service.useradmin.User;
14
15 public class LdifUserAdminTest extends TestCase implements BasicTestConstants {
16
17 public void testBasicUserAdmin() throws Exception {
18 LdifUserAdmin userAdmin = new LdifUserAdmin(getClass()
19 .getResourceAsStream("basic.ldif"));
20
21 // users
22 User rootUser = (User) userAdmin.getRole(ROOT_USER_DN);
23 assertNotNull(rootUser);
24 User demoUser = (User) userAdmin.getRole(DEMO_USER_DN);
25 assertNotNull(demoUser);
26
27 // groups
28 Group adminGroup = (Group) userAdmin.getRole(ADMIN_GROUP_DN);
29 assertNotNull(adminGroup);
30 Role[] members = adminGroup.getMembers();
31 assertEquals(1, members.length);
32 assertEquals(rootUser, members[0]);
33
34 Group editorGroup = (Group) userAdmin.getRole(EDITOR_GROUP_DN);
35 assertNotNull(editorGroup);
36 members = editorGroup.getMembers();
37 assertEquals(2, members.length);
38 assertEquals(adminGroup, members[0]);
39 assertEquals(demoUser, members[1]);
40
41 Authorization rootAuth = userAdmin.getAuthorization(rootUser);
42 List<String> rootRoles = Arrays.asList(rootAuth.getRoles());
43 assertEquals(3, rootRoles.size());
44 assertTrue(rootRoles.contains(ROOT_USER_DN));
45 assertTrue(rootRoles.contains(ADMIN_GROUP_DN));
46 assertTrue(rootRoles.contains(EDITOR_GROUP_DN));
47
48 // properties
49 assertEquals("root@localhost", rootUser.getProperties().get("mail"));
50
51 // credentials
52 byte[] hashedPassword = ("{SHA}" + Base64
53 .encodeBase64String(DigestUtils.sha1("demo".getBytes())))
54 .getBytes();
55 assertTrue(rootUser.hasCredential("userpassword", hashedPassword));
56 assertTrue(demoUser.hasCredential("userpassword", hashedPassword));
57
58 // search
59 Role[] search = userAdmin.getRoles(null);
60 assertEquals(4, search.length);
61 search = userAdmin.getRoles("(objectClass=groupOfNames)");
62 assertEquals(2, search.length);
63 search = userAdmin.getRoles("(objectclass=inetOrgPerson)");
64 assertEquals(2, search.length);
65 search = userAdmin.getRoles("(&(objectclass=inetOrgPerson)(uid=demo))");
66 assertEquals(1, search.length);
67 }
68 }