summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java')
-rw-r--r--pki/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java325
1 files changed, 0 insertions, 325 deletions
diff --git a/pki/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java b/pki/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java
deleted file mode 100644
index 585af5600..000000000
--- a/pki/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java
+++ /dev/null
@@ -1,325 +0,0 @@
-// --- BEGIN COPYRIGHT BLOCK ---
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-//
-// (C) 2007 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-package com.netscape.cmscore.profile;
-
-import java.io.File;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-import com.netscape.certsrv.apps.CMS;
-import com.netscape.certsrv.base.EBaseException;
-import com.netscape.certsrv.base.IConfigStore;
-import com.netscape.certsrv.base.ISubsystem;
-import com.netscape.certsrv.profile.EProfileException;
-import com.netscape.certsrv.profile.IProfile;
-import com.netscape.certsrv.profile.IProfileSubsystem;
-import com.netscape.certsrv.registry.IPluginInfo;
-import com.netscape.certsrv.registry.IPluginRegistry;
-
-public class ProfileSubsystem implements IProfileSubsystem {
- private static final String PROP_LIST = "list";
- private static final String PROP_CLASS_ID = "class_id";
- private static final String PROP_CONFIG = "config";
- private static final String PROP_CHECK_OWNER = "checkOwner";
-
- private static final String PROP_ENABLE = "enable";
- private static final String PROP_ENABLE_BY = "enableBy";
-
- private IConfigStore mConfig = null;
- private ISubsystem mOwner = null;
- private Vector<String> mProfileIds = new Vector<String>();
- private Hashtable<String, IProfile> mProfiles = new Hashtable<String, IProfile>();
- private Hashtable<String, String> mProfileClassIds = new Hashtable<String, String>();
-
- /**
- * Retrieves the name of this subsystem.
- */
- public String getId() {
- return null;
- }
-
- /**
- * Sets specific to this subsystem.
- */
- public void setId(String id) throws EBaseException {
- }
-
- /**
- * Initializes this subsystem with the given configuration
- * store.
- * <P>
- *
- * @param owner owner of this subsystem
- * @param config configuration store
- * @exception EBaseException failed to initialize
- */
- public void init(ISubsystem owner, IConfigStore config)
- throws EBaseException {
- CMS.debug("ProfileSubsystem: start init");
- IPluginRegistry registry = (IPluginRegistry)
- CMS.getSubsystem(CMS.SUBSYSTEM_REGISTRY);
-
- mConfig = config;
- mOwner = owner;
-
- // Configuration File Format:
- // *.list=profile1,profile2
- // *.profile1.class=com.netscape.cms.profile.common.BasicProfile
- // *.profile1.config=config/profiles/profile1.cfg
- // *.profile2.class=com.netscape.cms.profile.common.BasicProfile
- // *.profile2.config=config/profiles/profile2.cfg
-
- // read profile id, implementation, and its configuration files
- String ids = config.getString(PROP_LIST, "");
- StringTokenizer st = new StringTokenizer(ids, ",");
-
- while (st.hasMoreTokens()) {
- String id = (String) st.nextToken();
- IConfigStore subStore = config.getSubStore(id);
- String classid = subStore.getString(PROP_CLASS_ID);
- IPluginInfo info = registry.getPluginInfo("profile", classid);
- String configPath = subStore.getString(PROP_CONFIG);
-
- CMS.debug("Start Profile Creation - " + id + " " + classid + " " + info.getClassName());
- createProfile(id, classid, info.getClassName(),
- configPath);
-
- CMS.debug("Done Profile Creation - " + id);
- }
-
- Enumeration<String> ee = getProfileIds();
-
- while (ee.hasMoreElements()) {
- String id = (String) ee.nextElement();
-
- CMS.debug("Registered Confirmation - " + id);
- }
- }
-
- /**
- * Creates a profile instance.
- */
- public IProfile createProfile(String id, String classid, String className,
- String configPath)
- throws EProfileException {
- IProfile profile = null;
-
- try {
- profile = (IProfile) Class.forName(className).newInstance();
- IConfigStore subStoreConfig = CMS.createFileConfigStore(configPath);
-
- CMS.debug("ProfileSubsystem: initing " + className);
- profile.setId(id);
- profile.init(this, subStoreConfig);
- mProfileIds.addElement(id);
- mProfiles.put(id, profile);
- mProfileClassIds.put(id, classid);
- return profile;
- } catch (Exception e) {
- // throw exceptions
- CMS.debug(e.toString());
- CMS.debug(e);
- }
- return null;
- }
-
- public void deleteProfile(String id, String configPath) throws EProfileException {
-
- if (isProfileEnable(id)) {
- throw new EProfileException("CMS_PROFILE_DELETE_ENABLEPROFILE");
- }
-
- String ids = "";
- try {
- ids = mConfig.getString(PROP_LIST, "");
- } catch (Exception e) {
- }
-
- StringTokenizer tokenizer = new StringTokenizer(ids, ",");
- String list = "";
-
- while (tokenizer.hasMoreTokens()) {
- String element = (String) tokenizer.nextToken();
-
- if (!element.equals(id)) {
- list = list + element + ",";
- }
- }
- if (!list.equals(""))
- list = list.substring(0, list.length() - 1);
-
- mConfig.putString(PROP_LIST, list);
- mConfig.removeSubStore(id);
- File file1 = new File(configPath);
-
- file1.delete();
- mProfileIds.removeElement(id);
- mProfiles.remove(id);
- mProfileClassIds.remove(id);
- try {
- CMS.getConfigStore().commit(false);
- } catch (Exception e) {
- }
- }
-
- public void createProfileConfig(String id, String classId,
- String configPath)
- throws EProfileException {
- try {
- if (mProfiles.size() > 0) {
- mConfig.putString(PROP_LIST,
- mConfig.getString(PROP_LIST) + "," + id);
- } else {
- mConfig.putString(PROP_LIST, id);
- }
- mConfig.putString(id + "." + PROP_CLASS_ID, classId);
- mConfig.putString(id + "." + PROP_CONFIG, configPath);
- CMS.getConfigStore().commit(true);
- } catch (EBaseException e) {
- CMS.debug(e.toString());
- }
- }
-
- /**
- * Notifies this subsystem if owner is in running mode.
- */
- public void startup() throws EBaseException {
- CMS.debug("ProfileSubsystem: startup");
- }
-
- /**
- * Stops this system. The owner may call shutdown
- * anytime after initialization.
- * <P>
- */
- public void shutdown() {
- mProfileIds.removeAllElements();
- mProfiles.clear();
- mProfiles = null;
- mProfileClassIds.clear();
- mProfileClassIds = null;
- }
-
- /**
- * Returns the root configuration storage of this system.
- * <P>
- *
- * @return configuration store of this subsystem
- */
- public IConfigStore getConfigStore() {
- return mConfig;
- }
-
- /**
- * Adds a profile.
- */
- public void addProfile(String id, IProfile profile)
- throws EProfileException {
- }
-
- public boolean isProfileEnable(String id) {
- IProfile profile = (IProfile) mProfiles.get(id);
- String enable = null;
-
- try {
- enable = profile.getConfigStore().getString(PROP_ENABLE);
- } catch (EBaseException e) {
- }
- if (enable == null || enable.equals("false"))
- return false;
- else
- return true;
- }
-
- public String getProfileEnableBy(String id) {
- if (!isProfileEnable(id))
- return null;
- IProfile profile = mProfiles.get(id);
- String enableBy = null;
-
- try {
- enableBy = profile.getConfigStore().getString(PROP_ENABLE_BY);
- } catch (EBaseException e) {
- }
- return enableBy;
- }
-
- /**
- * Enables a profile for execution.
- */
- public void enableProfile(String id, String enableBy)
- throws EProfileException {
- IProfile profile = (IProfile) mProfiles.get(id);
-
- profile.getConfigStore().putString(PROP_ENABLE, "true");
- profile.getConfigStore().putString(PROP_ENABLE_BY, enableBy);
- try {
- profile.getConfigStore().commit(false);
- } catch (EBaseException e) {
- }
- }
-
- /**
- * Disables a profile for execution.
- */
- public void disableProfile(String id)
- throws EProfileException {
- IProfile profile = (IProfile) mProfiles.get(id);
-
- profile.getConfigStore().putString(PROP_ENABLE, "false");
- try {
- profile.getConfigStore().commit(false);
- } catch (EBaseException e) {
- }
- }
-
- /**
- * Retrieves a profile by id.
- */
- public IProfile getProfile(String id)
- throws EProfileException {
- return mProfiles.get(id);
- }
-
- public String getProfileClassId(String id) {
- return mProfileClassIds.get(id);
- }
-
- /**
- * Retrieves a list of profile ids. The return
- * list is of type String.
- */
- public Enumeration<String> getProfileIds() {
- return mProfileIds.elements();
- }
-
- /**
- * Checks if owner id should be enforced during profile approval.
- *
- * @return true if approval should be checked
- */
- public boolean checkOwner() {
- try {
- return mConfig.getBoolean(PROP_CHECK_OWNER, false);
- } catch (EBaseException e) {
- return false;
- }
- }
-}