1 19 20 package com.sslexplorer.properties.wizards.actions; 21 22 import java.util.ArrayList ; 23 import java.util.List ; 24 25 import javax.servlet.http.HttpServletRequest ; 26 import javax.servlet.http.HttpServletResponse ; 27 28 import org.apache.commons.logging.Log; 29 import org.apache.commons.logging.LogFactory; 30 import org.apache.struts.action.ActionForm; 31 import org.apache.struts.action.ActionForward; 32 import org.apache.struts.action.ActionMapping; 33 34 import com.sslexplorer.boot.PropertyList; 35 import com.sslexplorer.core.CoreEvent; 36 import com.sslexplorer.core.CoreEventConstants; 37 import com.sslexplorer.core.CoreServlet; 38 import com.sslexplorer.policyframework.PolicyDatabaseFactory; 39 import com.sslexplorer.policyframework.PolicyUtil; 40 import com.sslexplorer.policyframework.Resource; 41 import com.sslexplorer.policyframework.ResourceChangeEvent; 42 import com.sslexplorer.policyframework.ResourceUtil; 43 import com.sslexplorer.properties.ProfilesFactory; 44 import com.sslexplorer.properties.PropertyProfile; 45 import com.sslexplorer.properties.wizards.forms.ProfileDetailsForm; 46 import com.sslexplorer.properties.wizards.forms.ProfilePolicySelectionForm; 47 import com.sslexplorer.security.Constants; 48 import com.sslexplorer.security.SessionInfo; 49 import com.sslexplorer.security.User; 50 import com.sslexplorer.wizard.AbstractWizardSequence; 51 import com.sslexplorer.wizard.WizardActionStatus; 52 import com.sslexplorer.wizard.actions.AbstractWizardAction; 53 import com.sslexplorer.wizard.forms.AbstractWizardFinishForm; 54 55 62 public class ProfileFinishAction extends AbstractWizardAction { 63 final static Log log = LogFactory.getLog(ProfileFinishAction.class); 64 65 68 public ProfileFinishAction() { 69 super(); 70 } 71 72 80 public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 81 return SessionInfo.USER_CONSOLE_CONTEXT | SessionInfo.MANAGEMENT_CONSOLE_CONTEXT; 82 } 83 84 92 public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, 93 HttpServletResponse response) throws Exception { 94 List actionStatus = new ArrayList (); 96 AbstractWizardSequence seq = getWizardSequence(request); 97 SessionInfo info = this.getSessionInfo(request); 98 User user = seq.getSession().getUser(); 99 String scope = (String ) seq.getAttribute(ProfileDetailsAction.ATTR_PROFILE_SCOPE, null); 100 int baseOn = ((Integer ) seq.getAttribute(ProfileDetailsForm.ATTR_BASE_ON, null)).intValue(); 101 String username = Constants.SCOPE_GLOBAL.equals(scope) ? null : user.getPrincipalName(); 102 int realmId = user.getRealm().getResourceId(); 103 String shortName = (String ) seq.getAttribute(ProfileDetailsForm.ATTR_RESOURCE_NAME, null); 104 String description = (String ) seq.getAttribute(ProfileDetailsForm.ATTR_RESOURCE_DESCRIPTION, null); 105 PropertyProfile newProfile = null; 106 try { 107 try { 108 newProfile = ProfilesFactory.getInstance().createPropertyProfile(username, shortName, description, 110 baseOn, realmId); 111 CoreServlet.getServlet().fireCoreEvent( 112 new ResourceChangeEvent(this, CoreEventConstants.CREATE_PROPERTY_PROFILE, newProfile, info, 113 CoreEvent.STATE_SUCCESSFUL)); 114 } catch (Exception e) { 115 CoreServlet.getServlet().fireCoreEvent( 116 new ResourceChangeEvent(this, CoreEventConstants.CREATE_PROPERTY_PROFILE, info, e)); 117 throw e; 118 } 119 actionStatus.add(new WizardActionStatus(WizardActionStatus.COMPLETED_OK, 120 "profileWizard.profileFinish.status.profileCreated")); 121 } catch (Exception e) { 122 log.error("Failed to create profile.", e); 123 actionStatus.add(new WizardActionStatus(WizardActionStatus.COMPLETED_WITH_ERRORS, 124 "profileWizard.profileFinish.status.failedToCreateProfile", e.getMessage())); 125 } 126 if (newProfile != null) { 127 actionStatus.add(attachToPolicies(seq, info, newProfile)); 128 } 129 ResourceUtil.setAvailableProfiles(info); 130 ((AbstractWizardFinishForm) form).setActionStatus(actionStatus); 131 return super.unspecified(mapping, form, request, response); 132 } 133 134 142 public ActionForward exit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) 143 throws Exception { 144 return cancel(mapping, form, request, response); 145 } 146 147 153 WizardActionStatus attachToPolicies(AbstractWizardSequence seq, SessionInfo info, Resource resource) { 154 PropertyList selectedPolicies = (PropertyList) seq.getAttribute(ProfilePolicySelectionForm.ATTR_SELECTED_POLICIES, null); 155 try { 156 PolicyDatabaseFactory.getInstance().attachResourceToPolicyList(resource, selectedPolicies, info); 157 return new WizardActionStatus(WizardActionStatus.COMPLETED_OK, "profileWizard.profileFinish.status.attachedToPolicies"); 158 } catch (Exception e) { 159 log.error("Failed to create profile.", e); 160 return new WizardActionStatus(WizardActionStatus.COMPLETED_WITH_ERRORS, 161 "profileWizard.profileFinish.status.failedToAttachToPolicies", e.getMessage()); 162 } 163 } 164 165 } 166 | Popular Tags |