diff options
author | Endi S. Dewata <edewata@redhat.com> | 2014-04-29 16:28:23 -0400 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2014-05-05 14:57:47 -0400 |
commit | b381c23ea5f3233adbd2e5a16ec124115d1cd936 (patch) | |
tree | da91e568f7a5f817ad876e00ec5d749197f42ea8 /base/server/cms/src/com/netscape/cms/servlet/csadmin | |
parent | 8084199ce991d44023cbd1515d735c795100c911 (diff) | |
download | pki-b381c23ea5f3233adbd2e5a16ec124115d1cd936.tar.gz pki-b381c23ea5f3233adbd2e5a16ec124115d1cd936.tar.xz pki-b381c23ea5f3233adbd2e5a16ec124115d1cd936.zip |
Fixed ConfigurationUtils.setupDBUser().
Previously the ConfigurationUtils.setupDBUser() was using findUsers()
to get a list of users and then only use the first one. It has been
replaced with getUser() which will return the user directly. If the
user doesn't exist, findUsers() will throw an exception whereas the
getUser() will return null, so the try-catch block has been removed.
Ticket #920
Diffstat (limited to 'base/server/cms/src/com/netscape/cms/servlet/csadmin')
-rw-r--r-- | base/server/cms/src/com/netscape/cms/servlet/csadmin/ConfigurationUtils.java | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/base/server/cms/src/com/netscape/cms/servlet/csadmin/ConfigurationUtils.java b/base/server/cms/src/com/netscape/cms/servlet/csadmin/ConfigurationUtils.java index 6f37de735..b541441c5 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/csadmin/ConfigurationUtils.java +++ b/base/server/cms/src/com/netscape/cms/servlet/csadmin/ConfigurationUtils.java @@ -3774,36 +3774,42 @@ public class ConfigurationUtils { public static void setupDBUser() throws CertificateException, LDAPException, EBaseException, NotInitializedException, ObjectNotFoundException, TokenException, IOException { - IUGSubsystem system = - (IUGSubsystem) (CMS.getSubsystem(IUGSubsystem.ID)); - try { - @SuppressWarnings("unused") - Enumeration<IUser> dbusers = system.findUsers(DBUSER); - CMS.debug("DB User already exists: " + DBUSER); + IUGSubsystem system = (IUGSubsystem) CMS.getSubsystem(IUGSubsystem.ID); + + // checking existing user + IUser user = system.getUser(DBUSER); + + if (user != null) { + // user found + CMS.debug("setupDBUser(): user already exists: " + DBUSER); return; - } catch (EUsrGrpException e) { - CMS.debug("Creating DB User: " + DBUSER); } + // user not found + CMS.debug("setupDBUser(): creating user: " + DBUSER); + String b64 = getSubsystemCert(); if (b64 == null) { CMS.debug("setupDBUser(): failed to fetch subsystem cert"); throw new EBaseException("setupDBUser(): failed to fetch subsystem cert"); } - IUser user = system.createUser(DBUSER); + user = system.createUser(DBUSER); user.setFullName(DBUSER); user.setEmail(""); user.setPassword(""); user.setUserType("agentType"); user.setState("1"); user.setPhone(""); + X509CertImpl[] certs = new X509CertImpl[1]; certs[0] = new X509CertImpl(CMS.AtoB(b64)); user.setX509Certificates(certs); + system.addUser(user); CMS.debug("setupDBUser(): successfully added the user"); + system.addUserCert(user); CMS.debug("setupDBUser(): successfully add the user certificate"); @@ -3811,7 +3817,7 @@ public class ConfigurationUtils { system.addCertSubjectDN(user); // remove old db users - CMS.debug("Removing seeAlso from old dbusers"); + CMS.debug("setupDBUser(): removing seeAlso from old dbusers"); removeOldDBUsers(certs[0].getSubjectDN().toString()); } |