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  	// one-time initializer
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  }