1 package test.tuigwaa;
2
3 import java.util.Hashtable;
4 import java.util.Properties;
5
6 import javax.naming.NamingEnumeration;
7 import javax.naming.directory.Attribute;
8 import javax.naming.directory.Attributes;
9 import javax.naming.directory.BasicAttributes;
10 import javax.naming.directory.DirContext;
11 import javax.naming.directory.InitialDirContext;
12 import javax.naming.directory.SearchResult;
13
14 import junit.extensions.TestSetup;
15 import junit.framework.Test;
16 import junit.framework.TestCase;
17 import junit.framework.TestSuite;
18
19 import org.seasar.framework.container.S2Container;
20 import org.seasar.framework.container.factory.S2ContainerFactory;
21 import org.seasar.tuigwaa.security.DirectoryUtils;
22
23 /***
24 * @author someda
25 */
26 public class LDAPTest extends TestCase {
27
28 private static final String DICON_PATH = "dicon/ldap.dicon";
29 private static Properties ldapsettings;
30 private static Hashtable ldapenv;
31
32 private DirContext ctx;
33
34
35 public static Test suite() throws Exception{
36
37 TestSuite suite = new TestSuite(LDAPTest.class);
38 TestSetup setup = new TestSetup(suite){
39
40 public void setUp() throws Exception{
41 S2Container container = S2ContainerFactory.create(DICON_PATH);
42 ldapsettings = (Properties) container.getComponent("ldapsetting");
43 ldapenv = (Hashtable) container.getComponent("ldapenv");
44 }
45
46 public void tearDown() throws Exception{
47 }
48 };
49 return setup;
50 }
51
52 public void setUp() throws Exception{
53 ctx = new InitialDirContext(ldapenv);
54 }
55
56 public void testUserSearch() throws Exception{
57
58 String roledn = "ou=Groups";
59 Attributes memberUid = new BasicAttributes("memberUid","someda");
60 NamingEnumeration nenum = ctx.search(roledn,memberUid);
61 while(nenum.hasMore()){
62 SearchResult result = (SearchResult) nenum.next();
63 Attributes roleattrs = result.getAttributes();
64 Attribute roleattr = roleattrs.get("cn");
65 System.out.println(roleattr.get());
66 }
67 }
68
69
70 public void tearDown() throws Exception{
71 DirectoryUtils.closeQuietly(ctx);
72 }
73
74 }