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 15:03:36 GMT
Sorry :( I hope next time be more careful :(

2012/9/11 Pierre-Arnaud Marcelot <pa@marcelot.net>

> Hum... Hum... Don't you think there's something wrong here if you want to
> require the 'ou' attribute on you search results ?!?
>
> String[] attrIDs = { "dc", "objectClass" };
>
>
> Regards,
> Pierre-Arnaud
>
> PS: Small hints:
> - To require no user attributes at all, you can use the '1.1' shortcut as
> attribute id.
> - To require all user attributes, you can use the '*' shortcut as
> attribute id.
> - To require all operational attributes, you can use the '+' shortcut as
> attribute it.
>
> On 11 sept. 2012, at 16:52, Merve Temizer <mervet2009@gmail.com> wrote:
>
> 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