ConfigDirValidator.java revision 80c77071c6700660c39046da32a0d7953620f608
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/**
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * The contents of this file are subject to the terms
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * of the Common Development and Distribution License
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * (the License). You may not use this file except in
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * compliance with the License.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * You can obtain a copy of the License at
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * https://opensso.dev.java.net/public/CDDLv1.0.html or
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * opensso/legal/CDDLv1.0.txt
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * See the License for the specific language governing
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * permission and limitations under the License.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * When distributing Covered Code, include this CDDL
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Header Notice in each file and include the License file
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * at opensso/legal/CDDLv1.0.txt.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * If applicable, add the following below the CDDL Header,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * with the fields enclosed by brackets [] replaced by
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * your own identifying information:
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * "Portions Copyrighted [year] [name of copyright owner]"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * $Id: ConfigDirValidator.java,v 1.3 2008/06/25 05:52:11 qcheng Exp $
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncpackage com.sun.identity.agents.install.appserver.v81;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncimport java.util.HashMap;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncimport java.util.Map;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncimport com.sun.identity.install.tools.configurator.IStateAccess;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncimport com.sun.identity.install.tools.configurator.InstallException;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncimport com.sun.identity.install.tools.configurator.ValidationResult;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncimport com.sun.identity.install.tools.configurator.ValidationResultStatus;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncimport com.sun.identity.install.tools.configurator.ValidatorBase;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncimport com.sun.identity.install.tools.util.Debug;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncimport com.sun.identity.install.tools.util.FileUtils;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncimport com.sun.identity.install.tools.util.LocalizedMessage;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncimport com.sun.identity.agents.install.appserver.IConfigKeys;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/**
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * The configuration directory validation class for installation
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncpublic class ConfigDirValidator extends ValidatorBase
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync implements IConstants, IConfigKeys {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync /**
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Default constrcutor
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync public ConfigDirValidator() throws InstallException {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync super();
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync }
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync public ValidationResult isConfigDirValid(String configDir, Map props,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync IStateAccess state) {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ValidationResultStatus validRes =
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ValidationResultStatus.STATUS_FAILED;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync LocalizedMessage returnMessage = null;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync if((configDir != null) && (configDir.trim().length() >= 0)) {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync // The config dir has been normalized to have "/" only
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync String domainXmlFile = configDir + STR_FORWARD_SLASH +
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync STR_DOMAIN_XML;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync String loginConfFile = configDir + STR_FORWARD_SLASH +
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync STR_LOGIN_CONF;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync String serverPolicyFile = configDir + STR_FORWARD_SLASH +
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync STR_SERVER_POLICY;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync if ((FileUtils.isFileValid(domainXmlFile)) &&
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (FileUtils.isFileValid(loginConfFile)) &&
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (FileUtils.isFileValid(serverPolicyFile))) {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync // store inst config dir, domain.xml, login.conf, server.policy
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync // file locations in install state
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync state.put(STR_KEY_AS_DOMAIN_XML_FILE,domainXmlFile);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync state.put(STR_KEY_AS_LOGIN_CONF_FILE,loginConfFile);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync state.put(STR_KEY_AS_SERVER_POLICY_FILE,serverPolicyFile);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync returnMessage =
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync LocalizedMessage.get(LOC_VA_MSG_AS_VAL_CONFIG_DIR,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync STR_AS_GROUP,new Object[] {configDir});
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync validRes = ValidationResultStatus.STATUS_SUCCESS;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync }
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync }
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync if (validRes.getIntValue() ==
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ValidationResultStatus.INT_STATUS_FAILED) {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync returnMessage =
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync LocalizedMessage.get(LOC_VA_WRN_AS_IN_VAL_CONFIG_DIR,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync STR_AS_GROUP,new Object[] {configDir});
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync }
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync Debug.log("ConfigDirValidator : Is AS Config dir " +
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync configDir + " valid ? " + validRes.isSuccessful());
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync return new ValidationResult(validRes,null,returnMessage);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync }
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync public void initializeValidatorMap() throws InstallException {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync Class[] paramObjs = {String.class,Map.class,IStateAccess.class};
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync try {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync getValidatorMap().put("VALID_AS_CONFIG_DIR",
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync this.getClass().getMethod("isConfigDirValid",paramObjs));
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync } catch (NoSuchMethodException nsme) {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync Debug.log("ConfigDirValidator: NoSuchMethodException " +
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "thrown while loading method :",nsme);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync throw new InstallException(LocalizedMessage.get(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync LOC_VA_ERR_VAL_METHOD_NOT_FOUND),nsme);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync } catch (SecurityException se){
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync Debug.log("ConfigDirValidator: SecurityException thrown "
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync + "while loading method :",se);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync throw new InstallException(LocalizedMessage.get(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync LOC_VA_ERR_VAL_METHOD_NOT_FOUND),se);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync } catch (Exception ex){
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync Debug.log("ConfigDirValidator: Exception thrown while " +
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "loading method :",ex);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync throw new InstallException(LocalizedMessage.get(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync LOC_VA_ERR_VAL_METHOD_NOT_FOUND),ex);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync }
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync }
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync /** Hashmap of Validator names and integers */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync Map validMap = new HashMap();
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync public static String STR_DOMAIN_XML = "domain.xml";
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync public static String STR_LOGIN_CONF = "login.conf";
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync public static String STR_SERVER_POLICY = "server.policy";
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync /*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Localized constants
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync public static String LOC_VA_MSG_AS_VAL_CONFIG_DIR =
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "VA_MSG_AS_VAL_CONFIG_DIR";
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync public static String LOC_VA_WRN_AS_IN_VAL_CONFIG_DIR =
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync "VA_WRN_AS_IN_VAL_CONFIG_DIR";
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync}
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync