/* * Copyright 2013 Robert von Burg <eitch@eitchnet.ch> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package li.strolch.privilege.helper; import java.io.File; import java.util.HashMap; import java.util.Map; import li.strolch.privilege.handler.PrivilegeHandler; import li.strolch.privilege.model.internal.PrivilegeContainerModel; import li.strolch.privilege.xml.PrivilegeConfigDomWriter; /** * <p> * This class is a simple application which can be used to bootstrap a new configuration for the * {@link PrivilegeHandler} * </p> * * <p> * Simple execute the application and it will ask a few questions and then write a new set of configuration files which * can be used to run the {@link PrivilegeHandler} * </p> * * <p> * <b>Note:</b>This class is not yet implemented! * </p> * * @author Robert von Burg <eitch@eitchnet.ch> */ @SuppressWarnings("nls") public class BootstrapConfigurationHelper { // private static final Logger logger = Loggerdoc.getLogger(BootstrapConfigurationHelper.class); private static String path; private static String defaultPrivilegeContainerXmlFile = "Privilege.xml"; //private static String basePath = ""; //private static String modelFileName = "PrivilegeUsers.xml"; //private static String hashAlgorithm = "SHA-256"; private static String defaultPersistenceHandler = "li.strolch.privilege.handler.DefaultPersistenceHandler"; private static String defaultEncryptionHandler = "li.strolch.privilege.handler.DefaultEncryptionHandler"; /** * @param args * the args from the command line */ public static void main(String[] args) { // get current directory BootstrapConfigurationHelper.path = System.getProperty("user.dir") + "/newConfig"; // TODO ask user where to save configuration, default is pwd/newConfig/.... // see if path already exists File pathF = new File(BootstrapConfigurationHelper.path); if (pathF.exists()) { throw new RuntimeException("Path already exists: " + pathF.getAbsolutePath()); } if (!pathF.mkdirs()) { throw new RuntimeException("Could not create path " + pathF.getAbsolutePath()); } Map<String, String> parameterMap = new HashMap<>(); Map<String, String> encryptionHandlerParameterMap = new HashMap<>(); Map<String, String> persistenceHandlerParameterMap = new HashMap<>(); // TODO ask other questions... parameterMap.put("autoPersistOnPasswordChange", "true"); encryptionHandlerParameterMap.put("hashAlgorithm", "SHA-256"); persistenceHandlerParameterMap.put("basePath", "./target/test"); persistenceHandlerParameterMap.put("modelXmlFile", "PrivilegeModel.xml"); PrivilegeContainerModel containerModel = new PrivilegeContainerModel(); containerModel.setParameterMap(parameterMap); containerModel.setEncryptionHandlerClassName(defaultEncryptionHandler); containerModel.setEncryptionHandlerParameterMap(encryptionHandlerParameterMap); containerModel.setPersistenceHandlerClassName(defaultPersistenceHandler); containerModel.setPersistenceHandlerParameterMap(persistenceHandlerParameterMap); containerModel.addPolicy("DefaultPrivilege", "li.strolch.privilege.policy.DefaultPrivilege"); // now perform work: File configFile = new File(BootstrapConfigurationHelper.path + "/" + BootstrapConfigurationHelper.defaultPrivilegeContainerXmlFile); PrivilegeConfigDomWriter configSaxWriter = new PrivilegeConfigDomWriter(containerModel, configFile); configSaxWriter.write(); } }