1 19 20 package com.sslexplorer.networkplaces.forms; 21 22 import javax.servlet.http.HttpServletRequest ; 23 24 import org.apache.commons.logging.Log; 25 import org.apache.commons.logging.LogFactory; 26 import org.apache.struts.Globals; 27 import org.apache.struts.action.ActionErrors; 28 import org.apache.struts.action.ActionMapping; 29 import org.apache.struts.action.ActionMessage; 30 31 import com.sslexplorer.boot.PropertyList; 32 import com.sslexplorer.boot.Util; 33 import com.sslexplorer.input.MultiSelectSelectionModel; 34 import com.sslexplorer.input.validators.HostnameOrIPAddressValidator; 35 import com.sslexplorer.input.validators.HostnameOrIPAddressWithPortValidator; 36 import com.sslexplorer.input.validators.HostnameOrIPAddressWithReplacementsValidator; 37 import com.sslexplorer.networkplaces.NetworkPlace; 38 import com.sslexplorer.networkplaces.NetworkPlaceUtil; 39 import com.sslexplorer.policyframework.Resource; 40 import com.sslexplorer.policyframework.forms.AbstractFavoriteResourceForm; 41 import com.sslexplorer.security.User; 42 import com.sslexplorer.vfs.VFSProvider; 43 import com.sslexplorer.vfs.VFSProviderManager; 44 45 public class NetworkPlaceForm extends AbstractFavoriteResourceForm { 46 47 static Log log = LogFactory.getLog(NetworkPlaceForm.class); 48 private String selectedTab = "details"; 49 private String host; 50 private String path; 51 private int port; 52 private String username; 53 private String password; 54 private String scheme; 55 private String queryString; 56 private boolean networkPlaceReadOnly; 57 private boolean showHidden; 58 private boolean allowRecursive; 59 private boolean noDelete; 60 private VFSProvider provider; 61 62 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { 63 ActionErrors errs = super.validate(mapping, request); 64 if (isCommiting()) { 65 try { 66 67 if(provider.getHostRequirement() == VFSProvider.ELEMENT_REQUIRED) { 68 String name = Util.trimmedOrBlank(host); 69 if("".equals(name)) { 70 errs.add(Globals.ERROR_KEY, new ActionMessage("createNetworkPlace.error.noHost")); 71 } 72 else { 73 if(!HostnameOrIPAddressWithReplacementsValidator.isValidAsHostOrIp(name)) { 81 errs.add(Globals.ERROR_KEY, new ActionMessage("createNetworkPlace.error.invalidHost")); 82 } 83 } 84 } 85 86 if(provider.getPortRequirement() == VFSProvider.ELEMENT_REQUIRED && 87 port == 0) { 88 errs.add(Globals.ERROR_KEY, new ActionMessage("createNetworkPlace.error.noPort")); 89 } 90 91 if(provider.getUserInfoRequirement() == VFSProvider.ELEMENT_REQUIRED && 92 Util.isNullOrTrimmedBlank(username)) { 93 errs.add(Globals.ERROR_KEY, new ActionMessage("createNetworkPlace.error.noUserInfo")); 94 } 95 96 if(provider.getPathRequirement() == VFSProvider.ELEMENT_REQUIRED && 97 Util.isNullOrTrimmedBlank(path)) { 98 errs.add(Globals.ERROR_KEY, new ActionMessage("createNetworkPlace.error.noPath")); 99 } 100 } catch (Exception ex) { 101 log.error("Unexpect error.", ex); 102 errs.add(Globals.ERROR_KEY, new ActionMessage("vfs.unexpected.error", ex.getMessage())); 103 } 104 } 105 return errs; 106 } 107 108 public int getTabCount() { 109 return 3; 110 } 111 112 public String getTabName(int idx) { 113 switch (idx) { 114 case 0: 115 return "details"; 116 case 1: 117 return "other"; 118 default: 119 return "policies"; 120 } 121 } 122 123 public String getTabTitle(int idx) { 124 125 return null; 127 } 128 129 public void initialise(User user, Resource resource, boolean editing, MultiSelectSelectionModel policyModel, 130 PropertyList selectedPolicies, User owner, boolean assignOnly) throws Exception { 131 super.initialise(user, resource, editing, policyModel, selectedPolicies, owner, assignOnly); 132 NetworkPlace networkPlace = (NetworkPlace) resource; 133 134 provider = VFSProviderManager.getInstance().getProvider(networkPlace.getScheme()); 135 136 if(provider == null) { 137 networkPlace = NetworkPlaceUtil.createNetworkPlaceForPath(networkPlace.getPath()); 138 provider = VFSProviderManager.getInstance().getProvider(networkPlace.getScheme()); 139 } 140 this.scheme = networkPlace.getScheme(); 141 this.host = networkPlace.getHost(); 142 this.path = networkPlace.getPath(); 143 this.port = networkPlace.getPort(); 144 this.username = networkPlace.getUsername(); 145 this.password = networkPlace.getPassword(); 146 this.queryString = ""; 147 this.networkPlaceReadOnly = networkPlace.isReadOnly(); 148 this.showHidden = networkPlace.isShowHidden(); 149 this.allowRecursive = networkPlace.isAllowRecursive(); 150 this.noDelete = networkPlace.isNoDelete(); 151 } 152 153 public String getSelectedTab() { 154 return selectedTab; 155 } 156 157 public void setSelectedTab(String selectedTab) { 158 this.selectedTab = selectedTab; 159 } 160 161 public void applyToResource() throws Exception { 162 NetworkPlace np = (NetworkPlace) getResource(); 163 np.setScheme(scheme); 164 np.setHost(getHost()); 165 np.setPath(getPath()); 166 np.setPort(getPort()); 167 np.setUsername(getUsername()); 168 np.setPassword(getPassword()); 169 np.setScheme(getScheme()); 170 np.setReadOnly(isNetworkPlaceReadOnly()); 171 np.setAllowResursive(isAllowRecursive()); 172 np.setNoDelete(isNoDelete()); 173 np.setShowHidden(isShowHidden()); 174 } 175 176 public String getPath() { 177 return path; 178 } 179 180 public void setPath(String path) { 181 this.path = path; 182 } 183 184 public boolean isAllowRecursive() { 185 return allowRecursive; 186 } 187 188 public void setAllowRecursive(boolean allowRecursive) { 189 this.allowRecursive = allowRecursive; 190 } 191 192 public boolean isNoDelete() { 193 return noDelete; 194 } 195 196 public void setNoDelete(boolean noDelete) { 197 this.noDelete = noDelete; 198 } 199 200 public boolean isNetworkPlaceReadOnly() { 201 return networkPlaceReadOnly; 202 } 203 204 public void setNetworkPlaceReadOnly(boolean readOnly) { 205 this.networkPlaceReadOnly = readOnly; 206 } 207 208 public boolean isShowHidden() { 209 return showHidden; 210 } 211 212 public void setShowHidden(boolean showHidden) { 213 this.showHidden = showHidden; 214 } 215 216 public String getPassword() { 217 return password; 218 } 219 220 public void setPassword(String password) { 221 this.password = password; 222 } 223 224 public String getUsername() { 225 return username; 226 } 227 228 public void setUsername(String username) { 229 this.username = username; 230 } 231 232 public VFSProvider getProvider() { 233 return provider; 234 } 235 236 public String getScheme() { 237 return scheme; 238 } 239 240 public String getHost() { 241 return host; 242 } 243 244 public void setHost(String host) { 245 this.host = host; 246 } 247 248 public int getPort() { 249 return port; 250 } 251 252 public void setPort(int port) { 253 this.port = port; 254 } 255 256 public String getQueryString() { 257 return queryString; 258 } 259 260 public void setQueryString(String queryString) { 261 this.queryString = queryString; 262 } 263 264 public void reset(ActionMapping mapping, HttpServletRequest request) { 265 super.reset(mapping, request); 266 this.showHidden = false; 267 this.networkPlaceReadOnly = false; 268 this.allowRecursive = false; 269 this.noDelete = false; 270 } 271 272 277 public String getTabBundle(int idx) { 278 return null; 279 } 280 } | Popular Tags |