directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Merve Temizer <mervet2...@gmail.com>
Subject Re: Empty/Null Attribute
Date Tue, 11 Sep 2012 14:52:14 GMT
The method:

public static List<OrganizationPojo> getOrganizations(String searchBaseDn){
 Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldap://localhost:10389");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL,"uid=admin,ou=system"); //
specify the username
        env.put(Context.SECURITY_CREDENTIALS,"secret");// specify the
password
       // TODO code application logic here

                 // entry's DN
   List<OrganizationPojo> organizationPojoList = new
ArrayList<OrganizationPojo>();
   DirContext ctx = null;

   try {
       // get a handle to an Initial DirContext
       ctx = new InitialDirContext(env);
       String[] attrIDs = { "dc", "objectClass" };

       SearchControls ctls = new SearchControls();
       ctls.setReturningAttributes(attrIDs);

       String filter = "(&(dc=*) (objectClass=organizationalUnit) (ou=*))";

       NamingEnumeration answer = ctx.search(searchBaseDn, filter, ctls);
       try
     {
         while (answer.hasMore())
         {
     SearchResult sr = (SearchResult) answer.next();
     OrganizationPojo organizationPojo = new OrganizationPojo();
     organizationPojo.setOrgDn((String)sr.getNameInNamespace());
     LdapName dn = new LdapName((String)sr.getNameInNamespace());
     LdapName rdn = new LdapName((String)sr.getName());
     for(int i=0;(i<rdn.size() && dn.size()>0);i++){
     dn.remove(dn.size()-1);
     }
     for (NamingEnumeration ae = sr.getAttributes().getAll();
ae.hasMore();) {
         Attribute attr = (Attribute)ae.next();
         System.out.println("attribute: " + attr.getID());
         /* Print each value */
         for (NamingEnumeration e = attr.getAll(); e.hasMore();
      System.out.println("value: " + e.next()));
     }
     organizationPojo.setOrgParentDn(dn.toString());
     organizationPojo.setOrgDc((String)sr.getAttributes().get("dc").get());
     organizationPojo.setOrgOu((String)sr.getAttributes().get("ou").get());


organizationPojo.setOrgName((String)sr.getAttributes().get("orgName").get());

organizationPojo.setOrgPhone((String)sr.getAttributes().get("orgPhone").get());

organizationPojo.setOrgFax((String)sr.getAttributes().get("orgFax").get());

organizationPojo.setOrgContactName((String)sr.getAttributes().get("orgContactName").get());

organizationPojo.setOrgCountry((String)sr.getAttributes().get("orgCountry").get());

organizationPojo.setOrgCity((String)sr.getAttributes().get("orgCity").get());

organizationPojo.setOrgAddress((String)sr.getAttributes().get("orgAddress").get());


     organizationPojoList.add(organizationPojo);
         }
     }
     catch (NamingException e)
     {
         if (e instanceof javax.naming.PartialResultException)
         {
     // ignore
         }
         else
         {
     e.printStackTrace();
         }
     }
    ctx.close();


   } catch (Exception e) {
       System.err.println("Error: Search organizations:" + e);
   }
   return organizationPojoList;
}

2012/9/11 Merve Temizer <mervet2009@gmail.com>

> According to page
>
> http://docs.oracle.com/javase/jndi/tutorial/basics/directory/getattrs.html
>
> I have tried
>
> for (NamingEnumeration ae = sr.getAttributes().getAll(); ae.hasMore();) {
>          Attribute attr = (Attribute)ae.next();
>          System.out.println("attribute: " + attr.getID());
>          /* Print each value */
>          for (NamingEnumeration e = attr.getAll(); e.hasMore();
>       System.out.println("value: " + e.next()));
>      }
> Output:
>
> attribute: dc
> value: is
> attribute: objectClass
> value: extensibleObject
> value: organizationalUnit
> value: top
>
> Can not see ou attribute. Sorry for simple questions but i did what
> tutorial tells.
>
>
> 2012/9/11 Emmanuel Lécharny <elecharny@gmail.com>
>
>> Le 9/11/12 2:54 PM, Merve Temizer a écrit :
>>
>>  Hello,
>>>
>>> I have some objectClasses and dc and ou attributes and their values, in
>>> an
>>> entry in LDAP.
>>> I try to read ou attribute but i cant get it with below code.
>>> I can get dc value correctly.
>>> I know i must control if it is null, but why might "ou" be null despite
>>> of
>>> taking place in LDAP.
>>>
>>> NamingEnumeration answer = ctx.search(searchBaseDn, filter, ctls);
>>>         try
>>>       {
>>>           while (answer.hasMore())
>>>           {
>>>       SearchResult sr = (SearchResult) answer.next();
>>>       OrganizationPojo organizationPojo = new OrganizationPojo();
>>>       organizationPojo.setOrgDc((**String)sr.getAttributes().get(**
>>> "dc").get());
>>>       organizationPojo.setOrgOu((**String)sr.getAttributes().get(**
>>> "ou").get());
>>>
>>>  http://docs.oracle.com/javase/**jndi/tutorial/<http://docs.oracle.com/javase/jndi/tutorial/>
>>
>> --
>> Regards,
>> Cordialement,
>> Emmanuel Lécharny
>> www.iktek.com
>>
>>
>

Mime
View raw message