No pb. ;)

Think about posting to the user's mailing list next time.
These kind of threads should be located there.

Regards,
Pierre-Arnaud

On 11 sept. 2012, at 17:03, Merve Temizer <[email protected]> wrote:

> Sorry :( I hope next time be more careful :(
> 
> 2012/9/11 Pierre-Arnaud Marcelot <[email protected]>
> 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 <[email protected]> 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 <[email protected]>
>> 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 <[email protected]>
>> 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/
>> 
>> -- 
>> Regards,
>> Cordialement,
>> Emmanuel Lécharny
>> www.iktek.com
>> 
>> 
>> 
> 
> 

Reply via email to