Package org.ejbca.ui.web.admin.configuration

Source Code of org.ejbca.ui.web.admin.configuration.GlobalConfigurationDataHandler

/*************************************************************************
*                                                                       *
*  EJBCA: The OpenSource Certificate Authority                          *
*                                                                       *
*  This software is free software; you can redistribute it and/or       *
*  modify it under the terms of the GNU Lesser General Public           *
*  License as published by the Free Software Foundation; either         *
*  version 2.1 of the License, or any later version.                    *
*                                                                       *
*  See terms of license at gnu.org.                                     *
*                                                                       *
*************************************************************************/

package org.ejbca.ui.web.admin.configuration;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import org.ejbca.config.GlobalConfiguration;
import org.ejbca.config.WebConfiguration;
import org.ejbca.core.ejb.authorization.AuthorizationSessionLocal;
import org.ejbca.core.ejb.config.GlobalConfigurationSessionLocal;
import org.ejbca.core.model.authorization.AuthorizationDeniedException;
import org.ejbca.core.model.log.Admin;

/**
* A class handling the saving and loading of global configuration data.
* By default all data are saved to a database.
*
* @author  Philip Vendil
* @version $Id: GlobalConfigurationDataHandler.java 11526 2011-03-16 12:03:24Z netmackan $
*/
public class GlobalConfigurationDataHandler implements java.io.Serializable {
   
  private static final long serialVersionUID = 2L;
    private static InitialContext initialContext;  // Expensive to create
  private GlobalConfigurationSessionLocal globalconfigurationsession;
    private AuthorizationSessionLocal authorizationsession;
    private Admin administrator;

    /** Creates a new instance of GlobalConfigurationDataHandler */
    public GlobalConfigurationDataHandler(Admin administrator, GlobalConfigurationSessionLocal globalconfigurationsession, AuthorizationSessionLocal authorizationsession){
        this.globalconfigurationsession = globalconfigurationsession;
        this.authorizationsession = authorizationsession;
        this.administrator = administrator;
    }
   
    public GlobalConfiguration loadGlobalConfiguration() throws NamingException{
        GlobalConfiguration ret = null;
        // TODO: These should be dropped or moved to property files!!
        ret = globalconfigurationsession.getCachedGlobalConfiguration(administrator);
        if (initialContext == null) {
            initialContext = new InitialContext();
        }
        Context myenv = (Context) initialContext.lookup("java:comp/env");     
        ret.initialize( (String) myenv.lookup("ADMINDIRECTORY"),
            WebConfiguration.getAvailableLanguages(), (String) myenv.lookup("AVAILABLETHEMES"),
                ""+WebConfiguration.getPublicHttpPort(), ""+WebConfiguration.getPrivateHttpsPort(),
                (String) myenv.lookup("PUBLICPROTOCOL"),(String) myenv.lookup("PRIVATEPROTOCOL"));
        return ret;
    }
   
    public void saveGlobalConfiguration(GlobalConfiguration gc) throws AuthorizationDeniedException {
        if(this.authorizationsession.isAuthorizedNoLog(administrator, "/super_administrator")) {
            globalconfigurationsession.saveGlobalConfiguration(administrator,  gc);
        }
    }
}
TOP

Related Classes of org.ejbca.ui.web.admin.configuration.GlobalConfigurationDataHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.