Author: erodriguez
Date: Mon Nov  1 18:43:32 2004
New Revision: 56328

Modified:
   
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/kdc/store/LdapStore.java
Log:
LdapStore now handles NamingExceptions interally and simply returns a null 
principal to calling services.

Modified: 
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/kdc/store/LdapStore.java
==============================================================================
--- 
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/kdc/store/LdapStore.java
 (original)
+++ 
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/kdc/store/LdapStore.java
 Mon Nov  1 18:43:32 2004
@@ -106,54 +106,48 @@
 
                        ctx.close();
                } catch (NamingException e) {
-                       e.printStackTrace();
+                       _entry = null;
                }
        }
 
-       private void search(DirContext ctx) {
+       private void search(DirContext ctx) throws NamingException {
                
-               try {
-                       String[] attrIDs = {LdapStore.PRINCIPAL_NAME, 
LdapStore.KEY_VERSION_NUMBER,
-                                                               
LdapStore.ENCRYPTION_TYPE, LdapStore.KEY};
+               String[] attrIDs = {LdapStore.PRINCIPAL_NAME, 
LdapStore.KEY_VERSION_NUMBER,
+                                                       
LdapStore.ENCRYPTION_TYPE, LdapStore.KEY};
 
-                       Attributes matchAttrs = new BasicAttributes(false); // 
case-sensitive
-                       matchAttrs.put(new 
BasicAttribute(LdapStore.PRINCIPAL_NAME, _principal));
-                       matchAttrs.put(new BasicAttribute(LdapStore.KEY));
-                       matchAttrs.put(new 
BasicAttribute(LdapStore.ENCRYPTION_TYPE));
-                       matchAttrs.put(new 
BasicAttribute(LdapStore.KEY_VERSION_NUMBER));
+               Attributes matchAttrs = new BasicAttributes(false); // 
case-sensitive
+               matchAttrs.put(new BasicAttribute(LdapStore.PRINCIPAL_NAME, 
_principal));
+               matchAttrs.put(new BasicAttribute(LdapStore.KEY));
+               matchAttrs.put(new BasicAttribute(LdapStore.ENCRYPTION_TYPE));
+               matchAttrs.put(new 
BasicAttribute(LdapStore.KEY_VERSION_NUMBER));
 
-                       // Search for objects that have those matching 
attributes
-                       NamingEnumeration answer = ctx.search("", matchAttrs, 
attrIDs);
-                       
+               // Search for objects that have those matching attributes
+               NamingEnumeration answer = ctx.search("", matchAttrs, attrIDs);
+               
+               if (answer.hasMore()) {
                        getFirstEntry(answer);
-                       
-               } catch (NamingException e) {
-                       System.err.println("Problem getting attribute: " + e);
                }
        }
 
-       private void getFirstEntry(NamingEnumeration enum) {
+       private void getFirstEntry(NamingEnumeration enum) throws 
NamingException {
                
                PrincipalStoreEntryModifier modifier = new 
PrincipalStoreEntryModifier();
                
-               try {
-                       SearchResult sr = (SearchResult) enum.next();
-                       if (sr != null) {
-                               Attributes attrs = sr.getAttributes();
-                               
-                               String principal        = (String) 
attrs.get(LdapStore.PRINCIPAL_NAME).get();
-                               String encryptionType   = (String) 
attrs.get(LdapStore.ENCRYPTION_TYPE).get();
-                               String keyVersionNumber = (String) 
attrs.get(LdapStore.KEY_VERSION_NUMBER).get();
-                               byte[] keyBytes         = (byte[]) 
attrs.get(LdapStore.KEY).get();
-                               
-                               modifier.setPrincipal(new 
KerberosPrincipal(principal));
-                               
modifier.setEncryptionType(Integer.parseInt(encryptionType));
-                               
modifier.setKeyVersionNumber(Integer.parseInt(keyVersionNumber));
-                               modifier.setKey(keyBytes);
-                       }
-               } catch (NamingException e) {
-                       e.printStackTrace();
+               SearchResult sr = (SearchResult) enum.next();
+               if (sr != null) {
+                       Attributes attrs = sr.getAttributes();
+                       
+                       String principal        = (String) 
attrs.get(LdapStore.PRINCIPAL_NAME).get();
+                       String encryptionType   = (String) 
attrs.get(LdapStore.ENCRYPTION_TYPE).get();
+                       String keyVersionNumber = (String) 
attrs.get(LdapStore.KEY_VERSION_NUMBER).get();
+                       byte[] keyBytes         = (byte[]) 
attrs.get(LdapStore.KEY).get();
+                       
+                       modifier.setPrincipal(new KerberosPrincipal(principal));
+                       
modifier.setEncryptionType(Integer.parseInt(encryptionType));
+                       
modifier.setKeyVersionNumber(Integer.parseInt(keyVersionNumber));
+                       modifier.setKey(keyBytes);
                }
+               
                _entry = modifier.getEntry();
        }
 }

Reply via email to