⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configureuserdatabaseform.java

📁 这是linux下ssl vpn的实现程序
💻 JAVA
字号:
package com.sslexplorer.install.forms;

import java.util.Iterator;
import java.util.Map;
import java.util.Properties;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionMapping;

import com.sslexplorer.core.CoreServlet;
import com.sslexplorer.core.PropertyUtil;
import com.sslexplorer.core.UserDatabaseManager;
import com.sslexplorer.properties.PropertyItem;
import com.sslexplorer.security.Constants;
import com.sslexplorer.security.User;
import com.sslexplorer.security.UserDatabase;
import com.sslexplorer.wizard.AbstractWizardSequence;
import com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm;

public class ConfigureUserDatabaseForm extends AbstractWizardPropertiesForm {
    
    
    final static Log log = LogFactory.getLog(ConfigureUserDatabaseForm.class);
    
    private UserDatabase userDatabase;

    public ConfigureUserDatabaseForm() {
        super();
    }

    public String getPropertyScope() {
        return "setup";
    }

    public User getPropertyUser() {
        return null;
    }

    public int getParentCategory() {
        return userDatabase.getInstallationPropertyCategory();
    }

    public boolean getNextAvailable() {
        return true;
    }

    public boolean getPreviousAvailable() {
        return true;
    }

    public boolean getFinishAvailable() {
        return false;
    }

    public String getPage() {
        return "/WEB-INF/jsp/content/install/configureUserDatabase.jspf";
    }

    public String getResourcePrefix() {
        return "installation.configureUserDatabase";
    }

    public String getResourceBundle() {
        return "install";
    }

    public String getPageName() {
        return "configureUserDatabase";
    }

    public String getFocussedField() {
        return "";
    }

    /* (non-Javadoc)
     * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#reset(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest)
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        super.reset(mapping, request);
        
        /* Determine the currently selected user database so it can be used to determine the
         * category to display
         */
        AbstractWizardSequence seq = getWizardSequence(request);
        String udbName = (String)seq.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE, "builtIn");
        try {
            userDatabase = UserDatabaseManager.getInstance().getUserDatabase(udbName);
            
            try {
	            if(userDatabase.isOpen()) {
	            	userDatabase.close();
	            }

                userDatabase.open(CoreServlet.getServlet());
            } catch(Throwable t) {
              // Ignore
            }
            
        } catch (Exception e) {
            log.error("Failed to get user database " + udbName + ".", e);
        }
    }

    public boolean getAutocomplete() {
        return false;
    }

    public String getProfileScope() {
        return Constants.SCOPE_SETUP;
    }

    /* (non-Javadoc)
     * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#init(com.sslexplorer.wizard.AbstractWizardSequence)
     */
    public void init(AbstractWizardSequence sequence, HttpServletRequest request) throws Exception {
        super.init(sequence, request);
    }

    public int getSelectedCategory() {
        return getParentCategory();
    }

    /* (non-Javadoc)
     * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#apply(com.sslexplorer.wizard.AbstractWizardSequence)
     */
    public void apply(AbstractWizardSequence sequence) throws Exception {
        // First shutdown the user databae
        super.apply(sequence);

        /* TODO BPS - This sucks a bit. The properties have to be persisted now so the
         * user database uses the next settings. Perhaps we need someway of temporarily
         * setting properties. 
         */ 
        PropertyItem[] items = getPropertyItems();
        Properties oldValues = new Properties();
        for(int i = 0 ; i < items.length; i++) {
            oldValues.setProperty(items[i].getName(), PropertyUtil.getPropertyUtil().setProperty(0, null, items[i].getName(), items[i].getPropertyValue().toString(), null));            
        }

        /*
         * LDP - Don't close the database until the properties have been set. This allows us to 
         * dynamically register the properties in the database open and close methods.
         */        
        UserDatabase udb = UserDatabaseManager.getInstance().getUserDatabase((String)sequence.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE, "builtIn"));
        if(udb.isOpen()) {
            udb.close();
        }
        
        try {
            udb.open(CoreServlet.getServlet());
        }
        catch(Exception e) {
            for(Iterator i = oldValues.entrySet().iterator(); i.hasNext(); ) {
                Map.Entry entry = (Map.Entry)i.next();
                PropertyUtil.getPropertyUtil().setProperty(0, null, (String)entry.getKey(), (String)entry.getValue(),  null);
            }
            throw e;
        }
    }

    public int getStepIndex() {
        return 2;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -