| 1 19 20 package com.sslexplorer.policyframework.wizards.forms; 21 22 import java.util.Iterator ; 23 24 import javax.servlet.http.HttpServletRequest ; 25 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.core.BundleActionMessage; 33 import com.sslexplorer.core.UserDatabaseManager; 34 import com.sslexplorer.security.LogonControllerFactory; 35 import com.sslexplorer.security.SessionInfo; 36 import com.sslexplorer.security.UserDatabase; 37 import com.sslexplorer.wizard.AbstractWizardSequence; 38 import com.sslexplorer.wizard.forms.DefaultWizardForm; 39 40 public class PolicyPrincipalSelectionForm extends DefaultWizardForm { 41 42 private PropertyList selectedAccounts; 43 private PropertyList selectedRoles; 44 45 public final static String ATTR_SELECTED_ACCOUNTS = "selectedAccounts"; 47 public final static String ATTR_SELECTED_ROLES = "selectedRoles"; 48 49 public PolicyPrincipalSelectionForm() { 50 super(true, true, "/WEB-INF/jsp/content/policyframework/policyWizard/policyPrincipalSelection.jspf", 51 "", true, false, "policyPrincipalSelection", "policyframework", "policyWizard.policyPrincipalSelection", 2); 52 } 53 54 57 public String getSelectedAccounts() { 58 return selectedAccounts.getAsTextFieldText(); 59 } 60 61 64 public void setSelectedAccounts(String selectedAccounts) { 65 this.selectedAccounts.setAsTextFieldText(selectedAccounts); 66 } 67 68 71 public String getSelectedRoles() { 72 return selectedRoles.getAsTextFieldText(); 73 } 74 75 78 public void setSelectedRoles(String selectedRoles) { 79 this.selectedRoles.setAsTextFieldText(selectedRoles); 80 } 81 82 85 public void apply(AbstractWizardSequence sequence) throws Exception { 86 super.apply(sequence); 87 sequence.putAttribute(ATTR_SELECTED_ACCOUNTS, selectedAccounts); 88 sequence.putAttribute(ATTR_SELECTED_ROLES, selectedRoles); 89 } 90 91 94 public void init(AbstractWizardSequence sequence, HttpServletRequest request) throws Exception { 95 super.init(sequence, request); 96 selectedAccounts = (PropertyList)sequence.getAttribute(ATTR_SELECTED_ACCOUNTS, new PropertyList()); 97 selectedRoles = (PropertyList)sequence.getAttribute(ATTR_SELECTED_ROLES, new PropertyList()); 98 } 99 100 @Override  101 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { 102 ActionErrors errs = super.validate(mapping, request); 103 SessionInfo session = LogonControllerFactory.getInstance().getSessionInfo(request); 104 if(isCommiting()) { 105 try { 106 UserDatabase udb = UserDatabaseManager.getInstance().getUserDatabase(session.getRealm()); 107 for(String account : selectedAccounts) { 108 try { 109 udb.getAccount(account); 110 } 111 catch(Exception e) { 112 if(errs == null) { 113 errs = new ActionErrors(); 114 } 115 errs.add(Globals.ERROR_KEY, new ActionMessage("editPolicy.error.invalidUser", account)); 116 } 117 } 118 for(String role : selectedRoles) { 119 try { 120 if(udb.getRole(role) == null) { 121 throw new Exception (); 122 } 123 } 124 catch(Exception e) { 125 if(errs == null) { 126 errs = new ActionErrors(); 127 } 128 errs.add(Globals.ERROR_KEY, new ActionMessage("editPolicy.error.invalidRole", role)); 129 } 130 } 131 } 132 catch(Exception e) { 133 if(errs == null) { 134 errs = new ActionErrors(); 135 } 136 errs.add(Globals.ERROR_KEY, new ActionMessage("editPolicy.failedToValidate", e.getMessage())); 137 138 } 139 } 140 return errs; 141 } 142 } 143 | Popular Tags |