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();
}
}