Initial Version
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / aaLocal / CmuDirContext.java
1 import java.util.*;
2 import javax.naming.*;
3 import javax.naming.directory.*;
4
5 public class CmuDirContext extends InitialDirContext{
6
7     DirContext ctx; 
8
9     public CmuDirContext(Hashtable env)
10         throws NamingException{
11
12         Hashtable env1 = new Hashtable(11);
13         env1.put(Context.INITIAL_CONTEXT_FACTORY,
14                "com.sun.jndi.ldap.LdapCtxFactory");
15
16         env1.put(Context.PROVIDER_URL, env.get(Context.PROVIDER_URL));
17         ctx = new InitialDirContext(env1);
18     }
19
20     
21     public Object lookup(String s) throws NamingException{
22         String uid = null;
23
24         int i = s.indexOf("=");
25         if(i >= 0)
26             uid = s.substring(i+1);
27         else
28             uid = s;
29
30         NamingEnumeration ne = ctx.search("", "cmuAndrewId="+uid, null, null);
31
32         if(ne != null && ne.hasMoreElements()){
33             SearchResult rs = (SearchResult)ne.nextElement();
34             String guid = (String)rs.getAttributes().get("GUID").get();
35             return ctx.lookup("guid="+guid);
36         }
37         return null;
38     }
39     
40     public Attributes getAttributes(String name, String[] ids)
41         throws NamingException{
42         return ctx.getAttributes(name, ids);
43     }
44 }