1 package com.sslexplorer.install.forms; 2 3 import java.util.Arrays ; 4 import java.util.Calendar ; 5 6 import javax.servlet.http.HttpServletRequest ; 7 8 import org.apache.commons.logging.Log; 9 import org.apache.commons.logging.LogFactory; 10 import org.apache.struts.action.ActionMapping; 11 12 import com.sslexplorer.boot.PropertyClass; 13 import com.sslexplorer.boot.PropertyClassManager; 14 import com.sslexplorer.core.CoreServlet; 15 import com.sslexplorer.core.UserDatabaseManager; 16 import com.sslexplorer.jdbc.JDBCUserDatabase; 17 import com.sslexplorer.properties.Property; 18 import com.sslexplorer.properties.PropertyItem; 19 import com.sslexplorer.properties.impl.realms.RealmKey; 20 import com.sslexplorer.properties.impl.realms.RealmProperties; 21 import com.sslexplorer.realms.DefaultRealm; 22 import com.sslexplorer.realms.Realm; 23 import com.sslexplorer.security.UserDatabase; 24 import com.sslexplorer.security.UserDatabaseDefinition; 25 import com.sslexplorer.wizard.AbstractWizardSequence; 26 import com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm; 27 28 29 35 public class ConfigureUserDatabaseForm extends AbstractWizardPropertiesForm { 36 37 38 final static Log log = LogFactory.getLog(ConfigureUserDatabaseForm.class); 39 40 private UserDatabaseDefinition userDatabaseDefinition; 41 42 46 public ConfigureUserDatabaseForm() { 47 super(Arrays.asList(new PropertyClass[] { PropertyClassManager.getInstance().getPropertyClass(RealmProperties.NAME) } )); 48 } 49 50 53 public int getParentCategory() { 54 return userDatabaseDefinition.getInstallationCategory(); 55 } 56 57 60 public boolean getNextAvailable() { 61 return true; 62 } 63 64 67 public boolean getPreviousAvailable() { 68 return true; 69 } 70 71 74 public boolean getFinishAvailable() { 75 return false; 76 } 77 78 81 public String getPage() { 82 return "/WEB-INF/jsp/content/install/configureUserDatabase.jspf"; 83 } 84 85 88 public String getResourcePrefix() { 89 return "installation.configureUserDatabase"; 90 } 91 92 95 public String getResourceBundle() { 96 return "install"; 97 } 98 99 102 public String getPageName() { 103 return "configureUserDatabase"; 104 } 105 106 109 public String getFocussedField() { 110 return ""; 111 } 112 113 116 public void reset(ActionMapping mapping, HttpServletRequest request) { 117 super.reset(mapping, request); 118 119 122 AbstractWizardSequence seq = getWizardSequence(request); 123 String udbName = (String )seq.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE, JDBCUserDatabase.DATABASE_TYPE); 124 userDatabaseDefinition = UserDatabaseManager.getInstance().getUserDatabaseDefinition(udbName); 125 } 126 127 public boolean getAutocomplete() { 128 return false; 129 } 130 131 134 public void init(AbstractWizardSequence sequence, HttpServletRequest request) throws Exception { 135 super.init(sequence, request); 136 } 137 138 141 public void apply(AbstractWizardSequence sequence) throws Exception { 142 super.apply(sequence); 144 145 UserDatabase currentUdb = (UserDatabase)sequence.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE_INSTANCE, null); 147 148 Realm realm = currentUdb.getRealm(); 150 if(realm == null) { 151 Calendar now = Calendar.getInstance(); 152 realm = new DefaultRealm((String )sequence.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE, null), 1, UserDatabaseManager.DEFAULT_REALM_NAME, UserDatabaseManager.DEFAULT_REALM_DESCRIPTION, now, now); 153 } 154 155 158 PropertyItem[] items = getPropertyItems(); 159 for(int i = 0 ; i < items.length; i++) { 160 Property.setProperty(new RealmKey(items[i].getDefinition().getName(), realm), items[i].getPropertyValue().toString(), null); 161 } 162 163 if(currentUdb.isOpen()) { 165 currentUdb.close(); 166 } 167 currentUdb.open(CoreServlet.getServlet(), realm); 168 } 169 170 public int getStepIndex() { 171 return 2; 172 } 173 } 174 | Popular Tags |